Tests: CPack test set packaging type

CPack tests can now define one or more
packaging types and that test will be
executed once per generator per packaging
type. This also enables us to set default
values per packaging type for each generator
which makes tests shorter.
This commit is contained in:
Domen Vrankar
2016-11-27 16:33:13 +01:00
parent 2cc479bdac
commit d040d1647d
25 changed files with 125 additions and 153 deletions

View File

@@ -1,7 +1,13 @@
cmake_minimum_required(VERSION 3.1 FATAL_ERROR) cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "")
project(${RunCMake_TEST} CXX) project(${RunCMake_TEST} CXX)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${GENERATOR_TYPE}/packaging_${PACKAGING_TYPE}_default.cmake")
include(${GENERATOR_TYPE}/packaging_${PACKAGING_TYPE}_default.cmake)
endif()
# set default test name (can be overwritten in test.cmake or specifics.cmake) # set default test name (can be overwritten in test.cmake or specifics.cmake)
string(TOLOWER "${RunCMake_TEST_FILE_PREFIX}" CPACK_PACKAGE_NAME) string(TOLOWER "${RunCMake_TEST_FILE_PREFIX}" CPACK_PACKAGE_NAME)

View File

@@ -1,6 +1,6 @@
cmake_policy(SET CMP0057 NEW) cmake_policy(SET CMP0057 NEW)
function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source) function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source PACKAGING_TYPE)
if(TEST_TYPE IN_LIST types) if(TEST_TYPE IN_LIST types)
set(RunCMake_TEST_NO_CLEAN TRUE) set(RunCMake_TEST_NO_CLEAN TRUE)
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build") set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build")
@@ -11,6 +11,8 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
set(full_test_name_ "${full_test_name_}-${SUBTEST_SUFFIX}-subtest") set(full_test_name_ "${full_test_name_}-${SUBTEST_SUFFIX}-subtest")
endif() endif()
string(APPEND full_test_name_ "-${PACKAGING_TYPE}-type")
# TODO this should be executed only once per ctest run (not per generator) # TODO this should be executed only once per ctest run (not per generator)
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
@@ -31,7 +33,8 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
# execute cmake # execute cmake
set(RunCMake_TEST_OPTIONS "-DGENERATOR_TYPE=${TEST_TYPE}" set(RunCMake_TEST_OPTIONS "-DGENERATOR_TYPE=${TEST_TYPE}"
"-DRunCMake_TEST_FILE_PREFIX=${TEST_NAME}" "-DRunCMake_TEST_FILE_PREFIX=${TEST_NAME}"
"-DRunCMake_SUBTEST_SUFFIX=${SUBTEST_SUFFIX}") "-DRunCMake_SUBTEST_SUFFIX=${SUBTEST_SUFFIX}"
"-DPACKAGING_TYPE=${PACKAGING_TYPE}")
run_cmake(${full_test_name_}) run_cmake(${full_test_name_})
# execute optional build step # execute optional build step
@@ -42,7 +45,7 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
if(source) if(source)
set(pack_params_ -G ${TEST_TYPE} --config ./CPackSourceConfig.cmake) set(pack_params_ -G ${TEST_TYPE} --config ./CPackSourceConfig.cmake)
FILE(APPEND ${RunCMake_TEST_BINARY_DIR}/CPackSourceConfig.cmake FILE(APPEND ${RunCMake_TEST_BINARY_DIR}/CPackSourceConfig.cmake
"\nset(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS \"-DRunCMake_TEST:STRING=${full_test_name_}\ -DRunCMake_TEST_FILE_PREFIX:STRING=${TEST_NAME} -DGENERATOR_TYPE=${TEST_TYPE}\")") "\nset(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS \"-DRunCMake_TEST:STRING=${full_test_name_} -DRunCMake_TEST_FILE_PREFIX:STRING=${TEST_NAME} -DGENERATOR_TYPE:STRING=${TEST_TYPE}\")")
else() else()
unset(pack_params_) unset(pack_params_)
endif() endif()
@@ -74,6 +77,7 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
-DRunCMake_TEST_FILE_PREFIX=${TEST_NAME} -DRunCMake_TEST_FILE_PREFIX=${TEST_NAME}
-DRunCMake_SUBTEST_SUFFIX=${SUBTEST_SUFFIX} -DRunCMake_SUBTEST_SUFFIX=${SUBTEST_SUFFIX}
-DGENERATOR_TYPE=${TEST_TYPE} -DGENERATOR_TYPE=${TEST_TYPE}
-DPACKAGING_TYPE=${PACKAGING_TYPE}
"-Dsrc_dir=${RunCMake_SOURCE_DIR}" "-Dsrc_dir=${RunCMake_SOURCE_DIR}"
"-Dbin_dir=${RunCMake_TEST_BINARY_DIR}" "-Dbin_dir=${RunCMake_TEST_BINARY_DIR}"
"-Dconfig_file=${config_file}" "-Dconfig_file=${config_file}"
@@ -82,16 +86,20 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
endif() endif()
endfunction() endfunction()
function(run_cpack_test TEST_NAME types build) function(run_cpack_test TEST_NAME types build PACKAGING_TYPES)
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" false) foreach(packaging_type_ IN LISTS PACKAGING_TYPES)
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" false "${packaging_type_}")
endforeach()
endfunction()
function(run_cpack_test_subtests TEST_NAME SUBTEST_SUFFIXES types build PACKAGING_TYPES)
foreach(suffix_ IN LISTS SUBTEST_SUFFIXES)
foreach(packaging_type_ IN LISTS PACKAGING_TYPES)
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "${suffix_}" false "${packaging_type_}")
endforeach()
endforeach()
endfunction() endfunction()
function(run_cpack_source_test TEST_NAME types build) function(run_cpack_source_test TEST_NAME types build)
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" true) run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" true "")
endfunction()
function(run_cpack_test_subtests TEST_NAME SUBTEST_SUFFIXES types build)
foreach(suffix_ IN LISTS SUBTEST_SUFFIXES)
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "${suffix_}" false)
endforeach()
endfunction() endfunction()

