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  f1b98931036d13e03c960fd1616699948821e67a (commit)
       via  4de7c8126b43d93f781afaf0b990cc8814105017 (commit)
      from  09ffe6116bd70d779e69b539e555d2baf5475910 (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=f1b98931036d13e03c960fd1616699948821e67a
commit f1b98931036d13e03c960fd1616699948821e67a
Merge: 09ffe61 4de7c81
Author:     Domen Vrankar <domen.vran...@gmail.com>
AuthorDate: Wed Sep 9 17:58:43 2015 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Wed Sep 9 17:58:43 2015 -0400

    Merge topic 'cpack-deb-component-dependencies' into next
    
    4de7c812 CPack/Deb: enable per component setting of dependencies


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4de7c8126b43d93f781afaf0b990cc8814105017
commit 4de7c8126b43d93f781afaf0b990cc8814105017
Author:     Domen Vrankar <domen.vran...@gmail.com>
AuthorDate: Wed Sep 9 23:57:58 2015 +0200
Commit:     Domen Vrankar <domen.vran...@gmail.com>
CommitDate: Wed Sep 9 23:57:58 2015 +0200

    CPack/Deb: enable per component setting of dependencies

diff --git a/Help/release/dev/cpack-deb-component-dependencies.rst 
b/Help/release/dev/cpack-deb-component-dependencies.rst
new file mode 100644
index 0000000..2714222
--- /dev/null
+++ b/Help/release/dev/cpack-deb-component-dependencies.rst
@@ -0,0 +1,12 @@
+cpack-deb-component-dependencies
+--------------------------------
+
+* The :module:`CPackDeb` module learned to set package dependencies
+  per component. See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS`,
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES`,
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`,
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS`,
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES`,
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES`,
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS` and
+  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS`.
diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 75e9966..6c94d8e 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -78,6 +78,7 @@
 #
 #    set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
 #
+#
 # .. variable:: CPACK_DEBIAN_PACKAGE_MAINTAINER
 #
 #  The Debian package maintainer
@@ -164,6 +165,7 @@
 #  * Default   : -
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_PREDEPENDS
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS
 #
 #  Sets the `Pre-Depends` field of the Debian package.
 #  Like :variable:`Depends <CPACK_DEBIAN_PACKAGE_DEPENDS>`, except that it
@@ -172,11 +174,16 @@
 #  pre-dependency.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_PREDEPENDS` for component-based
+#      installations.
 #
 #  See 
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_ENHANCES
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES
 #
 #  Sets the `Enhances` field of the Debian package.
 #  Similar to :variable:`Suggests <CPACK_DEBIAN_PACKAGE_SUGGESTS>` but works
@@ -184,11 +191,16 @@
 #  functionality of another package.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_ENHANCES` for component-based
+#      installations.
 #
 #  See 
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_BREAKS
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS
 #
 #  Sets the `Breaks` field of the Debian package.
 #  When a binary package (P) declares that it breaks other packages (B),
@@ -199,12 +211,17 @@
 #  packages (B) cannot be reconfigured again.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_BREAKS` for component-based
+#      installations.
 #
 #  See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_CONFLICTS
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS
 #
 #  Sets the `Conflicts` field of the Debian package.
 #  When one binary package declares a conflict with another using a `Conflicts`
@@ -212,7 +229,11 @@
 #  the same time.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_CONFLICTS` for component-based
+#      installations.
 #
 #  See 
https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
 #
@@ -225,48 +246,68 @@
 #    time.
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_PROVIDES
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES
 #
 #  Sets the `Provides` field of the Debian package.
 #  A virtual package is one which appears in the `Provides` control field of
 #  another package.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_PROVIDES` for component-based
+#      installations.
 #
 #  See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_REPLACES
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES
 #
 #  Sets the `Replaces` field of the Debian package.
 #  Packages can declare in their control file that they should overwrite
 #  files in certain other packages, or completely replace other packages.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_REPLACES` for component-based
+#      installations.
 #
 #  See 
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_RECOMMENDS
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS
 #
 #  Sets the `Recommends` field of the Debian package.
 #  Allows packages to declare a strong, but not absolute, dependency on other
 #  packages.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_RECOMMENDS` for component-based
+#      installations.
 #
 #  See 
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
 #
 #
 # .. variable:: CPACK_DEBIAN_PACKAGE_SUGGESTS
+#               CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS
 #
 #  Sets the `Suggests` field of the Debian package.
 #  Allows packages to declare a suggested package install grouping.
 #
 #  * Mandatory : NO
-#  * Default   : -
+#  * Default   :
+#
+#    - An empty string for non-component based installations
+#    - :variable:`CPACK_DEBIAN_PACKAGE_SUGGESTS` for component-based
+#      installations.
 #
 #  See 
http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
 #
@@ -496,18 +537,21 @@ function(cpack_deb_prepare_package_vars)
   # You should set: DEBIAN_PACKAGE_DEPENDS
   # TODO: automate 'objdump -p | grep NEEDED'
 
-  # if per-component dependency, overrides the global 
CPACK_DEBIAN_PACKAGE_DEPENDS
+  # if per-component dependency, overrides the global 
CPACK_DEBIAN_PACKAGE_${dependency_type_}
   # automatic dependency discovery will be performed afterwards.
   if(CPACK_DEB_PACKAGE_COMPONENT)
-    set(_component_depends_var 
"CPACK_DEBIAN_${_local_component_name}_PACKAGE_DEPENDS")
+    foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES 
BREAKS CONFLICTS PROVIDES REPLACES)
+      set(_component_var 
"CPACK_DEBIAN_${_local_component_name}_PACKAGE_${dependency_type_}")
 
