[Cmake-commits] CMake branch, next, updated. v3.5.2-1341-g232917e

Domen Vrankar domen.vrankar at gmail.com
Wed May 11 18:35:21 EDT 2016


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  232917e9e311ef44e472aa8b72bb4468f170e9e7 (commit)
       via  be6e9b384caf5c56887a8eb538fa4af7a9f74c02 (commit)
       via  74c32123440a8de96b25d038ec7ac447a78ee769 (commit)
      from  0823297845024f9fd0a47a3e8b7b5abbdd647100 (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 -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=232917e9e311ef44e472aa8b72bb4468f170e9e7
commit 232917e9e311ef44e472aa8b72bb4468f170e9e7
Merge: 0823297 be6e9b3
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Wed May 11 18:35:19 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed May 11 18:35:19 2016 -0400

    Merge topic 'cpack-deb-improvements' into next
    
    be6e9b38 fixup! CPack/Deb test changes due to breaking changes
    74c32123 fixup! CPack/Deb generation of DEBIAN/shlibs control file


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=be6e9b384caf5c56887a8eb538fa4af7a9f74c02
commit be6e9b384caf5c56887a8eb538fa4af7a9f74c02
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Wed May 11 22:47:43 2016 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Thu May 12 00:24:37 2016 +0200

    fixup! CPack/Deb test changes due to breaking changes

diff --git a/Tests/RunCMake/CPack/CPackTestHelpers.cmake b/Tests/RunCMake/CPack/CPackTestHelpers.cmake
index aef1086..7bf42f9 100644
--- a/Tests/RunCMake/CPack/CPackTestHelpers.cmake
+++ b/Tests/RunCMake/CPack/CPackTestHelpers.cmake
@@ -9,6 +9,20 @@ function(run_cpack_test TEST_NAME types build)
     file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
     file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
 
+    if(EXISTS "${RunCMake_SOURCE_DIR}/${TEST_TYPE}/${TEST_NAME}-Prerequirements.cmake")
+      include("${RunCMake_SOURCE_DIR}/${TEST_TYPE}/${TEST_NAME}-Prerequirements.cmake")
+
+      set(FOUND_PREREQUIREMENTS false)
+      get_test_prerequirements("FOUND_PREREQUIREMENTS"
+          "${TEST_CONFIG_DIR}/${type}_config.cmake")
+
+      # skip the test if prerequirements are not met
+      if(NOT FOUND_PREREQUIREMENTS)
+        message(STATUS "${TEST_NAME} - SKIPPED")
+        return()
+      endif()
+    endif()
+
     # execute cmake
     set(RunCMake_TEST_OPTIONS "-DGENERATOR_TYPE=${TEST_TYPE}")
     run_cmake(${TEST_NAME})
diff --git a/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-Prerequirements.cmake b/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-Prerequirements.cmake
new file mode 100644
index 0000000..b98065a
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-Prerequirements.cmake
@@ -0,0 +1,7 @@
+function(get_test_prerequirements found_var)
+  find_program(READELF_EXECUTABLE NAMES readelf)
+
+  if(READELF_EXECUTABLE)
+    set(${found_var} true PARENT_SCOPE)
+  endif()
+endfunction()
diff --git a/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-specifics.cmake b/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-specifics.cmake
deleted file mode 100644
index b87b6ba..0000000
--- a/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-specifics.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-set(CPACK_PACKAGE_CONTACT "someone")
-set(CPACK_DEB_COMPONENT_INSTALL "ON")
-
-set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "ON")
-set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")
diff --git a/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-Prerequirements.cmake b/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-Prerequirements.cmake
new file mode 100644
index 0000000..b98065a
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-Prerequirements.cmake
@@ -0,0 +1,7 @@
+function(get_test_prerequirements found_var)
+  find_program(READELF_EXECUTABLE NAMES readelf)
+
+  if(READELF_EXECUTABLE)
+    set(${found_var} true PARENT_SCOPE)
+  endif()
+endfunction()
diff --git a/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-specifics.cmake b/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-specifics.cmake
deleted file mode 100644
index 8b1cc37..0000000
--- a/Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-specifics.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-set(CPACK_PACKAGE_CONTACT "someone")
-set(CPACK_DEB_COMPONENT_INSTALL "ON")
-
-set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "ON")
-set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")
-set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=")
diff --git a/Tests/RunCMake/CPack/DEB/Helpers.cmake b/Tests/RunCMake/CPack/DEB/Helpers.cmake
index f490130..82dbd15 100644
--- a/Tests/RunCMake/CPack/DEB/Helpers.cmake
+++ b/Tests/RunCMake/CPack/DEB/Helpers.cmake
@@ -19,6 +19,10 @@ function(verifyDebControl FILE PREFIX VERIFY_FILES)
   endif()
 
   foreach(FILE_ IN LISTS VERIFY_FILES)