View File

@@ -0,0 +1,2 @@
set(CPACK_DEB_COMPONENT_INSTALL "ON")
set(CPACK_PACKAGE_CONTACT "someone")

View File

@@ -0,0 +1 @@
set(CPACK_PACKAGE_CONTACT "someone")

View File

@@ -0,0 +1 @@
set(CPACK_RPM_COMPONENT_INSTALL "ON")

View File

@@ -3,23 +3,22 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
include(RunCMake) include(RunCMake)
include("${RunCMake_SOURCE_DIR}/CPackTestHelpers.cmake") include("${RunCMake_SOURCE_DIR}/CPackTestHelpers.cmake")
# args: TEST_NAME "GENERATORS" RUN_CMAKE_BUILD_STEP # run_cpack_test args: TEST_NAME "GENERATORS" RUN_CMAKE_BUILD_STEP "PACKAGING_TYPES"
run_cpack_test(MINIMAL "RPM;DEB;TGZ" false) run_cpack_test(CUSTOM_NAMES "RPM;DEB" true "COMPONENT")
run_cpack_test(DEBUGINFO "RPM" true "COMPONENT")
run_cpack_test(DEPENDENCIES "RPM;DEB" true "COMPONENT")
run_cpack_test(DIST "RPM" false "MONOLITHIC")
run_cpack_test(EMPTY_DIR "RPM;DEB;TGZ" true "MONOLITHIC;COMPONENT")
run_cpack_test(EXTRA "DEB" false "COMPONENT")
run_cpack_test(GENERATE_SHLIBS "DEB" true "COMPONENT")
run_cpack_test(GENERATE_SHLIBS_LDCONFIG "DEB" true "COMPONENT")
run_cpack_test(INSTALL_SCRIPTS "RPM" false "COMPONENT")
run_cpack_test(LONG_FILENAMES "DEB" false "MONOLITHIC")
run_cpack_test_subtests(MAIN_COMPONENT "invalid;found" "RPM" false "COMPONENT")
run_cpack_test(MINIMAL "RPM;DEB;TGZ" false "MONOLITHIC")
run_cpack_test_subtests(PACKAGE_CHECKSUM "invalid;MD5;SHA1;SHA224;SHA256;SHA384;SHA512" "TGZ" false "MONOLITHIC")
run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false "COMPONENT")
run_cpack_test(PER_COMPONENT_FIELDS "RPM;DEB" false "COMPONENT")
run_cpack_test_subtests(SINGLE_DEBUGINFO "no_main_component;one_component;one_component_main;no_debuginfo;one_component_no_debuginfo;no_components;valid" "RPM" true "CUSTOM")
run_cpack_source_test(SOURCE_PACKAGE "RPM" true) run_cpack_source_test(SOURCE_PACKAGE "RPM" true)
run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false) run_cpack_test(SUGGESTS "RPM" false "MONOLITHIC")
run_cpack_test(EXTRA "DEB" false)
run_cpack_test(DEPENDENCIES "RPM;DEB" true)
run_cpack_test(EMPTY_DIR "RPM;DEB;TGZ" true)
run_cpack_test(COMPONENTS_EMPTY_DIR "RPM;DEB;TGZ" true)
run_cpack_test(CUSTOM_NAMES "RPM;DEB" true)
run_cpack_test_subtests(MAIN_COMPONENT "invalid;found" "RPM" false)
run_cpack_test(PER_COMPONENT_FIELDS "RPM;DEB" false)
run_cpack_test(DIST "RPM" false)
run_cpack_test(SUGGESTS "RPM" false)
run_cpack_test(INSTALL_SCRIPTS "RPM" false)
run_cpack_test(GENERATE_SHLIBS "DEB" true)
run_cpack_test(GENERATE_SHLIBS_LDCONFIG "DEB" true)
run_cpack_test(DEBUGINFO "RPM" true)
run_cpack_test_subtests(SINGLE_DEBUGINFO "no_main_component;one_component;one_component_main;no_debuginfo;one_component_no_debuginfo;no_components;valid" "RPM" true)
run_cpack_test(LONG_FILENAMES "DEB" false)
run_cpack_test_subtests(PACKAGE_CHECKSUM "invalid;MD5;SHA1;SHA224;SHA256;SHA384;SHA512;SHA3_224;SHA3_256;SHA3_384;SHA3_512" "TGZ" false)

