diff options
author | Brad King <brad.king@kitware.com> | 2015-02-27 13:48:45 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-02-27 13:48:45 (GMT) |
commit | 4932f59b4cd903169f691f708949ea2afb595492 (patch) | |
tree | 6470004c9579dc5edf1c467f65687af043a73170 /Tests | |
parent | 693a944736aca153504d26fb621933219b715210 (diff) | |
parent | 1cbb15625304b01e8a99a956fa42e4b7011fea48 (diff) | |
download | CMake-4932f59b4cd903169f691f708949ea2afb595492.zip CMake-4932f59b4cd903169f691f708949ea2afb595492.tar.gz CMake-4932f59b4cd903169f691f708949ea2afb595492.tar.bz2 |
Merge branch 'cpack_rpm_mulit_prefix_fixup' into release
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CPackComponentsForAll/MyLibCPackConfig-IgnoreGroup.cmake.in | 9 | ||||
-rw-r--r-- | Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake | 31 |
2 files changed, 37 insertions, 3 deletions
diff --git a/Tests/CPackComponentsForAll/MyLibCPackConfig-IgnoreGroup.cmake.in b/Tests/CPackComponentsForAll/MyLibCPackConfig-IgnoreGroup.cmake.in index de0ee46..e20f11a 100644 --- a/Tests/CPackComponentsForAll/MyLibCPackConfig-IgnoreGroup.cmake.in +++ b/Tests/CPackComponentsForAll/MyLibCPackConfig-IgnoreGroup.cmake.in @@ -6,9 +6,14 @@ if(CPACK_GENERATOR MATCHES "ZIP") endif() if(CPACK_GENERATOR MATCHES "RPM") - set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") - set(CPACK_RPM_COMPONENT_INSTALL "ON") + + # test that /usr and /usr/foo get omitted in relocatable + # rpms as shortest relocation path is treated as base of + # package (/usr/foo/bar is relocatable and must exist) + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/foo/bar") + + # test requires set(CPACK_RPM_applications_PACKAGE_REQUIRES "mylib-libraries") # test package summary override diff --git a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake index 68d846f..69af374 100644 --- a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake +++ b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake @@ -144,7 +144,7 @@ if(CPackGen MATCHES "RPM") # CMAKE_SIZEOF_VOID_P is not set here but lib is prefix of lib64 so # relocation path test won't fail on OSes with lib64 library location include(GNUInstallDirs) - set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/foo/bar") foreach(check_file ${expected_file}) string(REGEX MATCH ".*libraries.*" check_file_libraries_match ${check_file}) @@ -157,30 +157,44 @@ if(CPackGen MATCHES "RPM") ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${RPM_EXECUTABLE} -pql ${check_file} + OUTPUT_VARIABLE check_package_content + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if(check_file_libraries_match) set(check_file_match_expected_summary ".*${CPACK_RPM_libraries_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*${CPACK_RPM_libraries_PACKAGE_DESCRIPTION}.*") set(check_file_match_expected_relocation_path "Relocations : ${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") set(spec_regex "*libraries*") + set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/lib.*\n/usr/foo/bar/lib.*/libmylib.a$") elseif(check_file_headers_match) set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*${CPACK_COMPONENT_HEADERS_DESCRIPTION}.*") set(check_file_match_expected_relocation_path "Relocations : ${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") set(spec_regex "*headers*") + set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/include\n/usr/foo/bar/include/mylib.h$") elseif(check_file_applications_match) set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*${CPACK_COMPONENT_APPLICATIONS_DESCRIPTION}.*") set(check_file_match_expected_relocation_path "Relocations : ${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") set(spec_regex "*applications*") + set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/bin\n/usr/foo/bar/bin/mylibapp$") elseif(check_file_Unspecified_match) set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*DESCRIPTION.*") set(check_file_match_expected_relocation_path "Relocations : ${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") set(spec_regex "*Unspecified*") + set(check_content_list "^/usr/foo/bar +/usr/foo/bar/bin +/usr/foo/bar/bin/mylibapp2$") else() message(FATAL_ERROR "error: unexpected rpm package '${check_file}'") endif() + ####################### + # test package info + ####################### string(REGEX MATCH ${check_file_match_expected_summary} check_file_match_summary ${check_file_content}) if(NOT check_file_match_summary) @@ -204,6 +218,21 @@ if(CPackGen MATCHES "RPM") message(FATAL_ERROR "error: '${check_file}' rpm package relocation path does not match expected value - regex '${check_file_match_expected_relocation_path}'; RPM output: '${check_file_content}'; generated spec file: '${spec_file_content}'") endif() + + ####################### + # test package content + ####################### + string(REGEX MATCH "${check_content_list}" expected_content_list "${check_package_content}") + + if(NOT expected_content_list) + file(GLOB_RECURSE spec_file "${CPackComponentsForAll_BINARY_DIR}/${spec_regex}.spec") + + if(spec_file) + file(READ ${spec_file} spec_file_content) + endif() + + message(FATAL_ERROR "error: '${check_file}' rpm package content does not match expected value - regex '${check_content_list}'; RPM output: '${check_package_content}'; generated spec file: '${spec_file_content}'") + endif() endforeach() elseif(${CPackComponentWay} STREQUAL "IgnoreGroup") endif() |