+    if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/control_${PREFIX}/${FILE_}")
+      message(FATAL_ERROR "Expected Debian control file does not exist: '${FILE_}'")
+    endif()
+
     file(READ "${CMAKE_CURRENT_BINARY_DIR}/control_${PREFIX}/${FILE_}" content_)
     if(NOT content_ MATCHES "${${PREFIX}_${FILE_}}")
       message(FATAL_ERROR "Unexpected content in for '${PREFIX}_${FILE_}'!"
diff --git a/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS.cmake b/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS.cmake
index 7f8a54f..efb0211 100644
--- a/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS.cmake
+++ b/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS.cmake
@@ -1,3 +1,8 @@
+set(CPACK_PACKAGE_CONTACT "someone")
+set(CPACK_DEB_COMPONENT_INSTALL "ON")
+
+set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")
+
 set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)
 
 file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp"
diff --git a/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS_LDCONFIG.cmake b/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS_LDCONFIG.cmake
index f0e7df5..1f70386 100644
--- a/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS_LDCONFIG.cmake
+++ b/Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS_LDCONFIG.cmake
@@ -1,3 +1,9 @@
+set(CPACK_PACKAGE_CONTACT "someone")
+set(CPACK_DEB_COMPONENT_INSTALL "ON")
+
+set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS "ON")
+set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=")
+
 set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)
 
 file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp"
diff --git a/Tests/RunCMake/CPack/README.txt b/Tests/RunCMake/CPack/README.txt
index ea68304..5c86880 100644
--- a/Tests/RunCMake/CPack/README.txt
+++ b/Tests/RunCMake/CPack/README.txt
@@ -1,6 +1,9 @@
 RunCMake.CPack is a test module that is intended for testing of package
 generators that can be validated from command line.
 
+TODO: all tests should cover all packaging types (single package, grouped and
+      component packaging)
+
 -------------
 Adding a test
 -------------
@@ -19,10 +22,29 @@ run_cpack_test(<test_name> "<generator_name>")
 will be run for all listed generators.
 
 Test consists of
+- test prerequirements phase (optional)
 - CMake execution phase
 - CPack execution phase
 - verification of generated files
 
+test prerequirements phase (optional):
+--------------------------------------
+
+In some cases individual tests for certain generator need additional
+prerequirements met.
+
+In such cases '<generator_name>/<test_name>-Prerequirements.cmake' file
+containing 'function(get_test_prerequirements found_var)' should be created.
+Function should return true if all prerequirements are met.
+
+If prerequirements are not met test will be skipped outputting
+'<test_name> - SKIPPED' string. Note that this doesn't fail the entire test
+group.
+
+TODO: skipped tests should provide expected error string so test should fail
+      if error string is not found in the output of run test (this would add
+      'EXPECTED FAIL' string on success and 'ERROR' on failure).
+
 CMake execution phase:
 ----------------------
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=74c32123440a8de96b25d038ec7ac447a78ee769
commit 74c32123440a8de96b25d038ec7ac447a78ee769
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Wed May 11 22:47:17 2016 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Wed May 11 23:05:33 2016 +0200

    fixup! CPack/Deb generation of DEBIAN/shlibs control file

diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 34fcebf..a923f29 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -354,9 +354,8 @@
 #
 #  .. note::
 #
-#    This variable has no effect unless CPACK_DEBIAN_PACKAGE_SHLIBDEPS is enabled.
-#    Also note that libraries are only considered if they have both library name
-#    and version set. This can be done by setting SOVERSION property with
+#    Libraries are only considered if they have both library name and version
+#    set. This can be done by setting SOVERSION property with
 #    :command:`set_target_properties` command.
 #
 #
@@ -523,6 +522,39 @@ function(cpack_deb_prepare_package_vars)
     endif()
   endif()
 