View File

@@ -35,9 +35,15 @@ endfunction()
function(toExpectedContentList FILE_NO CONTENT_VAR) function(toExpectedContentList FILE_NO CONTENT_VAR)
findExpectedFile("${FILE_NO}" "file_") findExpectedFile("${FILE_NO}" "file_")
get_filename_component(prefix_ "${file_}" NAME) # component and monolithic packages differ for some reason by either having
# NAME_WE removes everything after the dot and dot is in version so use this instead # package filename prefix in path or not
string(REPLACE ".tar.gz" "" prefix_ "${prefix_}") if(PACKAGING_TYPE STREQUAL "MONOLITHIC")
get_filename_component(prefix_ "${file_}" NAME)
# NAME_WE removes everything after the dot and dot is in version so replace instead
string(REPLACE ".tar.gz" "/" prefix_ "${prefix_}")
else()
unset(prefix_)
endif()
if(NOT DEFINED TEST_MAIN_INSTALL_PREFIX_PATH) if(NOT DEFINED TEST_MAIN_INSTALL_PREFIX_PATH)
set(TEST_MAIN_INSTALL_PREFIX_PATH "/usr") set(TEST_MAIN_INSTALL_PREFIX_PATH "/usr")
@@ -45,7 +51,7 @@ function(toExpectedContentList FILE_NO CONTENT_VAR)
unset(filtered_) unset(filtered_)
foreach(part_ IN LISTS ${CONTENT_VAR}) foreach(part_ IN LISTS ${CONTENT_VAR})
string(REPLACE "${TEST_MAIN_INSTALL_PREFIX_PATH}" "" part_ "${part_}") string(REGEX REPLACE "^${TEST_MAIN_INSTALL_PREFIX_PATH}(/|$)" "" part_ "${part_}")
if(part_) if(part_)
list(APPEND filtered_ "${prefix_}${part_}") list(APPEND filtered_ "${prefix_}${part_}")

View File

@@ -0,0 +1 @@
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")

View File

@@ -1,9 +0,0 @@
set(EXPECTED_FILES_COUNT "1")
set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE)
set(EXPECTED_FILE_1_COMPONENT "test")
set(EXPECTED_FILE_CONTENT_1_LIST "/usr;/usr/empty")
if(GENERATOR_TYPE STREQUAL "TGZ")
set(EXPECTED_FILE_CONTENT_1 "^[^\n]*empty/$")
endif()

View File

@@ -1,14 +0,0 @@
if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_PACKAGE_CONTACT "someone")
set(CPACK_DEB_COMPONENT_INSTALL "ON")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
elseif(GENERATOR_TYPE STREQUAL "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
elseif(GENERATOR_TYPE STREQUAL "TGZ")
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
endif()
set(CPACK_COMPONENTS_ALL test)
install(DIRECTORY DESTINATION empty
COMPONENT test)

View File

@@ -1,16 +1,12 @@
if(GENERATOR_TYPE STREQUAL "DEB") if(GENERATOR_TYPE STREQUAL "DEB" OR GENERATOR_TYPE STREQUAL "RPM")
set(CPACK_PACKAGE_CONTACT "someone") if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_DEB_COMPONENT_INSTALL "ON") set(generator_type_suffix_ "IAN") # not entirely compatible...
endif()
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_FILE_NAME "${GENERATOR_TYPE}-DEFAULT")
set(CPACK_DEBIAN_PKG_2_PACKAGE_NAME "second") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PKG_2_PACKAGE_NAME "second")
set(CPACK_DEBIAN_PKG_3_FILE_NAME "pkg_3_abc.deb") string(TOLOWER "${GENERATOR_TYPE}" file_extension_)
elseif(GENERATOR_TYPE STREQUAL "RPM") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PKG_3_FILE_NAME "pkg_3_abc.${file_extension_}")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
set(CPACK_RPM_PKG_2_PACKAGE_NAME "second")
set(CPACK_RPM_PKG_3_FILE_NAME "pkg_3_abc.rpm")
endif() endif()
install(FILES CMakeLists.txt DESTINATION foo COMPONENT pkg_1) install(FILES CMakeLists.txt DESTINATION foo COMPONENT pkg_1)

View File

@@ -6,8 +6,6 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "PGI")
string(APPEND CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id") string(APPEND CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id")
endif() endif()
set(CPACK_RPM_COMPONENT_INSTALL "ON")
set(CMAKE_BUILD_TYPE Debug) set(CMAKE_BUILD_TYPE Debug)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp" file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp"

View File

@@ -68,11 +68,11 @@ elseif(GENERATOR_TYPE STREQUAL "RPM")
checkDependencies_("${FOUND_FILE_4}" "requires" "depend-default;depend-default-b") checkDependencies_("${FOUND_FILE_4}" "requires" "depend-default;depend-default-b")
checkDependencies_("${FOUND_FILE_5}" "requires" "depend-default;depend-default-b") checkDependencies_("${FOUND_FILE_5}" "requires" "depend-default;depend-default-b")
checkDependencies_("${FOUND_FILE_1}" "conflicts" "conflict-application;conflict-application-b") checkDependencies_("${FOUND_FILE_1}" "conflicts" "conflicts-application;conflicts-application-b")
checkDependencies_("${FOUND_FILE_2}" "conflicts" "conflict-application;conflict-application-b") checkDependencies_("${FOUND_FILE_2}" "conflicts" "conflicts-application;conflicts-application-b")
checkDependencies_("${FOUND_FILE_3}" "conflicts" "conflict-headers") checkDependencies_("${FOUND_FILE_3}" "conflicts" "conflicts-headers")
checkDependencies_("${FOUND_FILE_4}" "conflicts" "conflict-default;conflict-default-b") checkDependencies_("${FOUND_FILE_4}" "conflicts" "conflicts-default;conflicts-default-b")
checkDependencies_("${FOUND_FILE_5}" "conflicts" "conflict-default;conflict-default-b") checkDependencies_("${FOUND_FILE_5}" "conflicts" "conflicts-default;conflicts-default-b")
checkDependencies_("${FOUND_FILE_1}" "provides" "provided-default;provided-default-b") checkDependencies_("${FOUND_FILE_1}" "provides" "provided-default;provided-default-b")
checkDependencies_("${FOUND_FILE_2}" "provides" "provided-default;provided-default-b") checkDependencies_("${FOUND_FILE_2}" "provides" "provided-default;provided-default-b")

