[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