+  if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OR CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS)
+    # Generating binary list - Get type of all install files
+    cmake_policy(PUSH)
+      # Tell file(GLOB_RECURSE) not to follow directory symlinks
+      # even if the project does not set this policy to NEW.
+      cmake_policy(SET CMP0009 NEW)
+      file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false RELATIVE "${WDIR}" "${WDIR}/*")
+    cmake_policy(POP)
+
+    # get file info so that we can determine if file is executable or not
+    unset(CPACK_DEB_INSTALL_FILES)
+    foreach(FILE_ IN LISTS FILE_PATHS_)
+      execute_process(COMMAND file "./${FILE_}"
+        WORKING_DIRECTORY "${WDIR}"
+        OUTPUT_VARIABLE INSTALL_FILE_)
+      list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}")
+    endforeach()
+
+    # Only dynamically linked ELF files are included
+    # Extract only file name infront of ":"
+    foreach(_FILE ${CPACK_DEB_INSTALL_FILES})
+      if( ${_FILE} MATCHES "ELF.*dynamically linked")
+        string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
+        list(APPEND CPACK_DEB_BINARY_FILES "${CMAKE_MATCH_1}")
+        set(CONTAINS_EXECUTABLE_FILES_ TRUE)
+      endif()
+      if( ${_FILE} MATCHES "ELF.*shared object")
+        string(REGEX MATCH "(^.*):" _FILE_NAME ${_FILE})
+        list(APPEND CPACK_DEB_SHARED_OBJECT_FILES ${CMAKE_MATCH_1})
+      endif()
+    endforeach()
+  endif()
+
   if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
     # dpkg-shlibdeps is a Debian utility for generating dependency list
     find_program(SHLIBDEPS_EXECUTABLE dpkg-shlibdeps)
@@ -544,38 +576,6 @@ function(cpack_deb_prepare_package_vars)
         message("CPackDeb Debug: dpkg-shlibdeps version is <${SHLIBDEPS_EXECUTABLE_VERSION}>")
       endif()
 
-      # Generating binary list - Get type of all install files
-      cmake_policy(PUSH)
-        # Tell file(GLOB_RECURSE) not to follow directory symlinks
-        # even if the project does not set this policy to NEW.
-        cmake_policy(SET CMP0009 NEW)
-        file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false RELATIVE "${WDIR}" "${WDIR}/*")
-      cmake_policy(POP)
-
-      # get file info so that we can determine if file is executable or not
-      unset(CPACK_DEB_INSTALL_FILES)
-      foreach(FILE_ IN LISTS FILE_PATHS_)
-        execute_process(COMMAND file "./${FILE_}"
-          WORKING_DIRECTORY "${WDIR}"
-          OUTPUT_VARIABLE INSTALL_FILE_)
-        list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}")
-      endforeach()
-
-      # Only dynamically linked ELF files are included
-      # Extract only file name infront of ":"
-      foreach(_FILE ${CPACK_DEB_INSTALL_FILES})
-        if( ${_FILE} MATCHES "ELF.*dynamically linked")
-          string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
-          list(APPEND CPACK_DEB_BINARY_FILES "${CMAKE_MATCH_1}")
-          set(CONTAINS_EXECUTABLE_FILES_ TRUE)
-        endif()
-        if( ${_FILE} MATCHES "ELF.*shared object")
-          string(REGEX MATCH "(^.*):" _FILE_NAME ${_FILE})
-          list(APPEND CPACK_DEB_SHARED_OBJECT_FILES ${CMAKE_MATCH_1})
-          set(CONTAINS_EXECUTABLE_FILES_ TRUE)
-        endif()
-      endforeach()
-
       if(CONTAINS_EXECUTABLE_FILES_)
         message("CPackDeb: - Generating dependency list")
 

-----------------------------------------------------------------------

Summary of changes:
 Modules/CPackDeb.cmake                             |   70 ++++++++++----------
 Tests/RunCMake/CPack/CPackTestHelpers.cmake        |   14 ++++
 .../DEB/DEB_GENERATE_SHLIBS-Prerequirements.cmake  |    7 ++
 .../CPack/DEB/DEB_GENERATE_SHLIBS-specifics.cmake  |    5 --
 ..._GENERATE_SHLIBS_LDCONFIG-Prerequirements.cmake |    7 ++
 .../DEB_GENERATE_SHLIBS_LDCONFIG-specifics.cmake   |    6 --
 Tests/RunCMake/CPack/DEB/Helpers.cmake             |    4 ++
 Tests/RunCMake/CPack/DEB_GENERATE_SHLIBS.cmake     |    5 ++
 .../CPack/DEB_GENERATE_SHLIBS_LDCONFIG.cmake       |    6 ++
 Tests/RunCMake/CPack/README.txt                    |   22 ++++++
 10 files changed, 100 insertions(+), 46 deletions(-)
 create mode 100644 Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-Prerequirements.cmake
 delete mode 100644 Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS-specifics.cmake
 create mode 100644 Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-Prerequirements.cmake
 delete mode 100644 Tests/RunCMake/CPack/DEB/DEB_GENERATE_SHLIBS_LDCONFIG-specifics.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list