View File

@@ -1,50 +1,43 @@
if(GENERATOR_TYPE STREQUAL "DEB") if(GENERATOR_TYPE STREQUAL "DEB" OR GENERATOR_TYPE STREQUAL "RPM")
set(CPACK_PACKAGE_CONTACT "someone") if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_DEB_COMPONENT_INSTALL "ON") # false by default
#intentionaly commented out to test old file naming set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS FALSE)
#set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") # FIXME can not be tested as libraries first have to be part of a package in order
# to determine their dependencies and we can not be certain if there will be any
set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_SHLIBDEPS TRUE)
# false by default foreach(dependency_type_ DEPENDS PREDEPENDS ENHANCES BREAKS REPLACES RECOMMENDS SUGGESTS)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS FALSE) string(TOLOWER "${dependency_type_}" lower_dependency_type_)
# FIXME can not be tested as libraries first have to be part of a package in order
# to determine their dependencies and we can not be certain if there will be any
set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_SHLIBDEPS TRUE)
foreach(dependency_type_ DEPENDS CONFLICTS PREDEPENDS ENHANCES BREAKS REPLACES RECOMMENDS SUGGESTS) set(CPACK_DEBIAN_PACKAGE_${dependency_type_} "${lower_dependency_type_}-default, ${lower_dependency_type_}-default-b")
string(TOLOWER "${dependency_type_}" lower_dependency_type_) set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_${dependency_type_} "${lower_dependency_type_}-application, ${lower_dependency_type_}-application-b")
set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_${dependency_type_} "${lower_dependency_type_}-application, ${lower_dependency_type_}-application-b")
set(CPACK_DEBIAN_HEADERS_PACKAGE_${dependency_type_} "${lower_dependency_type_}-headers")
endforeach()
set(CPACK_DEBIAN_PACKAGE_${dependency_type_} "${lower_dependency_type_}-default, ${lower_dependency_type_}-default-b") set(generator_type_suffix_ "IAN") # not entirely compatible...
set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_${dependency_type_} "${lower_dependency_type_}-application, ${lower_dependency_type_}-application-b") else() # RPM
set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_${dependency_type_} "${lower_dependency_type_}-application, ${lower_dependency_type_}-application-b") # FIXME auto autoprov is not tested at the moment as Ubuntu 15.04 rpmbuild
set(CPACK_DEBIAN_HEADERS_PACKAGE_${dependency_type_} "${lower_dependency_type_}-headers") # does not use them correctly: https://bugs.launchpad.net/rpm/+bug/1475755
endforeach() set(CPACK_RPM_PACKAGE_AUTOREQ "no")
set(CPACK_RPM_PACKAGE_AUTOPROV "no")
set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_AUTOREQPROV "yes")
set(CPACK_RPM_LIBS_AUTO_PACKAGE_AUTOREQPROV "yes")
set(CPACK_DEBIAN_PACKAGE_PROVIDES "provided-default, provided-default-b") set(CPACK_RPM_PACKAGE_REQUIRES "depend-default, depend-default-b")
set(CPACK_DEBIAN_LIBS_PACKAGE_PROVIDES "provided-lib") set(CPACK_RPM_APPLICATIONS_PACKAGE_REQUIRES "depend-application, depend-application-b")
set(CPACK_DEBIAN_LIBS_AUTO_PACKAGE_PROVIDES "provided-lib_auto, provided-lib_auto-b") set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_REQUIRES "depend-application, depend-application-b")
elseif(GENERATOR_TYPE STREQUAL "RPM") set(CPACK_RPM_HEADERS_PACKAGE_REQUIRES "depend-headers")
set(CPACK_RPM_COMPONENT_INSTALL "ON") endif()
# FIXME auto autoprov is not tested at the moment as Ubuntu 15.04 rpmbuild set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PACKAGE_CONFLICTS "conflicts-default, conflicts-default-b")
# does not use them correctly: https://bugs.launchpad.net/rpm/+bug/1475755 set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_APPLICATIONS_PACKAGE_CONFLICTS "conflicts-application, conflicts-application-b")
set(CPACK_RPM_PACKAGE_AUTOREQ "no") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_APPLICATIONS_AUTO_PACKAGE_CONFLICTS "conflicts-application, conflicts-application-b")
set(CPACK_RPM_PACKAGE_AUTOPROV "no") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_HEADERS_PACKAGE_CONFLICTS "conflicts-headers")
set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_AUTOREQPROV "yes")
set(CPACK_RPM_LIBS_AUTO_PACKAGE_AUTOREQPROV "yes")
set(CPACK_RPM_PACKAGE_REQUIRES "depend-default, depend-default-b") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PACKAGE_PROVIDES "provided-default, provided-default-b")
set(CPACK_RPM_APPLICATIONS_PACKAGE_REQUIRES "depend-application, depend-application-b") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_LIBS_PACKAGE_PROVIDES "provided-lib")
set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_REQUIRES "depend-application, depend-application-b") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_LIBS_AUTO_PACKAGE_PROVIDES "provided-lib_auto, provided-lib_auto-b")
set(CPACK_RPM_HEADERS_PACKAGE_REQUIRES "depend-headers")
set(CPACK_RPM_PACKAGE_CONFLICTS "conflict-default, conflict-default-b")
set(CPACK_RPM_APPLICATIONS_PACKAGE_CONFLICTS "conflict-application, conflict-application-b")
set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_CONFLICTS "conflict-application, conflict-application-b")
set(CPACK_RPM_HEADERS_PACKAGE_CONFLICTS "conflict-headers")
set(CPACK_RPM_PACKAGE_PROVIDES "provided-default, provided-default-b")
set(CPACK_RPM_LIBS_PACKAGE_PROVIDES "provided-lib")
set(CPACK_RPM_LIBS_AUTO_PACKAGE_PROVIDES "provided-lib_auto, provided-lib_auto-b")
endif() endif()
set(CMAKE_BUILD_WITH_INSTALL_RPATH 1) set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)

