mirror of
https://github.com/reactos/CMake.git
synced 2024-11-25 20:49:41 +00:00
587b7b6f5e
These tests were not running properly on Visual Studio or Xcode dashboards before this commit because of the "Debug" or "Release" sub-directory. The scripts already have CMAKE_CPACK_COMMAND since the correct CMake executable is used to run the scripts, so just use that, rather than passing down an incorrect path to the CPack executable.
126 lines
4.4 KiB
CMake
126 lines
4.4 KiB
CMake
message(STATUS "=============================================================================")
|
|
message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
|
|
message(STATUS "")
|
|
|
|
if(NOT CPackComponentsForAll_BINARY_DIR)
|
|
message(FATAL_ERROR "CPackComponentsForAll_BINARY_DIR not set")
|
|
endif()
|
|
|
|
if(NOT CPackGen)
|
|
message(FATAL_ERROR "CPackGen not set")
|
|
endif()
|
|
|
|
message("CMAKE_CPACK_COMMAND = ${CMAKE_CPACK_COMMAND}")
|
|
if(NOT CMAKE_CPACK_COMMAND)
|
|
message(FATAL_ERROR "CMAKE_CPACK_COMMAND not set")
|
|
endif()
|
|
|
|
if(NOT CPackComponentWay)
|
|
message(FATAL_ERROR "CPackComponentWay not set")
|
|
endif()
|
|
|
|
set(expected_file_mask "")
|
|
# The usual default behavior is to expect a single file
|
|
# Then some specific generators (Archive, RPM, ...)
|
|
# May produce several numbers of files depending on
|
|
# CPACK_COMPONENT_xxx values
|
|
set(expected_count 1)
|
|
set(config_type $ENV{CMAKE_CONFIG_TYPE})
|
|
set(config_args )
|
|
if(config_type)
|
|
set(config_args -C ${config_type})
|
|
endif()
|
|
set(config_verbose )
|
|
|
|
if(CPackGen MATCHES "ZIP")
|
|
set(expected_file_mask "${CPackComponentsForAll_BINARY_DIR}/MyLib-*.zip")
|
|
if (${CPackComponentWay} STREQUAL "default")
|
|
set(expected_count 1)
|
|
elseif (${CPackComponentWay} STREQUAL "OnePackPerGroup")
|
|
set(expected_count 3)
|
|
elseif (${CPackComponentWay} STREQUAL "IgnoreGroup")
|
|
set(expected_count 4)
|
|
elseif (${CPackComponentWay} STREQUAL "AllInOne")
|
|
set(expected_count 1)
|
|
endif ()
|
|
elseif (CPackGen MATCHES "RPM")
|
|
set(config_verbose -D "CPACK_RPM_PACKAGE_DEBUG=1")
|
|
set(expected_file_mask "${CPackComponentsForAll_BINARY_DIR}/MyLib-*.rpm")
|
|
if (${CPackComponentWay} STREQUAL "default")
|
|
set(expected_count 1)
|
|
elseif (${CPackComponentWay} STREQUAL "OnePackPerGroup")
|
|
set(expected_count 3)
|
|
elseif (${CPackComponentWay} STREQUAL "IgnoreGroup")
|
|
set(expected_count 4)
|
|
elseif (${CPackComponentWay} STREQUAL "AllInOne")
|
|
set(expected_count 1)
|
|
endif ()
|
|
elseif (CPackGen MATCHES "DEB")
|
|
set(expected_file_mask "${CPackComponentsForAll_BINARY_DIR}/MyLib-*.deb")
|
|
if (${CPackComponentWay} STREQUAL "default")
|
|
set(expected_count 1)
|
|
elseif (${CPackComponentWay} STREQUAL "OnePackPerGroup")
|
|
set(expected_count 3)
|
|
elseif (${CPackComponentWay} STREQUAL "IgnoreGroup")
|
|
set(expected_count 4)
|
|
elseif (${CPackComponentWay} STREQUAL "AllInOne")
|
|
set(expected_count 1)
|
|
endif ()
|
|
endif()
|
|
|
|
if(CPackGen MATCHES "DragNDrop")
|
|
set(expected_file_mask "${CPackComponentsForAll_BINARY_DIR}/MyLib-*.dmg")
|
|
if (${CPackComponentWay} STREQUAL "default")
|
|
set(expected_count 1)
|
|
elseif (${CPackComponentWay} STREQUAL "OnePackPerGroup")
|
|
set(expected_count 3)
|
|
elseif (${CPackComponentWay} STREQUAL "IgnoreGroup")
|
|
set(expected_count 4)
|
|
elseif (${CPackComponentWay} STREQUAL "AllInOne")
|
|
set(expected_count 1)
|
|
endif ()
|
|
endif()
|
|
|
|
# clean-up previously CPack generated files
|
|
if(expected_file_mask)
|
|
file(GLOB expected_file "${expected_file_mask}")
|
|
if (expected_file)
|
|
file(REMOVE ${expected_file})
|
|
endif()
|
|
endif()
|
|
|
|
message("config_args = ${config_args}")
|
|
message("config_verbose = ${config_verbose}")
|
|
execute_process(COMMAND ${CMAKE_CPACK_COMMAND} ${config_verbose} -G ${CPackGen} ${config_args}
|
|
RESULT_VARIABLE CPack_result
|
|
OUTPUT_VARIABLE CPack_output
|
|
ERROR_VARIABLE CPack_error
|
|
WORKING_DIRECTORY ${CPackComponentsForAll_BINARY_DIR})
|
|
|
|
if (CPack_result)
|
|
message(FATAL_ERROR "error: CPack execution went wrong!, CPack_output=${CPack_output}, CPack_error=${CPack_error}")
|
|
else ()
|
|
message(STATUS "CPack_output=${CPack_output}")
|
|
endif()
|
|
|
|
# Now verify if the number of expected file is OK
|
|
# - using expected_file_mask and
|
|
# - expected_count
|
|
if(expected_file_mask)
|
|
file(GLOB expected_file "${expected_file_mask}")
|
|
|
|
message(STATUS "expected_count='${expected_count}'")
|
|
message(STATUS "expected_file='${expected_file}'")
|
|
message(STATUS "expected_file_mask='${expected_file_mask}'")
|
|
|
|
if(NOT expected_file)
|
|
message(FATAL_ERROR "error: expected_file=${expected_file} does not exist: CPackComponentsForAll test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error}")
|
|
endif()
|
|
|
|
list(LENGTH expected_file actual_count)
|
|
message(STATUS "actual_count='${actual_count}'")
|
|
if(NOT actual_count EQUAL expected_count)
|
|
message(FATAL_ERROR "error: expected_count=${expected_count} does not match actual_count=${actual_count}: CPackComponents test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error})")
|
|
endif()
|
|
endif()
|