[Cmake-commits] CMake branch, next, updated. v3.3.0-rc4-1018-gc505d2d

Domen Vrankar domen.vrankar at gmail.com
Mon Jul 13 16:47:48 EDT 2015


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  c505d2d9e51d05c4f0437b4b3d9704a8f884e9c2 (commit)
       via  4ca9da63c2d62979335afef1a146bcc992cc35f1 (commit)
       via  81895aa46f06d1fea6c5a2a1faaa8dea935eb651 (commit)
       via  0946d154e7e742ee78320b2da7d00c720091f1a8 (commit)
       via  18263079dac8a044cb2cf1dfa288608be2839c29 (commit)
      from  e76d71542f056aedc2620747760ea1a6fad1dfad (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=c505d2d9e51d05c4f0437b4b3d9704a8f884e9c2
commit c505d2d9e51d05c4f0437b4b3d9704a8f884e9c2
Merge: e76d715 4ca9da6
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Mon Jul 13 16:47:47 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jul 13 16:47:47 2015 -0400

    Merge topic 'cpack-per-component-extra-controll-file' into next
    
    4ca9da63 CPack/DEB: component version of PACKAGE_CONTROL_EXTRA
    81895aa4 CTest/RunCMake/CPack/DEB: added verifyDebControl
    0946d154 CTest/RunCMake/CPack: found files should be preserved
    18263079 CPackDeb: mark variables with COMPONENT version in docs


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ca9da63c2d62979335afef1a146bcc992cc35f1
commit 4ca9da63c2d62979335afef1a146bcc992cc35f1
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Mon Jul 13 22:25:44 2015 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Mon Jul 13 22:45:53 2015 +0200

    CPack/DEB: component version of PACKAGE_CONTROL_EXTRA
    
    Component version of CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
    variable.

diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 6799c12..825d5b7 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -297,7 +297,7 @@
 #  Typical usage is for conffiles, postinst, postrm, prerm.
 #
 #  * Mandatory : NO
-#  * Component : NO
+#  * Component : YES
 #  * Default   : -
 #
 #  Usage::
@@ -518,7 +518,6 @@ function(cpack_deb_prepare_package_vars)
   # if per-component dependency, overrides the global CPACK_DEBIAN_PACKAGE_DEPENDS
   # automatic dependency discovery will be performed afterwards.
   if(CPACK_DEB_PACKAGE_COMPONENT)
-    string(TOUPPER "${CPACK_DEB_PACKAGE_COMPONENT}" _local_component_name)
     set(_component_depends_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_DEPENDS")
 
     # if set, overrides the global dependency
@@ -562,7 +561,6 @@ function(cpack_deb_prepare_package_vars)
       set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
     endif()
   else()
-    string(TOUPPER ${CPACK_DEB_PACKAGE_COMPONENT} _local_component_name)
     set(component_description_var CPACK_COMPONENT_${_local_component_name}_DESCRIPTION)
 
     # component description overrides package description
@@ -604,13 +602,20 @@ function(cpack_deb_prepare_package_vars)
   # - conffiles
   # - postinst
   # - postrm
-  # - prerm"
+  # - prerm
   # Usage:
   # set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
   #    "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
 
   # Are we packaging components ?
   if(CPACK_DEB_PACKAGE_COMPONENT)
+    # override values with per component version if set
+    foreach(VAR_NAME_ "PACKAGE_CONTROL_EXTRA")
+      if(CPACK_DEBIAN_${_local_component_name}_${VAR_NAME_})
+        set(CPACK_DEBIAN_${VAR_NAME_} "${CPACK_DEBIAN_${_local_component_name}_${VAR_NAME_}}")
+      endif()
+    endforeach()
+
     set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME "-${CPACK_DEB_PACKAGE_COMPONENT}")
     string(TOLOWER "${CPACK_PACKAGE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_NAME}" CPACK_DEBIAN_PACKAGE_NAME)
   else()
diff --git a/Tests/RunCMake/CPack/DEB/DEB_EXTRA-ExpectedFiles.cmake b/Tests/RunCMake/CPack/DEB/DEB_EXTRA-ExpectedFiles.cmake
new file mode 100644
index 0000000..2ff679a
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/DEB_EXTRA-ExpectedFiles.cmake
@@ -0,0 +1,9 @@
+set(whitespaces_ "[\t\n\r ]*")
+
+set(EXPECTED_FILES_COUNT "3")
+set(EXPECTED_FILE_1 "deb_extra-*-foo.deb")
+set(EXPECTED_FILE_CONTENT_1 "^.*/usr/${whitespaces_}.*/usr/foo/${whitespaces_}.*/usr/foo/CMakeLists.txt$")
+set(EXPECTED_FILE_2 "deb_extra-*-bar.deb")
+set(EXPECTED_FILE_CONTENT_2 "^.*/usr/${whitespaces_}.*/usr/bar/${whitespaces_}.*/usr/bar/CMakeLists.txt$")
+set(EXPECTED_FILE_3 "deb_extra-*-bas.deb")
+set(EXPECTED_FILE_CONTENT_3 "^.*/usr/${whitespaces_}.*/usr/bas/${whitespaces_}.*/usr/bas/CMakeLists.txt$")
diff --git a/Tests/RunCMake/CPack/DEB/DEB_EXTRA-VerifyResult.cmake b/Tests/RunCMake/CPack/DEB/DEB_EXTRA-VerifyResult.cmake
new file mode 100644
index 0000000..78b6114
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/DEB_EXTRA-VerifyResult.cmake
@@ -0,0 +1,11 @@
+set(foo_preinst "^echo default_preinst$")
+set(foo_prerm "^echo default_prerm$")
+verifyDebControl("${FOUND_FILE_1}" "foo" "preinst;prerm")
+
+set(bar_preinst "^echo bar_preinst$")
+set(bar_prerm "^echo bar_prerm$")
+verifyDebControl("${FOUND_FILE_2}" "bar" "preinst;prerm")
+
+set(bas_preinst "^echo default_preinst$")
+set(bas_prerm "^echo default_prerm$")
+verifyDebControl("${FOUND_FILE_3}" "bas" "preinst;prerm")
diff --git a/Tests/RunCMake/CPack/DEB_EXTRA.cmake b/Tests/RunCMake/CPack/DEB_EXTRA.cmake
new file mode 100644
index 0000000..46d848d
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB_EXTRA.cmake
@@ -0,0 +1,20 @@
+install(FILES CMakeLists.txt DESTINATION foo COMPONENT foo)
+install(FILES CMakeLists.txt DESTINATION bar COMPONENT bar)
+install(FILES CMakeLists.txt DESTINATION bas COMPONENT bas)
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/preinst "echo default_preinst")
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/prerm "echo default_prerm")
+
+set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
+    "${CMAKE_CURRENT_BINARY_DIR}/preinst;${CMAKE_CURRENT_BINARY_DIR}/prerm")
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar/preinst "echo bar_preinst")
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar/prerm "echo bar_prerm")
+
+set(CPACK_DEBIAN_BAR_PACKAGE_CONTROL_EXTRA
+    "${CMAKE_CURRENT_BINARY_DIR}/bar/preinst;${CMAKE_CURRENT_BINARY_DIR}/bar/prerm")
+
+set(CPACK_PACKAGE_NAME "deb_extra")
+set(CPACK_PACKAGE_CONTACT "someone")
+
+set(CPACK_DEB_COMPONENT_INSTALL ON)
diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake
index 308b8cc..97ef238 100644
--- a/Tests/RunCMake/CPack/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake
@@ -6,3 +6,4 @@ include("${RunCMake_SOURCE_DIR}/CPackTestHelpers.cmake")
 # args: TEST_NAME "GENERATORS" RUN_CMAKE_BUILD_STEP
 run_cpack_test(MINIMAL "RPM;DEB" false)
 run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false)
