This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 6d0cf23c5d225f629bfc076eac4340cfac28e597 (commit) via 94226751cb9beb7aa1939e9395d4999e30b30600 (commit) via 105011e08fafe23cb4cfd4fcb1468187f9d81f21 (commit) via d882d4770fec6d65d82d818b4979cb5763d253c1 (commit) via 145735b748ab04505ab7a885a54fbd175ccecee2 (commit) from 662af68dd367056396d8c48f9854137ff05f45ba (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6d0cf23c5d225f629bfc076eac4340cfac28e597 commit 6d0cf23c5d225f629bfc076eac4340cfac28e597 Merge: 662af68 9422675 Author: Brad King <brad.k...@kitware.com> AuthorDate: Thu Aug 6 09:34:19 2015 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Thu Aug 6 09:34:19 2015 -0400 Merge topic 'cpack-rpm-documentation-fixes' into next 94226751 Tests/RunCMake/CPack: Add dependencies tests 105011e0 Tests/RunCMake/CPack: Bump verify result cmake version d882d477 Tests/RunCMake/CPack/DEB: Add getPackageInfo helper function 145735b7 Tests/RunCMake/CPack: Enable CXX language in tests http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=94226751cb9beb7aa1939e9395d4999e30b30600 commit 94226751cb9beb7aa1939e9395d4999e30b30600 Author: Domen Vrankar <domen.vran...@gmail.com> AuthorDate: Wed Jul 29 23:39:11 2015 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu Aug 6 09:33:51 2015 -0400 Tests/RunCMake/CPack: Add dependencies tests Add tests for RPM and DEB package test for currently supported dependency features (requires, provides, conflicts, ...). diff --git a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-ExpectedFiles.cmake b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-ExpectedFiles.cmake new file mode 100644 index 0000000..c56c670 --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-ExpectedFiles.cmake @@ -0,0 +1,14 @@ +set(whitespaces_ "[\t\n\r ]*") + +set(EXPECTED_FILES_COUNT "5") +set(EXPECTED_FILE_1 "dependencies*-applications.deb") +set(EXPECTED_FILE_CONTENT_1 "^.*/usr/foo${whitespaces_}.*/usr/foo/test_prog$") +set(EXPECTED_FILE_2 "dependencies*-applications_auto.deb") +set(EXPECTED_FILE_CONTENT_2 "^.*/usr/foo_auto${whitespaces_}.*/usr/foo_auto/test_prog$") +set(EXPECTED_FILE_3 "dependencies*-headers.deb") +set(EXPECTED_FILE_CONTENT_3 "^.*/usr/bar${whitespaces_}.*/usr/bar/CMakeLists.txt$") +set(EXPECTED_FILE_4 "dependencies*-libs.deb") +# dynamic lib extension is .so on Linux and .dylib on Mac so we will use a wildcard .* for it +set(EXPECTED_FILE_CONTENT_4 "^.*/usr/bas${whitespaces_}.*/usr/bas/libtest_lib\\..*$") +set(EXPECTED_FILE_5 "dependencies*-libs_auto.deb") +set(EXPECTED_FILE_CONTENT_5 "^.*/usr/bas_auto${whitespaces_}.*/usr/bas_auto/libtest_lib\\..*$") diff --git a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake new file mode 100644 index 0000000..44c862d --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake @@ -0,0 +1,15 @@ +function(checkDepends_ FILE REGEX) + set(whitespaces_ "[\t\n\r ]*") + + getPackageInfo("${FILE}" "FILE_INFO_") + if(NOT FILE_INFO_ MATCHES "${REGEX}") + message(FATAL_ERROR "Unexpected dependencies in '${FILE}'; file info: '${FILE_INFO_}'") + endif() +endfunction() + +checkDepends_("${FOUND_FILE_1}" ".*Depends${whitespaces_}:${whitespaces_}depend-application, depend-application-b.*") +# use wildcard as we are using dependency auto detection +checkDepends_("${FOUND_FILE_2}" ".*Depends${whitespaces_}:${whitespaces_}.*depend-application, depend-application-b.*") +checkDepends_("${FOUND_FILE_3}" ".*Depends${whitespaces_}:${whitespaces_}depend-headers.*") +checkDepends_("${FOUND_FILE_4}" ".*Depends${whitespaces_}:${whitespaces_}depend-default, depend-default-b.*") +checkDepends_("${FOUND_FILE_5}" ".*Depends${whitespaces_}:${whitespaces_}depend-default, depend-default-b.*") diff --git a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake new file mode 100644 index 0000000..9e09428 --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake @@ -0,0 +1,15 @@ +set(CPACK_PACKAGE_CONTACT "someone") +set(CPACK_DEB_COMPONENT_INSTALL "ON") + +# false by default +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS FALSE) +# 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) + +set(CPACK_DEBIAN_PACKAGE_DEPENDS "depend-default, depend-default-b") +set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_DEPENDS "depend-application, depend-application-b") +set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_DEPENDS "depend-application, depend-application-b") +set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "depend-headers") + +# TODO add other dependency tests once CPackDeb supports them diff --git a/Tests/RunCMake/CPack/DEPENDENCIES.cmake b/Tests/RunCMake/CPack/DEPENDENCIES.cmake new file mode 100644 index 0000000..0aef925 --- /dev/null +++ b/Tests/RunCMake/CPack/DEPENDENCIES.cmake @@ -0,0 +1,18 @@ +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp" + "int test_lib();") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp" + "#include \"test_lib.hpp\"\nint test_lib() {return 0;}") +add_library(test_lib SHARED "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp") + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp" + "#include \"test_lib.hpp\"\nint main() {return test_lib();}") +add_executable(test_prog "${CMAKE_CURRENT_BINARY_DIR}/main.cpp") +target_link_libraries(test_prog test_lib) + +install(TARGETS test_prog DESTINATION foo COMPONENT applications) +install(TARGETS test_prog DESTINATION foo_auto COMPONENT applications_auto) +install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers) +install(TARGETS test_lib DESTINATION bas COMPONENT libs) +install(TARGETS test_lib DESTINATION bas_auto COMPONENT libs_auto) + +set(CPACK_PACKAGE_NAME "dependencies") diff --git a/Tests/RunCMake/CPack/RPM/DEPENDENCIES-ExpectedFiles.cmake b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-ExpectedFiles.cmake new file mode 100644 index 0000000..cf85dab --- /dev/null +++ b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-ExpectedFiles.cmake @@ -0,0 +1,13 @@ +set(whitespaces_ "[\t\n\r ]*") + +set(EXPECTED_FILES_COUNT "5") +set(EXPECTED_FILE_1 "dependencies*-applications.rpm") +set(EXPECTED_FILE_CONTENT_1 "^/usr/foo${whitespaces_}/usr/foo/test_prog$") +set(EXPECTED_FILE_2 "dependencies*-applications_auto.rpm") +set(EXPECTED_FILE_CONTENT_2 "^/usr/foo_auto${whitespaces_}/usr/foo_auto/test_prog$") +set(EXPECTED_FILE_3 "dependencies*-headers.rpm") +set(EXPECTED_FILE_CONTENT_3 "^/usr/bar${whitespaces_}/usr/bar/CMakeLists.txt$") +set(EXPECTED_FILE_4 "dependencies*-libs.rpm") +set(EXPECTED_FILE_CONTENT_4 "^/usr/bas${whitespaces_}/usr/bas/libtest_lib.so$") +set(EXPECTED_FILE_5 "dependencies*-libs_auto.rpm") +set(EXPECTED_FILE_CONTENT_5 "^/usr/bas_auto${whitespaces_}/usr/bas_auto/libtest_lib.so$") diff --git a/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake new file mode 100644 index 0000000..fec8889 --- /dev/null +++ b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake @@ -0,0 +1,45 @@ +function(checkDependencies_ FILE TYPE COMPARE_LIST) + set(whitespaces_ "[\t\n\r ]*") + + execute_process(COMMAND ${RPM_EXECUTABLE} -qp --${TYPE} ${FILE} + WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + OUTPUT_VARIABLE FILE_DEPENDENCIES_ + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + + string(REPLACE "\n" ";" FILE_DEPENDENCIES_LIST_ "${FILE_DEPENDENCIES_}") + + foreach(COMPARE_REGEX_ IN LISTS COMPARE_LIST) + unset(FOUND_) + + foreach(COMPARE_ IN LISTS FILE_DEPENDENCIES_LIST_) + if(COMPARE_ MATCHES "${COMPARE_REGEX_}") + set(FOUND_ true) + break() + endif() + endforeach() + + if(NOT FOUND_) + message(FATAL_ERROR "Missing dependencies in '${FILE}'; check type: '${TYPE}'; file info: '${FILE_DEPENDENCIES_}'; missing: '${COMPARE_REGEX_}'") + endif() + endforeach() +endfunction() + +# TODO add tests for what should not be present in lists +checkDependencies_("${FOUND_FILE_1}" "requires" "depend-application;depend-application-b") +checkDependencies_("${FOUND_FILE_2}" "requires" "depend-application;depend-application-b;libtest_lib\\.so.*") +checkDependencies_("${FOUND_FILE_3}" "requires" "depend-headers") +checkDependencies_("${FOUND_FILE_4}" "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_2}" "conflicts" "conflict-application;conflict-application-b") +checkDependencies_("${FOUND_FILE_3}" "conflicts" "conflict-headers") +checkDependencies_("${FOUND_FILE_4}" "conflicts" "conflict-default;conflict-default-b") +checkDependencies_("${FOUND_FILE_5}" "conflicts" "conflict-default;conflict-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_3}" "provides" "provided-default;provided-default-b") +checkDependencies_("${FOUND_FILE_4}" "provides" "provided-lib") +checkDependencies_("${FOUND_FILE_5}" "provides" "provided-lib_auto;provided-lib_auto-b") diff --git a/Tests/RunCMake/CPack/RPM/DEPENDENCIES-specifics.cmake b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-specifics.cmake new file mode 100644 index 0000000..2cdfece --- /dev/null +++ b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-specifics.cmake @@ -0,0 +1,22 @@ +set(CPACK_RPM_COMPONENT_INSTALL "ON") + +# FIXME auto autoprov is not tested at the moment as Ubuntu 15.04 rpmbuild +# does not use them correctly: https://bugs.launchpad.net/rpm/+bug/1475755 +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_RPM_PACKAGE_REQUIRES "depend-default, depend-default-b") +set(CPACK_RPM_applications_PACKAGE_REQUIRES "depend-application, depend-application-b") +set(CPACK_RPM_applications_auto_PACKAGE_REQUIRES "depend-application, depend-application-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") diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake index 97ef238..3e5714d 100644 --- a/Tests/RunCMake/CPack/RunCMakeTest.cmake +++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake @@ -7,3 +7,4 @@ include("${RunCMake_SOURCE_DIR}/CPackTestHelpers.cmake") run_cpack_test(MINIMAL "RPM;DEB" false) run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false) run_cpack_test(DEB_EXTRA "DEB" false) +run_cpack_test(DEPENDENCIES "RPM;DEB" true) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=105011e08fafe23cb4cfd4fcb1468187f9d81f21 commit 105011e08fafe23cb4cfd4fcb1468187f9d81f21 Author: Domen Vrankar <domen.vran...@gmail.com> AuthorDate: Wed Jul 29 23:36:11 2015 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu Aug 6 09:33:50 2015 -0400 Tests/RunCMake/CPack: Bump verify result cmake version Bumped version to current cmake version so that we always use latest policies. diff --git a/Tests/RunCMake/CPack/VerifyResult.cmake b/Tests/RunCMake/CPack/VerifyResult.cmake index e059d9c..96efa9e 100644 --- a/Tests/RunCMake/CPack/VerifyResult.cmake +++ b/Tests/RunCMake/CPack/VerifyResult.cmake @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) +cmake_minimum_required(VERSION ${CMAKE_VERSION} FATAL_ERROR) include("${config_file}") include("${src_dir}/${GENERATOR_TYPE}/Helpers.cmake") http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d882d4770fec6d65d82d818b4979cb5763d253c1 commit d882d4770fec6d65d82d818b4979cb5763d253c1 Author: Domen Vrankar <domen.vran...@gmail.com> AuthorDate: Wed Jul 29 23:34:17 2015 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu Aug 6 09:33:50 2015 -0400 Tests/RunCMake/CPack/DEB: Add getPackageInfo helper function getPackageInfo helper function returns package info for provided deb package file diff --git a/Tests/RunCMake/CPack/DEB/Helpers.cmake b/Tests/RunCMake/CPack/DEB/Helpers.cmake index 45c85c3..a204a3c 100644 --- a/Tests/RunCMake/CPack/DEB/Helpers.cmake +++ b/Tests/RunCMake/CPack/DEB/Helpers.cmake @@ -26,3 +26,13 @@ function(verifyDebControl FILE PREFIX VERIFY_FILES) endif() endforeach() endfunction() + +function(getPackageInfo FILE RESULT_VAR) + execute_process(COMMAND ${DPKG_EXECUTABLE} -I ${FILE} + WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + OUTPUT_VARIABLE package_info_ + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + + set(${RESULT_VAR} "${package_info_}" PARENT_SCOPE) +endfunction() http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=145735b748ab04505ab7a885a54fbd175ccecee2 commit 145735b748ab04505ab7a885a54fbd175ccecee2 Author: Domen Vrankar <domen.vran...@gmail.com> AuthorDate: Wed Jul 29 23:32:13 2015 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu Aug 6 09:33:22 2015 -0400 Tests/RunCMake/CPack: Enable CXX language in tests Enable CXX language for CPack tests so that they may compile binaries if needed. diff --git a/Tests/RunCMake/CPack/CMakeLists.txt b/Tests/RunCMake/CPack/CMakeLists.txt index 7905706..46f1367 100644 --- a/Tests/RunCMake/CPack/CMakeLists.txt +++ b/Tests/RunCMake/CPack/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR) -project(${RunCMake_TEST} NONE) +project(${RunCMake_TEST} CXX) include(${RunCMake_TEST}.cmake) # include test generator specifics ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits