CPack Tests the different ways of packaging components

This commit is contained in:
Eric NOULARD 2011-01-30 13:11:25 +01:00
parent 04d4afbfa8
commit 92ced20fa1
8 changed files with 123 additions and 36 deletions

View File

@ -563,30 +563,40 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
IF(CTEST_RUN_CPackComponentsForAll)
set(CPackComponentsForAll_EXTRA_OPTIONS)
set(CPackRun_CPackGen "-DCPackGen=ZIP")
set(CPackRun_CPackCommand "-DCPackCommand=${CMAKE_CPACK_COMMAND}")
set(CPackRun_CPackComponentWay "-DCPackComponentWay=default")
ADD_TEST(CPackComponentsForAll-ZIP-default ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll"
"${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/buildZIP-NoComponent"
--build-generator ${CMAKE_TEST_GENERATOR}
--build-project CPackComponentsForAll
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
--build-options
-DCPACK_BINARY_ZIP:BOOL=ON
${CPackComponentsForAll_EXTRA_OPTIONS}
--graphviz=CPackComponentsForAll.dot
--test-command ${CMAKE_CMAKE_COMMAND}
"-DCPackComponentsForAll_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/buildZIP-NoComponent"
"${CPackRun_CPackCommand}"
"${CPackRun_CPackGen}"
"${CPackRun_CPackComponentWay}"
-P "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake")
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll")
# set up list of CPack generators
list(APPEND GENLST "ZIP")
# set up list of component packaging ways
list(APPEND CWAYLST "default")
list(APPEND CWAYLST "OnePackPerGroup")
list(APPEND CWAYLST "IgnoreGroup")
list(APPEND CWAYLST "AllInOne")
list(APPEND CWAYLST "AllGroupsInOne")
foreach(CPackGen IN LISTS GENLST)
set(CPackRun_CPackGen "-DCPackGen=${CPackGen}")
foreach(CPackComponentWay IN LISTS CWAYLST)
set(CPackRun_CPackComponentWay "-DCPackComponentWay=${CPackComponentWay}")
ADD_TEST(CPackComponentsForAll-${CPackGen}-${CPackComponentWay} ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll"
"${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/build${CPackGen}-${CPackComponentWay}"
--build-generator ${CMAKE_TEST_GENERATOR}
--build-project CPackComponentsForAll
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
--build-options
-DCPACK_BINARY_${CPackGen}:BOOL=ON
${CPackRun_CPackComponentWay}
${CPackComponentsForAll_EXTRA_OPTIONS}
--graphviz=CPackComponentsForAll.dot
--test-command ${CMAKE_CMAKE_COMMAND}
"-DCPackComponentsForAll_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/build${CPackGen}-${CPackComponentWay}"
"${CPackRun_CPackCommand}"
"${CPackRun_CPackGen}"
"${CPackRun_CPackComponentWay}"
-P "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake")
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/build${CPackGen}-${CPackComponentWay}")
endforeach(CPackComponentWay)
endforeach(CPackGen)
ENDIF(CTEST_RUN_CPackComponentsForAll)
# By default, turn this test off (because it takes a long time...)

View File

@ -107,14 +107,14 @@ set(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
set(CPACK_COMPONENT_APPLICATIONS_INSTALL_TYPES Full)
# We may use the CPack specific config file in order
# to tailor CPack behavio on a CPack generator specific way
# to tailor CPack behavior on a CPack generator specific way
# (Behavior would be different for RPM or TGZ or DEB ...)
if (USE_CPACK_PROJECT_CONFIG)
if (NOT ("${CPackComponentWay}" STREQUAL "default"))
# Setup project specific CPack-time CPack Config file.
configure_file(${MyLib_SOURCE_DIR}/MyLibCPackConfig.cmake.in
${MyLib_BINARY_DIR}/MyLibCPackConfig.cmake
configure_file(${CPackComponentsForAll_SOURCE_DIR}/MyLibCPackConfig-${CPackComponentWay}.cmake.in
${CPackComponentsForAll_BINARY_DIR}/MyLibCPackConfig-${CPackComponentWay}.cmake
@ONLY)
set(CPACK_PROJECT_CONFIG_FILE ${MyLib_BINARY_DIR}/MyLibCPackConfig.cmake)
endif (USE_CPACK_PROJECT_CONFIG)
set(CPACK_PROJECT_CONFIG_FILE ${CPackComponentsForAll_BINARY_DIR}/MyLibCPackConfig-${CPackComponentWay}.cmake)
endif (NOT ("${CPackComponentWay}" STREQUAL "default"))
# Include CPack to introduce the appropriate targets
include(CPack)

View File

@ -0,0 +1,18 @@
#
# Activate component packaging
#
if(CPACK_GENERATOR MATCHES "ZIP")
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "ZIP")
if(CPACK_GENERATOR MATCHES "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "RPM")
#
# Choose grouping way
#
set(CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE 1)
#set(CPACK_COMPONENTS_GROUPING)
#set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
#set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)

View File

@ -0,0 +1,18 @@
#
# Activate component packaging
#
if(CPACK_GENERATOR MATCHES "ZIP")
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "ZIP")
if(CPACK_GENERATOR MATCHES "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "RPM")
#
# Choose grouping way
#
#set(CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE 1)
#set(CPACK_COMPONENTS_GROUPING)
#set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)

View File

@ -0,0 +1,18 @@
#
# Activate component packaging
#
if(CPACK_GENERATOR MATCHES "ZIP")
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "ZIP")
if(CPACK_GENERATOR MATCHES "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "RPM")
#
# Choose grouping way
#
#set(CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE)
#set(CPACK_COMPONENTS_GROUPING)
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
#set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)

View File

@ -0,0 +1,18 @@
#
# Activate component packaging
#
if(CPACK_GENERATOR MATCHES "ZIP")
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "ZIP")
if(CPACK_GENERATOR MATCHES "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
endif(CPACK_GENERATOR MATCHES "RPM")
#
# Choose grouping way
#
#set(CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE)
#set(CPACK_COMPONENTS_GROUPING)
#set(CPACK_COMPONENTS_IGNORE_GROUPS)
#set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE)

View File

@ -1,7 +0,0 @@
if(CPACK_GENERATOR MATCHES "ZIP")
# set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)
endif(CPACK_GENERATOR MATCHES "ZIP")
if(CPACK_GENERATOR MATCHES "TGZ")
set(CPACK_MONOLITHIC_INSTALL 1)
endif(CPACK_GENERATOR MATCHES "TGZ")

View File

@ -49,6 +49,18 @@ if(CPackGen MATCHES "ZIP")
if (${CPackComponentWay} STREQUAL "default")
set(expected_count 1)
endif(${CPackComponentWay} STREQUAL "default")
if (${CPackComponentWay} STREQUAL "OnePackPerGroup")
set(expected_count 2)
endif (${CPackComponentWay} STREQUAL "OnePackPerGroup")
if (${CPackComponentWay} STREQUAL "IgnoreGroup")
set(expected_count 4)
endif (${CPackComponentWay} STREQUAL "IgnoreGroup")
if (${CPackComponentWay} STREQUAL "AllInOne")
set(expected_count 1)
endif (${CPackComponentWay} STREQUAL "AllInOne")
if (${CPackComponentWay} STREQUAL "AllGroupsInOne")
set(expected_count 1)
endif (${CPackComponentWay} STREQUAL "AllGroupsInOne")
endif(CPackGen MATCHES "ZIP")
# Now verify if the number of expected file is OK