+run_cpack_test(DEB_EXTRA "DEB" false)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=81895aa46f06d1fea6c5a2a1faaa8dea935eb651
commit 81895aa46f06d1fea6c5a2a1faaa8dea935eb651
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Mon Jul 13 22:23:22 2015 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Mon Jul 13 22:45:53 2015 +0200

    CTest/RunCMake/CPack/DEB: added verifyDebControl
    
    Added verifyDebControl helper function for checking
    of package control files such as preinstall scripts.

diff --git a/Tests/RunCMake/CPack/DEB/Helpers.cmake b/Tests/RunCMake/CPack/DEB/Helpers.cmake
index 4ed3fbd..45c85c3 100644
--- a/Tests/RunCMake/CPack/DEB/Helpers.cmake
+++ b/Tests/RunCMake/CPack/DEB/Helpers.cmake
@@ -8,3 +8,21 @@ function(getPackageContent FILE RESULT_VAR)
 
   set(${RESULT_VAR} "${package_content_}" PARENT_SCOPE)
 endfunction()
+
+function(verifyDebControl FILE PREFIX VERIFY_FILES)
+  execute_process(COMMAND ${DPKG_EXECUTABLE} --control ${FILE} control_${PREFIX}
+          ERROR_VARIABLE err_)
+
+  if(err_)
+    message(FATAL_ERROR "Debian controll verification failed for file: "
+        "'${FILE}'; error output: '${err_}'")
+  endif()
+
+  foreach(FILE_ IN LISTS VERIFY_FILES)
+    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_}'!"
+          " Content: '${content_}'")
+    endif()
+  endforeach()
+endfunction()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0946d154e7e742ee78320b2da7d00c720091f1a8
commit 0946d154e7e742ee78320b2da7d00c720091f1a8
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Mon Jul 13 22:21:34 2015 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Mon Jul 13 22:45:53 2015 +0200

    CTest/RunCMake/CPack: found files should be preserved
    
    Package file names that are found during validation
    should be preserved in FOUND_FILE_${NO} variables
    that can be later used in custom VerifyResult scripts.

diff --git a/Tests/RunCMake/CPack/VerifyResult.cmake b/Tests/RunCMake/CPack/VerifyResult.cmake
index 809011b..e059d9c 100644
--- a/Tests/RunCMake/CPack/VerifyResult.cmake
+++ b/Tests/RunCMake/CPack/VerifyResult.cmake
@@ -15,13 +15,13 @@ include("${src_dir}/${GENERATOR_TYPE}/${RunCMake_TEST}-ExpectedFiles.cmake")
 
 if(NOT EXPECTED_FILES_COUNT EQUAL 0)
   foreach(file_no_ RANGE 1 ${EXPECTED_FILES_COUNT})
-    file(GLOB foundFile_ RELATIVE "${bin_dir}" "${EXPECTED_FILE_${file_no_}}")
-    set(foundFiles_ "${foundFiles_};${foundFile_}")
-    list(LENGTH foundFile_ foundFilesCount_)
+    file(GLOB FOUND_FILE_${file_no_} RELATIVE "${bin_dir}" "${EXPECTED_FILE_${file_no_}}")
+    set(foundFiles_ "${foundFiles_};${FOUND_FILE_${file_no_}}")
+    list(LENGTH FOUND_FILE_${file_no_} foundFilesCount_)
 
     if(foundFilesCount_ EQUAL 1)
       unset(PACKAGE_CONTENT)
-      getPackageContent("${bin_dir}/${foundFile_}" "PACKAGE_CONTENT")
+      getPackageContent("${bin_dir}/${FOUND_FILE_${file_no_}}" "PACKAGE_CONTENT")
 
       string(REGEX MATCH "${EXPECTED_FILE_CONTENT_${file_no_}}"
           expected_content_list "${PACKAGE_CONTENT}")
@@ -36,7 +36,7 @@ if(NOT EXPECTED_FILES_COUNT EQUAL 0)
       message(FATAL_ERROR
         "Found more than one file for file No. '${file_no_}'!"
         " Found files count '${foundFilesCount_}'."
-        " Files: '${foundFile_}'"
+        " Files: '${FOUND_FILE_${file_no_}}'"
         "${output_error_message}")
     endif()
   endforeach()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=18263079dac8a044cb2cf1dfa288608be2839c29
commit 18263079dac8a044cb2cf1dfa288608be2839c29
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Mon Jul 13 20:43:17 2015 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Mon Jul 13 22:45:42 2015 +0200

    CPackDeb: mark variables with COMPONENT version in docs
    
    Each variable is now either marked with Component : YES
    or Component : NO in documentation depending if it has
    per component version or not.

diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 09cddcd..6799c12 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -18,9 +18,11 @@
 # :code:`CPACK_DEBIAN_XXX` variables.
 #
 # :code:`CPACK_DEBIAN_<COMPONENT>_XXXX` variables may be used in order to have
-# **component** specific values.  Note however that <COMPONENT> refers to the
+# **component** specific values. Note however that <COMPONENT> refers to the
 # **grouping name** written in upper case. It may be either a component name or