-    # if set, overrides the global dependency
-    if(DEFINED ${_component_depends_var})
-      set(CPACK_DEBIAN_PACKAGE_DEPENDS "${${_component_depends_var}}")
-      if(CPACK_DEBIAN_PACKAGE_DEBUG)
-        message("CPackDeb Debug: component '${_local_component_name}' 
dependencies set to '${CPACK_DEBIAN_PACKAGE_DEPENDS}'")
+      # if set, overrides the global dependency
+      if(DEFINED ${_component_var})
+        set(CPACK_DEBIAN_PACKAGE_${dependency_type_} "${${_component_var}}")
+        if(CPACK_DEBIAN_PACKAGE_DEBUG)
+          message("CPackDeb Debug: component '${_local_component_name}' 
${dependency_type_}"
+            "dependencies set to '${CPACK_DEBIAN_PACKAGE_${dependency_}}'")
+        endif()
       endif()
-    endif()
+    endforeach()
   endif()
 
   # at this point, the CPACK_DEBIAN_PACKAGE_DEPENDS is properly set
diff --git a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake 
b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake
index 44c862d..ba39f2e 100644
--- a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake
+++ b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-VerifyResult.cmake
@@ -1,4 +1,4 @@
-function(checkDepends_ FILE REGEX)
+function(checkDependencies_ FILE REGEX)
   set(whitespaces_ "[\t\n\r ]*")
 
   getPackageInfo("${FILE}" "FILE_INFO_")
@@ -7,9 +7,28 @@ function(checkDepends_ FILE REGEX)
   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.*")
+foreach(dependency_type_ DEPENDS CONFLICTS ENHANCES BREAKS REPLACES RECOMMENDS 
SUGGESTS)
+  string(TOLOWER "${dependency_type_}" lower_dependency_type_)
+  string(SUBSTRING ${lower_dependency_type_} 1 -1 lower_dependency_type_tail_)
+  string(SUBSTRING ${dependency_type_} 0 1 dependency_type_head_)
+  set(dependency_type_name_ 
"${dependency_type_head_}${lower_dependency_type_tail_}")
+
+  checkDependencies_("${FOUND_FILE_1}" 
".*${dependency_type_name_}${whitespaces_}:${whitespaces_}${lower_dependency_type_}-application,
 ${lower_dependency_type_}-application-b.*")
+  checkDependencies_("${FOUND_FILE_2}" 
".*${dependency_type_name_}${whitespaces_}:${whitespaces_}.*${lower_dependency_type_}-application,
 ${lower_dependency_type_}-application-b.*")
+  checkDependencies_("${FOUND_FILE_3}" 
".*${dependency_type_name_}${whitespaces_}:${whitespaces_}${lower_dependency_type_}-headers.*")
+  checkDependencies_("${FOUND_FILE_4}" 
".*${dependency_type_name_}${whitespaces_}:${whitespaces_}${lower_dependency_type_}-default,
 ${lower_dependency_type_}-default-b.*")
+  checkDependencies_("${FOUND_FILE_5}" 
".*${dependency_type_name_}${whitespaces_}:${whitespaces_}${lower_dependency_type_}-default,
 ${lower_dependency_type_}-default-b.*")
+endforeach()
+
+checkDependencies_("${FOUND_FILE_1}" 
".*Provides${whitespaces_}:${whitespaces_}provided-default, provided-default-b")
+checkDependencies_("${FOUND_FILE_2}" 
".*Provides${whitespaces_}:${whitespaces_}provided-default, provided-default-b")
+checkDependencies_("${FOUND_FILE_3}" 
".*Provides${whitespaces_}:${whitespaces_}provided-default, provided-default-b")
+checkDependencies_("${FOUND_FILE_4}" 
".*Provides${whitespaces_}:${whitespaces_}provided-lib.*")
+checkDependencies_("${FOUND_FILE_5}" 
".*Provides${whitespaces_}:${whitespaces_}provided-lib_auto.*, 
provided-lib_auto-b.*")
+
+# PREDEPENDS
+checkDependencies_("${FOUND_FILE_1}" 
".*Pre-Depends${whitespaces_}:${whitespaces_}predepends-application, 
predepends-application-b.*")
+checkDependencies_("${FOUND_FILE_2}" 
".*Pre-Depends${whitespaces_}:${whitespaces_}.*predepends-application, 
predepends-application-b.*")
+checkDependencies_("${FOUND_FILE_3}" 
".*Pre-Depends${whitespaces_}:${whitespaces_}predepends-headers.*")
+checkDependencies_("${FOUND_FILE_4}" 
".*Pre-Depends${whitespaces_}:${whitespaces_}predepends-default, 
predepends-default-b.*")
+checkDependencies_("${FOUND_FILE_5}" 
".*Pre-Depends${whitespaces_}:${whitespaces_}predepends-default, 
predepends-default-b.*")
diff --git a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake 
b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake
index 9e09428..96a9f14 100644
--- a/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake
+++ b/Tests/RunCMake/CPack/DEB/DEPENDENCIES-specifics.cmake
@@ -7,9 +7,15 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS FALSE)
 # 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")
+foreach(dependency_type_ DEPENDS CONFLICTS PREDEPENDS ENHANCES BREAKS REPLACES 
RECOMMENDS SUGGESTS)
+  string(TOLOWER "${dependency_type_}" lower_dependency_type_)
 
-# TODO add other dependency tests once CPackDeb supports them
+  set(CPACK_DEBIAN_PACKAGE_${dependency_type_} 
"${lower_dependency_type_}-default, ${lower_dependency_type_}-default-b")
+  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_PROVIDES "provided-default, provided-default-b")
+set(CPACK_DEBIAN_LIBS_PACKAGE_PROVIDES "provided-lib")
+set(CPACK_DEBIAN_LIBS_AUTO_PACKAGE_PROVIDES "provided-lib_auto, 
provided-lib_auto-b")

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

Summary of changes:
 .../dev/cpack-deb-component-dependencies.rst       |   12 ++++
 Modules/CPackDeb.cmake                             |   76 +++++++++++++++-----
 .../CPack/DEB/DEPENDENCIES-VerifyResult.cmake      |   33 +++++++--
 .../CPack/DEB/DEPENDENCIES-specifics.cmake         |   16 +++--
 4 files changed, 109 insertions(+), 28 deletions(-)
 create mode 100644 Help/release/dev/cpack-deb-component-dependencies.rst


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to