-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtest_wrapper.cmake
73 lines (57 loc) · 2.05 KB
/
test_wrapper.cmake
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
set(FOREIGN_CMAKE_COMMAND "${CMAKE_BIN_DIR}/cmake")
set(FOREIGN_CPACK_COMMAND "${CMAKE_BIN_DIR}/cpack")
if(EXISTS "${BIN_DIR}")
file(REMOVE_RECURSE "${BIN_DIR}")
endif()
file(MAKE_DIRECTORY "${BIN_DIR}")
execute_process(COMMAND "${FOREIGN_CMAKE_COMMAND}"
-G Ninja
"-DCMAKE_PROJECT_NAME=WiX-${TEST_NAME}"
"-DCPACK_GENERATOR=WIX" "${SRC_DIR}"
WORKING_DIRECTORY "${BIN_DIR}"
RESULT_VARIABLE CMAKE_RESULT
OUTPUT_VARIABLE CMAKE_OUTPUT
ERROR_VARIABLE CMAKE_OUTPUT
)
if(NOT "${CMAKE_RESULT}" STREQUAL "0")
message(FATAL_ERROR
"[${TEST_NAME}] CMake failed (${CMAKE_RESULT}) : [${CMAKE_OUTPUT}]")
endif()
execute_process(COMMAND "${FOREIGN_CMAKE_COMMAND}" --build .
WORKING_DIRECTORY "${BIN_DIR}"
RESULT_VARIABLE CMAKE_RESULT
OUTPUT_VARIABLE CMAKE_OUTPUT
ERROR_VARIABLE CMAKE_OUTPUT
)
file(WRITE ${BIN_DIR}/cmake.log "${CMAKE_OUTPUT}")
if(NOT "${CMAKE_RESULT}" STREQUAL "0")
message(FATAL_ERROR
"[${TEST_NAME}] CMake failed (${CMAKE_RESULT}) : [${CMAKE_OUTPUT}]")
endif()
execute_process(COMMAND "${FOREIGN_CPACK_COMMAND}"
WORKING_DIRECTORY "${BIN_DIR}"
RESULT_VARIABLE CPACK_RESULT
OUTPUT_VARIABLE CPACK_OUTPUT
ERROR_VARIABLE CPACK_OUTPUT
)
file(WRITE ${BIN_DIR}/cpack.log "${CPACK_OUTPUT}")
if(NOT "${CPACK_RESULT}" STREQUAL "0")
message(FATAL_ERROR
"[${TEST_NAME}] CPack failed (${CPACK_RESULT}) : [${CPACK_OUTPUT}]")
endif()
file(MAKE_DIRECTORY ${INSTALLER_DIR})
file(GLOB INSTALLER "${BIN_DIR}/WiX-${TEST_NAME}*")
get_filename_component(INSTALLER_FILENAME "${INSTALLER}" NAME)
set(OUTPUT_INSTALLER ${INSTALLER_DIR}/${INSTALLER_FILENAME})
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_if_different
"${INSTALLER}"
"${OUTPUT_INSTALLER}"
RESULT_VARIABLE COPY_RESULT
OUTPUT_VARIABLE COPY_OUTPUT
ERROR_VARIABLE COPY_OUTPUT
)
message("copy from [${INSTALLER}] to [${OUTPUT_INSTALLER}]")
if(NOT "${COPY_RESULT}" STREQUAL "0")
message(FATAL_ERROR
"[${TEST_NAME}] copy failed (${COPY_RESULT}) : [${COPY_OUTPUT}]")
endif()