-# a component GROUP name.
+# a component GROUP name. Variables that have <COMPONENT> version are marked
+# with :code:`Component : YES` and by default non component version value is
+# used as fallback if component version of the variable is not set.
 #
 # You'll find a detailed usage on the wiki:
 # http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29 .
@@ -31,6 +33,7 @@
 #  The Debian package summary
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : :variable:`CPACK_PACKAGE_NAME` (lower case)
 #
 #
@@ -39,6 +42,7 @@
 #  The Debian package version
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : :variable:`CPACK_PACKAGE_VERSION`
 #
 #
@@ -47,16 +51,17 @@
 #  The Debian package architecture
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : Output of :code:`dpkg --print-architecture` (or :code:`i386`
 #    if :code:`dpkg` is not found)
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_DEPENDS
-#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS
 #
 #  Sets the Debian dependencies of this package.
 #
 #  * Mandatory : NO
+#  * Component : YES
 #  * Default   :
 #
 #    - An empty string for non-component based installations
@@ -83,15 +88,16 @@
 #  The Debian package maintainer
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : :code:`CPACK_PACKAGE_CONTACT`
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_DESCRIPTION
-#               CPACK_COMPONENT_<COMPONENT>_DESCRIPTION
 #
 #  The Debian package description
 #
 #  * Mandatory : YES
+#  * Component : YES
 #  * Default   :
 #
 #    - :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` if set or
@@ -101,6 +107,7 @@
 # .. variable:: CPACK_DEBIAN_PACKAGE_SECTION
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : 'devel'
 #
 # .. variable:: CPACK_DEBIAN_COMPRESSION_TYPE
@@ -109,6 +116,7 @@
 #  Possible values are: lzma, xz, bzip2 and gzip.
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : 'gzip'
 #
 #
@@ -117,6 +125,7 @@
 #  The Debian package priority
 #
 #  * Mandatory : YES
+#  * Component : NO
 #  * Default   : 'optional'
 #
 #
@@ -127,6 +136,7 @@
 #  upstream documentation or information may be found.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  .. note::
@@ -136,12 +146,12 @@
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_SHLIBDEPS
-#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS
 #
 #  May be set to ON in order to use :code:`dpkg-shlibdeps` to generate
 #  better package dependency list.
 #
 #  * Mandatory : NO
+#  * Component : YES
 #  * Default   :
 #
 #    - :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` if set or
@@ -161,6 +171,7 @@
 #  during CPackDeb run.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_PREDEPENDS
@@ -172,6 +183,7 @@
 #  pre-dependency.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
@@ -184,6 +196,7 @@
 #  functionality of another package.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
@@ -199,6 +212,7 @@
 #  packages (B) cannot be reconfigured again.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks
@@ -212,6 +226,7 @@
 #  the same time.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
@@ -231,6 +246,7 @@
 #  another package.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual
@@ -243,6 +259,7 @@
 #  files in certain other packages, or completely replace other packages.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
@@ -255,6 +272,7 @@
 #  packages.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
@@ -266,6 +284,7 @@
 #  Allows packages to declare a suggested package install grouping.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
@@ -278,6 +297,7 @@
 #  Typical usage is for conffiles, postinst, postrm, prerm.
 #
 #  * Mandatory : NO
+#  * Component : NO
 #  * Default   : -
 #
 #  Usage::

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

Summary of changes:
 Modules/CPackDeb.cmake                             |   41 ++++++++++++++++----
 .../CPack/DEB/DEB_EXTRA-ExpectedFiles.cmake        |    9 +++++
 .../CPack/DEB/DEB_EXTRA-VerifyResult.cmake         |   11 ++++++
 Tests/RunCMake/CPack/DEB/Helpers.cmake             |   18 +++++++++
 Tests/RunCMake/CPack/DEB_EXTRA.cmake               |   20 ++++++++++
 Tests/RunCMake/CPack/RunCMakeTest.cmake            |    1 +
 Tests/RunCMake/CPack/VerifyResult.cmake            |   10 ++---
 7 files changed, 97 insertions(+), 13 deletions(-)
 create mode 100644 Tests/RunCMake/CPack/DEB/DEB_EXTRA-ExpectedFiles.cmake
 create mode 100644 Tests/RunCMake/CPack/DEB/DEB_EXTRA-VerifyResult.cmake
 create mode 100644 Tests/RunCMake/CPack/DEB_EXTRA.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list