blob: 542fb1d69603b9fc087b06130f0006a804d4ffa3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# Common CMake macros for post-install tests
include(CTest)
macro(add_test_libpath EXE)
set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE})
set(HAS_TOOL TRUE)
if(APPLE)
set(EXPECTED_SUBSTR "${CMAKE_PREFIX_PATH}/lib")
elseif(UNIX)
set(EXPECTED_SUBSTR "${CMAKE_PREFIX_PATH}/lib/libproj")
elseif(CMAKE_GENERATOR STREQUAL "MSYS Makefiles")
# Convert to Unix-style path
execute_process(
COMMAND cygpath -u "${CMAKE_PREFIX_PATH}/bin/libproj"
OUTPUT_VARIABLE EXPECTED_SUBSTR
OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
set(HAS_TOOL FALSE)
endif()
if(HAS_TOOL)
if(APPLE)
add_test(NAME test_libpath
COMMAND sh -c "otool -l ${EXEPATH} | grep -m1 \"${EXPECTED_SUBSTR}\"")
else()
add_test(NAME test_libpath
COMMAND sh -c "ldd ${EXEPATH} | grep -m1 proj")
endif()
if($ENV{BUILD_MODE} STREQUAL "static")
set_tests_properties(test_libpath PROPERTIES
PASS_REGULAR_EXPRESSION "^$"
FAIL_REGULAR_EXPRESSION "${EXPECTED_SUBSTR};not found"
)
else()
set_tests_properties(test_libpath PROPERTIES
PASS_REGULAR_EXPRESSION "${EXPECTED_SUBSTR}"
FAIL_REGULAR_EXPRESSION "not found"
)
endif()
else()
add_test(NAME test_libpath COMMAND ${EXEPATH})
set_tests_properties(test_libpath PROPERTIES SKIP_RETURN_CODE 1)
endif()
endmacro()
macro(add_test_transform EXE)
set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE})
add_test(NAME test_transform COMMAND ${EXEPATH} -t)
set(EXPECTED
"easting: 691875.63, northing: 6098907.83, latitude: 55.00, longitude: 12.00")
set_tests_properties(test_transform PROPERTIES
PASS_REGULAR_EXPRESSION "${EXPECTED}"
)
endmacro()
macro(add_test_searchpath EXE)
set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE})
# data directory property not available, so recreate one
get_filename_component(EXPECTED_SEARCHPATH
"${${USE_PROJ_NAME}_DIR}/../../../share/proj" ABSOLUTE)
if(WIN32)
# Match each '/' with either '\' or '/'
string(REPLACE "/" "[\\/]" EXPECTED_SEARCHPATH "${EXPECTED_SEARCHPATH}")
endif()
add_test(NAME test_searchpath COMMAND ${EXEPATH} -s)
set_tests_properties(test_searchpath PROPERTIES
PASS_REGULAR_EXPRESSION "${EXPECTED_SEARCHPATH}"
)
endmacro()
macro(add_test_version EXE)
set(EXEPATH ${CMAKE_BINARY_DIR}/${EXE})
add_test(NAME test_version COMMAND ${EXEPATH} -v)
set_tests_properties(test_version PROPERTIES
PASS_REGULAR_EXPRESSION "${${USE_PROJ_NAME}_VERSION}"
)
endmacro()
|