View File

@@ -1,3 +1,7 @@
set(EXPECTED_FILES_COUNT "1") set(EXPECTED_FILES_COUNT "1")
set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE) set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE)
set(EXPECTED_FILE_CONTENT_1_LIST "/usr;/usr/empty") set(EXPECTED_FILE_CONTENT_1_LIST "/usr;/usr/empty")
if(PACKAGING_TYPE STREQUAL "COMPONENT")
set(EXPECTED_FILE_1_COMPONENT "test")
endif()

View File

@@ -1,7 +1,3 @@
if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_PACKAGE_CONTACT "someone")
endif()
if(GENERATOR_TYPE STREQUAL "DEB" OR GENERATOR_TYPE STREQUAL "RPM") if(GENERATOR_TYPE STREQUAL "DEB" OR GENERATOR_TYPE STREQUAL "RPM")
if(GENERATOR_TYPE STREQUAL "DEB") if(GENERATOR_TYPE STREQUAL "DEB")
set(generator_type_suffix_ "IAN") # not entirely compatible... set(generator_type_suffix_ "IAN") # not entirely compatible...
@@ -12,3 +8,7 @@ endif()
install(DIRECTORY DESTINATION empty install(DIRECTORY DESTINATION empty
COMPONENT test) COMPONENT test)
if(PACKAGING_TYPE STREQUAL "COMPONENT")
set(CPACK_COMPONENTS_ALL test)
endif()

View File

