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
|
#
# Script used by the BuildPackageTest.cmake module.
#
message(STATUS "Running script '${CMAKE_CURRENT_LIST_FILE}'")
message(STATUS " executing command '\"${CMAKE_COMMAND}\" --build . --config \"${config}\" --target package'")
message(STATUS " in binary_dir='@binary_dir@'")
message(STATUS "")
set(results_script "@binary_dir@/BuildPackageTestResults.cmake")
file(REMOVE "${results_script}")
execute_process(
COMMAND ${CMAKE_COMMAND} --build . --config "${config}" --target package
WORKING_DIRECTORY "@binary_dir@"
OUTPUT_VARIABLE output
RESULT_VARIABLE result
)
message(STATUS "output:")
message(STATUS "${output}")
message(STATUS "")
if(NOT "${result}" STREQUAL "0")
message(FATAL_ERROR "error: --build package call returned '${result}'")
endif()
#
# Construct a list of package files by scraping individual file names from
# the 'make package' output:
#
set(packages)
set(regex "package: ([^\n]+) generated")
string(REGEX MATCHALL "${regex}" package_lines "${output}")
foreach(line ${package_lines})
string(REGEX REPLACE "${regex}" "\\1" package "${line}")
list(APPEND packages "${package}")
endforeach()
#
# Write out a helper script that can be used later to upload these:
#
file(WRITE "${results_script}" "# BuildPackageTestResults.cmake
# generated by \"${CMAKE_CURRENT_LIST_FILE}\"
#
set(package_files \"${packages}\")
")
|