@@ -32,7 +32,4 @@ endforeach()
set(CPACK_DEBIAN_BAR_PACKAGE_CONTROL_EXTRA set(CPACK_DEBIAN_BAR_PACKAGE_CONTROL_EXTRA
"${CMAKE_CURRENT_BINARY_DIR}/bar/preinst;${CMAKE_CURRENT_BINARY_DIR}/bar/prerm") "${CMAKE_CURRENT_BINARY_DIR}/bar/preinst;${CMAKE_CURRENT_BINARY_DIR}/bar/prerm")
set(CPACK_PACKAGE_CONTACT "someone")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
set(CPACK_DEB_COMPONENT_INSTALL ON)

View File

@@ -1,5 +1,3 @@
set(CPACK_PACKAGE_CONTACT "someone")
set(CPACK_DEB_COMPONENT_INSTALL "ON")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")

View File

@@ -1,5 +1,3 @@
set(CPACK_PACKAGE_CONTACT "someone")
set(CPACK_DEB_COMPONENT_INSTALL "ON")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")

View File

@@ -1,6 +1,4 @@
if(GENERATOR_TYPE STREQUAL "RPM") if(GENERATOR_TYPE STREQUAL "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
"${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh") "${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh")
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE

View File

@@ -1,5 +1,4 @@
if(GENERATOR_TYPE STREQUAL "DEB") if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_PACKAGE_CONTACT "someone")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar") set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar")
endif() endif()

View File

@@ -1,5 +1,3 @@
set(CPACK_RPM_COMPONENT_INSTALL "ON")
install(FILES CMakeLists.txt DESTINATION foo COMPONENT applications) install(FILES CMakeLists.txt DESTINATION foo COMPONENT applications)
install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers) install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers)
install(FILES CMakeLists.txt DESTINATION bas COMPONENT libs) install(FILES CMakeLists.txt DESTINATION bas COMPONENT libs)

View File

@@ -1,5 +1 @@
if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_PACKAGE_CONTACT "someone")
endif()
install(FILES CMakeLists.txt DESTINATION foo COMPONENT test) install(FILES CMakeLists.txt DESTINATION foo COMPONENT test)

View File

@@ -2,5 +2,3 @@ install(FILES CMakeLists.txt DESTINATION /not_relocatable COMPONENT static)
set(CPACK_PACKAGE_RELOCATABLE TRUE) set(CPACK_PACKAGE_RELOCATABLE TRUE)
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt") set(CPACK_PACKAGING_INSTALL_PREFIX "/opt")
set(CPACK_RPM_COMPONENT_INSTALL ON)

View File

@@ -1,18 +1,16 @@
if(GENERATOR_TYPE STREQUAL "DEB") if(GENERATOR_TYPE STREQUAL "DEB" OR GENERATOR_TYPE STREQUAL "RPM")
set(CPACK_PACKAGE_CONTACT "someone") if(GENERATOR_TYPE STREQUAL "DEB")
set(CPACK_DEB_COMPONENT_INSTALL "ON") set(generator_type_suffix_ "IAN") # not entirely compatible...
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") set(group_ "SECTION")
else()
set(group_ "GROUP")
endif()
set(CPACK_DEBIAN_PACKAGE_SECTION "default") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_FILE_NAME "${GENERATOR_TYPE}-DEFAULT")
set(CPACK_DEBIAN_PKG_2_PACKAGE_NAME "second")
set(CPACK_DEBIAN_PKG_2_PACKAGE_SECTION "second_group")
elseif(GENERATOR_TYPE STREQUAL "RPM")
set(CPACK_RPM_COMPONENT_INSTALL "ON")
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
set(CPACK_RPM_PACKAGE_GROUP "default") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PACKAGE_${group_} "default")
set(CPACK_RPM_PKG_2_PACKAGE_NAME "second") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PKG_2_PACKAGE_NAME "second")
set(CPACK_RPM_PKG_2_PACKAGE_GROUP "second_group") set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PKG_2_PACKAGE_${group_} "second_group")
endif() endif()
install(FILES CMakeLists.txt DESTINATION foo COMPONENT pkg_1) install(FILES CMakeLists.txt DESTINATION foo COMPONENT pkg_1)