From kwrobot at kitware.com Sun Nov 1 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 1 Nov 2015 00:01:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-464-g3db46ec Message-ID: <20151101040108.5394EC1FC5@public.kitware.com> 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, master has been updated via 3db46ec57d9f85f5f2b3d2b5d963856b876a5a13 (commit) from b7fdc8cc39cda665b921147bf729fca921207edf (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=3db46ec57d9f85f5f2b3d2b5d963856b876a5a13 commit 3db46ec57d9f85f5f2b3d2b5d963856b876a5a13 Author: Kitware Robot AuthorDate: Sun Nov 1 00:01:05 2015 -0400 Commit: Kitware Robot CommitDate: Sun Nov 1 00:01:05 2015 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 5b14fd5..2408149 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151031) +set(CMake_VERSION_PATCH 20151101) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Nov 2 00:01:13 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 2 Nov 2015 00:01:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-465-g96ac964 Message-ID: <20151102050113.F2AEBC22AD@public.kitware.com> 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, master has been updated via 96ac964d765108ea0bf2c37567efdf777a6047e4 (commit) from 3db46ec57d9f85f5f2b3d2b5d963856b876a5a13 (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=96ac964d765108ea0bf2c37567efdf777a6047e4 commit 96ac964d765108ea0bf2c37567efdf777a6047e4 Author: Kitware Robot AuthorDate: Mon Nov 2 00:01:11 2015 -0500 Commit: Kitware Robot CommitDate: Mon Nov 2 00:01:11 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 2408149..9f6bfbf 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151101) +set(CMake_VERSION_PATCH 20151102) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From clinton at elemtech.com Mon Nov 2 08:49:13 2015 From: clinton at elemtech.com (Clinton Stimpson) Date: Mon, 2 Nov 2015 08:49:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1203-g63966e1 Message-ID: <20151102134913.76FB6C1BA0@public.kitware.com> 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 63966e13c4b02f45a02b6a308b7d9bb70ca77efe (commit) via f8eb72fe5fedbf45e66f433e6bc54e1cf0359760 (commit) from acd292f497cb88d2212be5fe0752dadb05bc9c2a (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=63966e13c4b02f45a02b6a308b7d9bb70ca77efe commit 63966e13c4b02f45a02b6a308b7d9bb70ca77efe Merge: acd292f f8eb72f Author: Clinton Stimpson AuthorDate: Mon Nov 2 08:49:12 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 08:49:12 2015 -0500 Merge topic 'macosx_rpath-clarify-doc' into next f8eb72fe Help: Clarify documentation for MACOSX_RPATH variable. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f8eb72fe5fedbf45e66f433e6bc54e1cf0359760 commit f8eb72fe5fedbf45e66f433e6bc54e1cf0359760 Author: Clinton Stimpson AuthorDate: Mon Nov 2 06:46:02 2015 -0700 Commit: Clinton Stimpson CommitDate: Mon Nov 2 06:46:02 2015 -0700 Help: Clarify documentation for MACOSX_RPATH variable. diff --git a/Help/prop_tgt/MACOSX_RPATH.rst b/Help/prop_tgt/MACOSX_RPATH.rst index d3934ba..1c503d1 100644 --- a/Help/prop_tgt/MACOSX_RPATH.rst +++ b/Help/prop_tgt/MACOSX_RPATH.rst @@ -1,17 +1,22 @@ MACOSX_RPATH ------------ -Whether to use rpaths on Mac OS X. +Whether this target on Mac OS X is located at runtime using rpaths. When this property is set to true, the directory portion of -the "install_name" field of shared libraries will be ``@rpath`` -unless overridden by :prop_tgt:`INSTALL_NAME_DIR`. Runtime -paths will also be embedded in binaries using this target and -can be controlled by the :prop_tgt:`INSTALL_RPATH` target property. +the "install_name" field of this shared library will be ``@rpath`` +unless overridden by :prop_tgt:`INSTALL_NAME_DIR`. This indicates +the shared library is to be found at runtime using runtime +paths (rpaths). + This property is initialized by the value of the variable :variable:`CMAKE_MACOSX_RPATH` if it is set when a target is created. +Runtime paths will also be embedded in binaries using this target and +can be controlled by the :prop_tgt:`INSTALL_RPATH` target property on +the target linking to this target. + Policy CMP0042 was introduced to change the default value of MACOSX_RPATH to ON. This is because use of ``@rpath`` is a more flexible and powerful alternative to ``@executable_path`` and ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MACOSX_RPATH.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:09:48 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:09:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-467-gb7b3b67 Message-ID: <20151102140948.93653C01BC@public.kitware.com> 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, master has been updated via b7b3b675fdb3240d8157b51d28bfe9b135d89302 (commit) via 31e6571cca3267cf1f5e17df7c985521211885ef (commit) from 96ac964d765108ea0bf2c37567efdf777a6047e4 (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=b7b3b675fdb3240d8157b51d28bfe9b135d89302 commit b7b3b675fdb3240d8157b51d28bfe9b135d89302 Merge: 96ac964 31e6571 Author: Brad King AuthorDate: Mon Nov 2 09:09:46 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 09:09:46 2015 -0500 Merge topic 'fix-find_program-regression' 31e6571c find_program: Fix regression in finding an already-known path ----------------------------------------------------------------------- Summary of changes: Source/cmFindProgramCommand.cxx | 13 +++++++++++++ Tests/RunCMake/find_program/DirsPerName-stdout.txt | 1 + Tests/RunCMake/find_program/DirsPerName.cmake | 6 ++++++ Tests/RunCMake/find_program/NamesPerDir-stdout.txt | 1 + Tests/RunCMake/find_program/NamesPerDir.cmake | 6 ++++++ 5 files changed, 27 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:09:51 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:09:51 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-469-g06ed3eb Message-ID: <20151102140951.3CA28C044E@public.kitware.com> 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, master has been updated via 06ed3eb9e97e0b5e7f8f968518f0822f3bdda06d (commit) via 136104740663b3310616bec51b2cec7f807715ce (commit) from b7b3b675fdb3240d8157b51d28bfe9b135d89302 (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=06ed3eb9e97e0b5e7f8f968518f0822f3bdda06d commit 06ed3eb9e97e0b5e7f8f968518f0822f3bdda06d Merge: b7b3b67 1361047 Author: Brad King AuthorDate: Mon Nov 2 09:09:49 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 09:09:49 2015 -0500 Merge topic 'xcode-lastupgradecheck' 13610474 Xcode: Set LastUpgradeCheck to current Xcode version (#15817) ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalXCodeGenerator.cxx | 3 +++ 1 file changed, 3 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:09:53 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:09:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-471-g9d1c77c Message-ID: <20151102140953.E73E0C05F3@public.kitware.com> 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, master has been updated via 9d1c77cfdace4250438cd449304ea013f950cf61 (commit) via 9a7f042a955e814f66b8e468f934852ed53e0376 (commit) from 06ed3eb9e97e0b5e7f8f968518f0822f3bdda06d (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=9d1c77cfdace4250438cd449304ea013f950cf61 commit 9d1c77cfdace4250438cd449304ea013f950cf61 Merge: 06ed3eb 9a7f042 Author: Brad King AuthorDate: Mon Nov 2 09:09:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 09:09:52 2015 -0500 Merge topic 'doc-apple-info-plist-properties' 9a7f042a Help: Document target properties setting Info.plist fields (#15820) ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst | 40 ++++++++++++++----------- Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst | 26 ++++++++-------- 2 files changed, 37 insertions(+), 29 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:09:56 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:09:56 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-473-g2aaf702 Message-ID: <20151102140956.9348BC01BC@public.kitware.com> 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, master has been updated via 2aaf702dec9cd3d846643abffae0d4f1cb2f2702 (commit) via f8eb72fe5fedbf45e66f433e6bc54e1cf0359760 (commit) from 9d1c77cfdace4250438cd449304ea013f950cf61 (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=2aaf702dec9cd3d846643abffae0d4f1cb2f2702 commit 2aaf702dec9cd3d846643abffae0d4f1cb2f2702 Merge: 9d1c77c f8eb72f Author: Brad King AuthorDate: Mon Nov 2 09:09:55 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 09:09:55 2015 -0500 Merge topic 'macosx_rpath-clarify-doc' f8eb72fe Help: Clarify documentation for MACOSX_RPATH variable. ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MACOSX_RPATH.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:10:23 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:10:23 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1211-g7a9ebb1 Message-ID: <20151102141023.5BB17C09BD@public.kitware.com> 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 7a9ebb1c6c10cd31884e2c287d626506850bab4f (commit) via 2aaf702dec9cd3d846643abffae0d4f1cb2f2702 (commit) via 9d1c77cfdace4250438cd449304ea013f950cf61 (commit) via 06ed3eb9e97e0b5e7f8f968518f0822f3bdda06d (commit) via b7b3b675fdb3240d8157b51d28bfe9b135d89302 (commit) via 96ac964d765108ea0bf2c37567efdf777a6047e4 (commit) via 3db46ec57d9f85f5f2b3d2b5d963856b876a5a13 (commit) via b7fdc8cc39cda665b921147bf729fca921207edf (commit) from 63966e13c4b02f45a02b6a308b7d9bb70ca77efe (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=7a9ebb1c6c10cd31884e2c287d626506850bab4f commit 7a9ebb1c6c10cd31884e2c287d626506850bab4f Merge: 63966e1 2aaf702 Author: Brad King AuthorDate: Mon Nov 2 09:10:06 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 09:10:06 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:11:28 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:11:28 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-476-g74ea668 Message-ID: <20151102141128.B9719C12A4@public.kitware.com> 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, master has been updated via 74ea66850c99578d7d1665e64579279a6ff89896 (commit) via 1dcaadc515e537c0f8f89eae23b613a0fa1bb82c (commit) via 1178b5366224eca862257fbb3473929e01b99346 (commit) from 2aaf702dec9cd3d846643abffae0d4f1cb2f2702 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:11:28 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:11:28 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1215-gcecfc27 Message-ID: <20151102141128.E12BFC12B9@public.kitware.com> 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 cecfc27b895d919f62026eb29d45e8e00ee52c8d (commit) via 74ea66850c99578d7d1665e64579279a6ff89896 (commit) via 1dcaadc515e537c0f8f89eae23b613a0fa1bb82c (commit) via 1178b5366224eca862257fbb3473929e01b99346 (commit) from 7a9ebb1c6c10cd31884e2c287d626506850bab4f (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=cecfc27b895d919f62026eb29d45e8e00ee52c8d commit cecfc27b895d919f62026eb29d45e8e00ee52c8d Merge: 7a9ebb1 74ea668 Author: Brad King AuthorDate: Mon Nov 2 09:11:18 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 09:11:18 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:11:29 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:11:29 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-rc2-16-g1dcaadc Message-ID: <20151102141129.067B8C12F3@public.kitware.com> 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, release has been updated via 1dcaadc515e537c0f8f89eae23b613a0fa1bb82c (commit) via 9a7f042a955e814f66b8e468f934852ed53e0376 (commit) via 1178b5366224eca862257fbb3473929e01b99346 (commit) via 31e6571cca3267cf1f5e17df7c985521211885ef (commit) from 1227ea38e5cd64e72f83e96705266c8307ed6ba0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst | 40 +++++++++++--------- Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst | 26 +++++++------ Source/cmFindProgramCommand.cxx | 13 +++++++ Tests/RunCMake/find_program/DirsPerName-stdout.txt | 1 + Tests/RunCMake/find_program/DirsPerName.cmake | 6 +++ Tests/RunCMake/find_program/NamesPerDir-stdout.txt | 1 + Tests/RunCMake/find_program/NamesPerDir.cmake | 6 +++ 7 files changed, 64 insertions(+), 29 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 09:13:34 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 09:13:34 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1218-gd09e66b Message-ID: <20151102141334.A3E46C17BA@public.kitware.com> 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 d09e66b35791aa4c54abf0d9e72ec4b3d2440efe (commit) via 3f3fd184b3d219f0ba69d7bcbd8f380f98e9fd2f (commit) via bc4b6aa68dd48ffd567ae7a24abd8911a689c38a (commit) from cecfc27b895d919f62026eb29d45e8e00ee52c8d (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=d09e66b35791aa4c54abf0d9e72ec4b3d2440efe commit d09e66b35791aa4c54abf0d9e72ec4b3d2440efe Merge: cecfc27 3f3fd18 Author: Brad King AuthorDate: Mon Nov 2 09:13:33 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 09:13:33 2015 -0500 Merge topic 'test-release' into next 3f3fd184 Merge branch 'release' into test-release bc4b6aa6 CMake 3.4.0-rc3 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3f3fd184b3d219f0ba69d7bcbd8f380f98e9fd2f commit 3f3fd184b3d219f0ba69d7bcbd8f380f98e9fd2f Merge: 74ea668 bc4b6aa Author: Brad King AuthorDate: Mon Nov 2 09:13:10 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 09:13:10 2015 -0500 Merge branch 'release' into test-release https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bc4b6aa68dd48ffd567ae7a24abd8911a689c38a commit bc4b6aa68dd48ffd567ae7a24abd8911a689c38a Author: Brad King AuthorDate: Mon Nov 2 09:12:44 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 09:12:44 2015 -0500 CMake 3.4.0-rc3 diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index fef0b2e..93a1928 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,4 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_RC 2) +set(CMake_VERSION_RC 3) ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 13:45:45 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 13:45:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1220-g5a6f29d Message-ID: <20151102184545.460CAC1651@public.kitware.com> 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 5a6f29d605b6357ee65154f78aa2d58952ff2a1a (commit) via 035a658f4fdc8028ff19568aa2ded8b3efa70909 (commit) from d09e66b35791aa4c54abf0d9e72ec4b3d2440efe (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=5a6f29d605b6357ee65154f78aa2d58952ff2a1a commit 5a6f29d605b6357ee65154f78aa2d58952ff2a1a Merge: d09e66b 035a658 Author: Brad King AuthorDate: Mon Nov 2 13:45:44 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 13:45:44 2015 -0500 Merge topic 'add-armcc-toolchain' into next 035a658f Add support for the ARM Compiler (arm.com) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=035a658f4fdc8028ff19568aa2ded8b3efa70909 commit 035a658f4fdc8028ff19568aa2ded8b3efa70909 Author: Joakim Andersson AuthorDate: Mon Oct 26 14:51:09 2015 +0100 Commit: Brad King CommitDate: Mon Nov 2 13:45:24 2015 -0500 Add support for the ARM Compiler (arm.com) Create an `ARMCC` compiler id corresponding to compilers identified and versioned by the `__ARMCC_VERSION` predefined macro. See documentation for the compilers at http://infocenter.arm.com/help/topic/com.arm.doc.set.swdev/index.html diff --git a/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ID.rst index 1c3b134..81976a9 100644 --- a/Help/variable/CMAKE_LANG_COMPILER_ID.rst +++ b/Help/variable/CMAKE_LANG_COMPILER_ID.rst @@ -11,6 +11,7 @@ include: Absoft = Absoft Fortran (absoft.com) ADSP = Analog VisualDSP++ (analog.com) AppleClang = Apple Clang (apple.com) + ARMCC = ARM Compiler (arm.com) CCur = Concurrent Fortran (ccur.com) Clang = LLVM Clang (clang.llvm.org) Cray = Cray Compiler (cray.com) diff --git a/Modules/CMakeCompilerIdDetection.cmake b/Modules/CMakeCompilerIdDetection.cmake index 19bcbcc..cbc0055 100644 --- a/Modules/CMakeCompilerIdDetection.cmake +++ b/Modules/CMakeCompilerIdDetection.cmake @@ -89,6 +89,7 @@ function(compiler_id_detection outvar lang) MSVC ADSP IAR + ARMCC ) if (lang STREQUAL C) list(APPEND ordered_compilers diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake index 25af3e3..91111d2 100644 --- a/Modules/CMakeDetermineASMCompiler.cmake +++ b/Modules/CMakeDetermineASMCompiler.cmake @@ -92,6 +92,10 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID) set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_IAR ) set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_IAR "IAR Assembler") + list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ARMCC) + set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ARMCC ) + set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ARMCC "(ARM Compiler)|(ARM Assembler)") + include(CMakeDetermineCompilerId) CMAKE_DETERMINE_COMPILER_ID_VENDOR(ASM${ASM_DIALECT}) diff --git a/Modules/Compiler/ARMCC-ASM.cmake b/Modules/Compiler/ARMCC-ASM.cmake new file mode 100644 index 0000000..8e3cfc5 --- /dev/null +++ b/Modules/Compiler/ARMCC-ASM.cmake @@ -0,0 +1,7 @@ +include(Compiler/ARMCC) + +set(CMAKE_ASM_OUTPUT_EXTENSION ".o") +set(CMAKE_ASM_OUTPUT_EXTENSION_REPLACE 1) + +set(CMAKE_ASM_COMPILE_OBJECT " -o ") +set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa) diff --git a/Modules/Compiler/ARMCC-C.cmake b/Modules/Compiler/ARMCC-C.cmake new file mode 100644 index 0000000..dcdcaab --- /dev/null +++ b/Modules/Compiler/ARMCC-C.cmake @@ -0,0 +1,2 @@ +include(Compiler/ARMCC) +__compiler_armcc(C) diff --git a/Modules/Compiler/ARMCC-CXX.cmake b/Modules/Compiler/ARMCC-CXX.cmake new file mode 100644 index 0000000..811fc93 --- /dev/null +++ b/Modules/Compiler/ARMCC-CXX.cmake @@ -0,0 +1,2 @@ +include(Compiler/ARMCC) +__compiler_armcc(CXX) diff --git a/Modules/Compiler/ARMCC-DetermineCompiler.cmake b/Modules/Compiler/ARMCC-DetermineCompiler.cmake new file mode 100644 index 0000000..a3667d7 --- /dev/null +++ b/Modules/Compiler/ARMCC-DetermineCompiler.cmake @@ -0,0 +1,16 @@ +# ARMCC Toolchain +set(_compiler_id_pp_test "defined(__ARMCC_VERSION)") + +set(_compiler_id_version_compute " +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define @PREFIX at COMPILER_VERSION_MAJOR @MACRO_DEC@(__ARMCC_VERSION/1000000) + # define @PREFIX at COMPILER_VERSION_MINOR @MACRO_DEC@(__ARMCC_VERSION/10000 % 100) + # define @PREFIX at COMPILER_VERSION_PATCH @MACRO_DEC@(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define @PREFIX at COMPILER_VERSION_MAJOR @MACRO_DEC@(__ARMCC_VERSION/100000) + # define @PREFIX at COMPILER_VERSION_MINOR @MACRO_DEC@(__ARMCC_VERSION/10000 % 10) + # define @PREFIX at COMPILER_VERSION_PATCH @MACRO_DEC@(__ARMCC_VERSION % 10000) +#endif +") diff --git a/Modules/Compiler/ARMCC.cmake b/Modules/Compiler/ARMCC.cmake new file mode 100644 index 0000000..3cf628c --- /dev/null +++ b/Modules/Compiler/ARMCC.cmake @@ -0,0 +1,36 @@ +if(_ARMCC_CMAKE_LOADED) + return() +endif() +set(_ARMCC_CMAKE_LOADED TRUE) + +# See ARM Compiler documentation at: +# http://infocenter.arm.com/help/topic/com.arm.doc.set.swdev/index.html + +get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH) +get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH) + +set(CMAKE_EXECUTABLE_SUFFIX ".elf") + +find_program(CMAKE_ARMCC_LINKER armlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) +find_program(CMAKE_ARMCC_AR armar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) + +set(CMAKE_LINKER "${CMAKE_ARMCC_LINKER}" CACHE FILEPATH "The ARMCC linker" FORCE) +mark_as_advanced(CMAKE_ARMCC_LINKER) +set(CMAKE_AR "${CMAKE_ARMCC_AR}" CACHE FILEPATH "The ARMCC archiver" FORCE) +mark_as_advanced(CMAKE_ARMCC_AR) + +macro(__compiler_armcc lang) + set(CMAKE_${lang}_FLAGS_INIT "") + set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-g") + set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-Ospace -DNDEBUG") + set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-Otime -DNDEBUG") + set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + + set(CMAKE_${lang}_OUTPUT_EXTENSION ".o") + set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1) + + set(CMAKE_${lang}_LINK_EXECUTABLE " -o --list .map") + set(CMAKE_${lang}_CREATE_STATIC_LIBRARY " --create -cr ") + + set(CMAKE_DEPFILE_FLAGS_${lang} "--depend= --depend_single_line --no_depend_system_headers") +endmacro() ----------------------------------------------------------------------- Summary of changes: Help/variable/CMAKE_LANG_COMPILER_ID.rst | 1 + Modules/CMakeCompilerIdDetection.cmake | 1 + Modules/CMakeDetermineASMCompiler.cmake | 4 +++ Modules/Compiler/ARMCC-ASM.cmake | 7 +++++ Modules/Compiler/ARMCC-C.cmake | 2 ++ Modules/Compiler/ARMCC-CXX.cmake | 2 ++ Modules/Compiler/ARMCC-DetermineCompiler.cmake | 16 +++++++++++ Modules/Compiler/ARMCC.cmake | 36 ++++++++++++++++++++++++ 8 files changed, 69 insertions(+) create mode 100644 Modules/Compiler/ARMCC-ASM.cmake create mode 100644 Modules/Compiler/ARMCC-C.cmake create mode 100644 Modules/Compiler/ARMCC-CXX.cmake create mode 100644 Modules/Compiler/ARMCC-DetermineCompiler.cmake create mode 100644 Modules/Compiler/ARMCC.cmake hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 14:15:13 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 14:15:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1223-gabb6548 Message-ID: <20151102191513.E7D0FC1318@public.kitware.com> 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 abb6548710a19ffbcc7168229edc7828dd1d3326 (commit) via e10873cee168013e854488cd2bc7d1753f817539 (commit) via 43f302ff68cdf76521c0ab43468b6190e1e842f0 (commit) from 5a6f29d605b6357ee65154f78aa2d58952ff2a1a (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=abb6548710a19ffbcc7168229edc7828dd1d3326 commit abb6548710a19ffbcc7168229edc7828dd1d3326 Merge: 5a6f29d e10873c Author: Brad King AuthorDate: Mon Nov 2 14:15:13 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 14:15:13 2015 -0500 Merge topic 'vs-show-def-files' into next e10873ce VS: Add module definition `.def` files to .vcxproj files (#15313) 43f302ff Refactor `.def` file lookup https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e10873cee168013e854488cd2bc7d1753f817539 commit e10873cee168013e854488cd2bc7d1753f817539 Author: Tim Grothe AuthorDate: Mon Nov 2 15:24:25 2015 +0100 Commit: Brad King CommitDate: Mon Nov 2 14:13:34 2015 -0500 VS: Add module definition `.def` files to .vcxproj files (#15313) Make them appear in the IDE project tree for reference by developers. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 9e2dc65..6e1fb5b 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1613,6 +1613,12 @@ void cmVisualStudio10TargetGenerator::WriteAllSources() (*this->BuildFileStream ) << cmVS10EscapeXML(obj) << "\" />\n"; } + if (cmSourceFile const* defsrc = + this->GeneratorTarget->GetModuleDefinitionFile("")) + { + this->WriteSource("None", defsrc); + } + if (this->IsMissingFiles) { this->WriteMissingFiles(); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=43f302ff68cdf76521c0ab43468b6190e1e842f0 commit 43f302ff68cdf76521c0ab43468b6190e1e842f0 Author: Tim Grothe AuthorDate: Mon Nov 2 15:24:25 2015 +0100 Commit: Brad King CommitDate: Mon Nov 2 14:12:09 2015 -0500 Refactor `.def` file lookup Return a `cmSourceFile const*` from GetModuleDefinitionFile so that callers can get more information than just the path to the file. diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index bd47715..76ed038 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx @@ -81,7 +81,7 @@ void cmCommonTargetGenerator::AddFeatureFlags( //---------------------------------------------------------------------------- void cmCommonTargetGenerator::AddModuleDefinitionFlag(std::string& flags) { - if(this->ModuleDefinitionFile.empty()) + if(!this->ModuleDefinitionFile) { return; } @@ -98,7 +98,7 @@ void cmCommonTargetGenerator::AddModuleDefinitionFlag(std::string& flags) // vs6's "cl -link" pass it to the linker. std::string flag = defFileFlag; flag += (this->LocalGenerator->ConvertToLinkReference( - this->ModuleDefinitionFile)); + this->ModuleDefinitionFile->GetFullPath())); this->LocalGenerator->AppendFlags(flags, flag); } diff --git a/Source/cmCommonTargetGenerator.h b/Source/cmCommonTargetGenerator.h index 3fb1fd0..0c17500 100644 --- a/Source/cmCommonTargetGenerator.h +++ b/Source/cmCommonTargetGenerator.h @@ -54,7 +54,7 @@ protected: std::string ConfigName; // The windows module definition source file (.def), if any. - std::string ModuleDefinitionFile; + cmSourceFile const* ModuleDefinitionFile; // Target-wide Fortran module output directory. bool FortranModuleDirectoryComputed; diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 1f74eda..624ec9a 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2095,12 +2095,18 @@ cmGeneratorTarget::CompileInfo const* cmGeneratorTarget::GetCompileInfo( } //---------------------------------------------------------------------------- -std::string +cmSourceFile const* cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const { - std::string data; - IMPLEMENT_VISIT_IMPL(ModuleDefinitionFile, COMMA std::string) - return data; + std::vector data; + IMPLEMENT_VISIT_IMPL(ModuleDefinitionFile, + COMMA std::vector) + if(!data.empty()) + { + return data.front(); + } + + return 0; } bool cmGeneratorTarget::IsDLLPlatform() const diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index da59a98..bd23477 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -220,7 +220,7 @@ public: cmLocalGenerator* LocalGenerator; cmGlobalGenerator const* GlobalGenerator; - std::string GetModuleDefinitionFile(const std::string& config) const; + cmSourceFile const* GetModuleDefinitionFile(const std::string& config) const; /** Return whether or not the target is for a DLL platform. */ bool IsDLLPlatform() const; diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 7acccb3..eedc6ab 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1497,9 +1497,9 @@ void cmMakefileTargetGenerator this->AppendTargetDepends(depends); // Add a dependency on the link definitions file, if any. - if(!this->ModuleDefinitionFile.empty()) + if(this->ModuleDefinitionFile) { - depends.push_back(this->ModuleDefinitionFile); + depends.push_back(this->ModuleDefinitionFile->GetFullPath()); } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index dc2c7a6..5ff4fdb 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -195,9 +195,10 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const std::transform(deps.begin(), deps.end(), result.begin(), MapToNinjaPath()); // Add a dependency on the link definitions file, if any. - if(!this->ModuleDefinitionFile.empty()) + if(this->ModuleDefinitionFile) { - result.push_back(this->ConvertToNinjaPath(this->ModuleDefinitionFile)); + result.push_back(this->ConvertToNinjaPath( + this->ModuleDefinitionFile->GetFullPath())); } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7da00fa..9e2dc65 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2642,10 +2642,11 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config) if(this->MSTools) { - std::string def = this->GeneratorTarget->GetModuleDefinitionFile(""); - if(!def.empty()) + if (cmSourceFile const* defsrc = + this->GeneratorTarget->GetModuleDefinitionFile("")) { - linkOptions.AddFlag("ModuleDefinitionFile", def.c_str()); + linkOptions.AddFlag("ModuleDefinitionFile", + defsrc->GetFullPath().c_str()); } linkOptions.AppendFlag("IgnoreSpecificDefaultLibraries", "%(IgnoreSpecificDefaultLibraries)"); ----------------------------------------------------------------------- Summary of changes: Source/cmCommonTargetGenerator.cxx | 4 ++-- Source/cmCommonTargetGenerator.h | 2 +- Source/cmGeneratorTarget.cxx | 14 ++++++++++---- Source/cmGeneratorTarget.h | 2 +- Source/cmMakefileTargetGenerator.cxx | 4 ++-- Source/cmNinjaTargetGenerator.cxx | 5 +++-- Source/cmVisualStudio10TargetGenerator.cxx | 13 ++++++++++--- 7 files changed, 29 insertions(+), 15 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 14:26:27 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 14:26:27 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-478-g7748a02 Message-ID: <20151102192627.CAB30C209C@public.kitware.com> 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, master has been updated via 7748a02c3f7d028af13d4fc2c83e7181d11397e9 (commit) via bc4b6aa68dd48ffd567ae7a24abd8911a689c38a (commit) from 74ea66850c99578d7d1665e64579279a6ff89896 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 14:26:27 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 14:26:27 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1225-g8ff2521 Message-ID: <20151102192627.F1CB5C209F@public.kitware.com> 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 8ff25210e96af07cc722faa1813711785572ea45 (commit) via 7748a02c3f7d028af13d4fc2c83e7181d11397e9 (commit) from abb6548710a19ffbcc7168229edc7828dd1d3326 (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=8ff25210e96af07cc722faa1813711785572ea45 commit 8ff25210e96af07cc722faa1813711785572ea45 Merge: abb6548 7748a02 Author: Brad King AuthorDate: Mon Nov 2 14:26:14 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 14:26:14 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 14:26:28 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 14:26:28 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-rc2-17-gbc4b6aa Message-ID: <20151102192628.13259C20A0@public.kitware.com> 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, release has been updated via bc4b6aa68dd48ffd567ae7a24abd8911a689c38a (commit) from 1dcaadc515e537c0f8f89eae23b613a0fa1bb82c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 15:33:01 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 15:33:01 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1227-ge105df3 Message-ID: <20151102203301.897BDC244D@public.kitware.com> 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 e105df31069d07cd3aa3da3d1671e89456194c72 (commit) via ba819f49df33b546072a5928de3253770c4716b9 (commit) from 8ff25210e96af07cc722faa1813711785572ea45 (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=e105df31069d07cd3aa3da3d1671e89456194c72 commit e105df31069d07cd3aa3da3d1671e89456194c72 Merge: 8ff2521 ba819f4 Author: Brad King AuthorDate: Mon Nov 2 15:33:00 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 15:33:00 2015 -0500 Merge topic 'fortran-line-directives' into next ba819f49 cmFortranParser: Parse #line directives https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ba819f49df33b546072a5928de3253770c4716b9 commit ba819f49df33b546072a5928de3253770c4716b9 Author: Brad King AuthorDate: Mon Nov 2 15:29:52 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 15:29:52 2015 -0500 cmFortranParser: Parse #line directives Teach the lexer to extract the #line directive prefix and line number as a new token type. Teach the parser to recognize this token followed by a string as the file name (plus possibly other content). Report the named file as included by the source file. diff --git a/Source/cmFortranLexer.cxx b/Source/cmFortranLexer.cxx index b727f0e..bdb9f2a 100644 --- a/Source/cmFortranLexer.cxx +++ b/Source/cmFortranLexer.cxx @@ -1,6 +1,6 @@ /*============================================================================ CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + Copyright 2000-2015 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. @@ -20,7 +20,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 39 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -190,11 +190,17 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -212,11 +218,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -234,7 +235,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -313,7 +314,7 @@ static void cmFortran_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yys YY_BUFFER_STATE cmFortran_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE cmFortran_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); void *cmFortran_yyalloc (yy_size_t ,yyscan_t yyscanner ); void *cmFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -345,7 +346,7 @@ void cmFortran_yyfree (void * ,yyscan_t yyscanner ); /* Begin user sect3 */ -#define cmFortran_yywrap(n) 1 +#define cmFortran_yywrap(yyscanner) 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; @@ -369,8 +370,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 44 -#define YY_END_OF_BUFFER 45 +#define YY_NUM_RULES 45 +#define YY_END_OF_BUFFER 46 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -378,26 +379,27 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[165] = +static yyconst flex_int16_t yy_accept[173] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 39, 41, 40, 43, 1, 39, 32, 2, 34, - 39, 40, 37, 39, 38, 39, 38, 41, 39, 40, - 39, 38, 9, 8, 9, 4, 3, 39, 0, 10, - 0, 0, 0, 0, 0, 32, 32, 33, 35, 37, - 39, 38, 0, 42, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 11, 38, 0, 0, 5, - 0, 0, 0, 28, 0, 0, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, - 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 40, 42, 41, 44, 1, 40, 33, 2, 35, + 40, 41, 38, 40, 39, 40, 39, 42, 40, 41, + 40, 39, 9, 8, 9, 4, 3, 40, 0, 10, + 0, 0, 0, 0, 0, 33, 33, 34, 36, 38, + 40, 39, 0, 43, 39, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 40, 0, 11, 39, 0, + 0, 5, 0, 0, 0, 29, 0, 0, 33, 33, + 33, 33, 0, 0, 12, 12, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 30, 0, 0, 0, 0, 0, 0, - 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 31, 26, 0, 0, 19, 0, 0, 25, 20, - 0, 0, 18, 0, 0, 17, 27, 0, 0, 16, - 21, 0, 7, 36, 7, 14, 0, 13, 15, 0, - 0, 0, 12, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 27, + 0, 0, 20, 0, 0, 26, 21, 0, 0, 0, + 19, 0, 0, 18, 28, 0, 0, 17, 22, 0, + 7, 37, 7, 15, 0, 14, 16, 0, 0, 0, + 13, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -441,178 +443,186 @@ static yyconst flex_int32_t yy_meta[42] = 7 } ; -static yyconst flex_int16_t yy_base[174] = +static yyconst flex_int16_t yy_base[182] = { 0, - 0, 40, 0, 41, 188, 48, 44, 54, 56, 65, - 186, 0, 505, 505, 171, 505, 81, 74, 505, 505, - 158, 505, 151, 137, 0, 85, 122, 87, 153, 145, - 194, 226, 505, 143, 91, 505, 505, 0, 142, 505, - 266, 34, 70, 74, 34, 122, 141, 505, 0, 505, - 112, 0, 98, 505, 0, 154, 306, 0, 43, 133, - 139, 46, 130, 347, 130, 505, 0, 121, 163, 179, - 104, 156, 129, 176, 147, 178, 214, 267, 273, 292, - 279, 179, 249, 280, 257, 265, 288, 289, 116, 107, - 317, 505, 287, 289, 291, 302, 307, 310, 307, 311, - - 316, 326, 329, 333, 332, 336, 347, 345, 349, 101, - 86, 346, 505, 505, 350, 351, 353, 350, 357, 362, - 362, 505, 505, 367, 369, 371, 366, 372, 56, 47, - 374, 505, 505, 374, 379, 505, 374, 387, 505, 505, - 387, 391, 505, 117, 0, 505, 505, 392, 394, 505, - 505, 394, 505, 505, 505, 505, 395, 419, 505, 429, - 0, 25, 505, 505, 446, 453, 459, 462, 469, 476, - 483, 490, 497 + 0, 40, 0, 41, 220, 48, 44, 54, 56, 65, + 220, 0, 535, 535, 216, 535, 81, 74, 535, 535, + 186, 535, 153, 145, 0, 85, 122, 87, 154, 155, + 195, 227, 535, 147, 91, 535, 535, 0, 147, 535, + 267, 34, 70, 74, 34, 122, 141, 535, 0, 535, + 112, 0, 98, 535, 0, 156, 307, 0, 143, 43, + 155, 151, 48, 101, 130, 348, 130, 535, 0, 121, + 197, 165, 172, 244, 182, 183, 191, 248, 273, 293, + 308, 314, 321, 246, 275, 216, 269, 299, 304, 327, + 307, 304, 312, 116, 107, 367, 535, 327, 334, 347, + + 347, 350, 352, 349, 354, 359, 357, 363, 366, 365, + 369, 372, 369, 373, 374, 101, 86, 372, 535, 535, + 378, 380, 386, 382, 388, 388, 389, 535, 535, 393, + 394, 396, 392, 430, 400, 56, 47, 403, 535, 535, + 409, 414, 535, 409, 416, 535, 535, 416, 419, 441, + 535, 117, 0, 535, 535, 423, 426, 535, 535, 430, + 535, 535, 535, 535, 432, 457, 535, 459, 0, 25, + 535, 535, 476, 483, 489, 492, 499, 506, 513, 520, + 527 } ; -static yyconst flex_int16_t yy_def[174] = +static yyconst flex_int16_t yy_def[182] = { 0, - 164, 1, 1, 1, 1, 1, 165, 165, 165, 165, - 164, 166, 164, 164, 167, 164, 166, 164, 164, 164, - 166, 164, 164, 166, 168, 166, 168, 164, 166, 164, - 169, 164, 164, 164, 164, 164, 164, 166, 167, 164, - 164, 164, 164, 164, 164, 164, 170, 164, 166, 164, - 166, 168, 164, 164, 27, 164, 164, 57, 164, 164, - 164, 164, 164, 169, 169, 164, 32, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 170, 170, 170, 170, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 171, 172, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 173, 173, 164, 0, 164, 164, 164, 164, 164, 164, - 164, 164, 164 + 172, 1, 1, 1, 1, 1, 173, 173, 173, 173, + 172, 174, 172, 172, 175, 172, 174, 172, 172, 172, + 174, 172, 172, 174, 176, 174, 176, 172, 172, 172, + 177, 172, 172, 172, 172, 172, 172, 174, 175, 172, + 172, 172, 172, 172, 172, 172, 178, 172, 174, 172, + 174, 176, 172, 172, 27, 172, 172, 57, 174, 172, + 172, 172, 172, 172, 172, 177, 177, 172, 32, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 178, 178, + 178, 178, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 179, 180, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 181, 181, + 172, 0, 172, 172, 172, 172, 172, 172, 172, 172, + 172 } ; -static yyconst flex_int16_t yy_nxt[547] = +static yyconst flex_int16_t yy_nxt[577] = { 0, 12, 13, 14, 13, 13, 15, 16, 12, 17, 18, 19, 12, 20, 12, 21, 22, 12, 23, 12, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 27, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 28, 28, 163, 28, 28, 34, 29, 29, 28, - 30, 145, 28, 35, 36, 29, 34, 71, 34, 31, - 144, 76, 37, 35, 36, 35, 83, 34, 71, 32, - 32, 37, 76, 88, 35, 46, 46, 83, 46, 47, - 32, 32, 41, 48, 88, 41, 53, 54, 56, 53, - 130, 56, 69, 70, 57, 69, 72, 73, 74, 53, - - 54, 75, 53, 42, 43, 129, 44, 72, 73, 74, - 45, 111, 75, 81, 42, 43, 81, 44, 154, 154, - 110, 45, 38, 46, 46, 90, 46, 47, 93, 38, - 38, 48, 66, 38, 89, 55, 38, 82, 38, 93, - 38, 38, 78, 46, 40, 78, 79, 68, 82, 63, - 80, 96, 38, 55, 58, 56, 51, 58, 56, 84, - 85, 57, 96, 86, 69, 70, 87, 69, 99, 50, - 84, 85, 49, 40, 86, 59, 60, 87, 61, 99, - 91, 94, 62, 91, 95, 164, 59, 60, 92, 61, - 30, 164, 94, 62, 64, 95, 66, 164, 97, 164, - - 100, 64, 64, 98, 164, 64, 101, 64, 64, 97, - 64, 100, 64, 64, 98, 78, 46, 101, 78, 79, - 164, 164, 164, 80, 64, 64, 65, 65, 66, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, - 65, 65, 65, 65, 65, 65, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 65, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 41, 78, 46, - 41, 78, 79, 102, 78, 46, 80, 78, 79, 105, - 81, 164, 80, 81, 102, 164, 164, 106, 42, 43, - 105, 44, 107, 78, 46, 45, 78, 79, 106, 42, - - 43, 80, 44, 107, 82, 103, 45, 58, 104, 108, - 58, 109, 112, 113, 114, 82, 103, 164, 91, 104, - 108, 91, 109, 112, 113, 114, 92, 115, 59, 60, - 116, 61, 117, 118, 119, 62, 164, 120, 115, 59, - 60, 116, 61, 117, 118, 119, 62, 64, 120, 66, - 164, 121, 164, 122, 64, 64, 123, 124, 64, 125, - 64, 64, 121, 64, 122, 64, 64, 123, 124, 126, - 125, 127, 128, 131, 132, 133, 134, 64, 64, 135, - 126, 136, 127, 128, 131, 132, 133, 134, 137, 138, - 135, 139, 136, 140, 141, 142, 143, 146, 147, 137, - - 138, 148, 139, 149, 140, 141, 142, 143, 146, 147, - 150, 151, 148, 152, 149, 156, 157, 158, 159, 164, - 160, 150, 151, 160, 152, 164, 156, 157, 158, 159, - 160, 164, 164, 160, 164, 161, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 161, 33, 33, 33, 33, - 33, 33, 33, 38, 164, 164, 164, 38, 38, 39, - 39, 39, 39, 39, 39, 39, 52, 164, 52, 65, - 65, 65, 65, 65, 65, 65, 77, 77, 77, 77, - 77, 77, 77, 153, 153, 153, 164, 153, 153, 153, - 155, 164, 155, 164, 155, 155, 155, 162, 162, 162, - - 162, 162, 164, 162, 11, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164 + 25, 28, 28, 171, 28, 28, 34, 29, 29, 28, + 30, 153, 28, 35, 36, 29, 34, 73, 34, 31, + 152, 78, 37, 35, 36, 35, 87, 34, 73, 32, + 32, 37, 78, 92, 35, 46, 46, 87, 46, 47, + 32, 32, 41, 48, 92, 41, 53, 54, 56, 53, + 137, 56, 71, 72, 57, 71, 74, 75, 76, 53, + + 54, 77, 53, 42, 43, 136, 44, 74, 75, 76, + 45, 117, 77, 83, 42, 43, 83, 44, 162, 162, + 116, 45, 38, 46, 46, 95, 46, 47, 93, 38, + 38, 48, 68, 38, 94, 55, 38, 84, 38, 93, + 38, 38, 80, 46, 86, 80, 81, 86, 84, 40, + 82, 70, 38, 55, 38, 58, 59, 56, 58, 65, + 56, 38, 38, 57, 51, 38, 96, 59, 38, 96, + 38, 50, 38, 38, 97, 90, 60, 61, 91, 62, + 63, 88, 89, 64, 38, 38, 90, 60, 61, 91, + 62, 63, 88, 89, 64, 66, 98, 68, 71, 72, + + 49, 71, 66, 66, 101, 102, 66, 98, 66, 66, + 103, 66, 104, 66, 66, 101, 102, 86, 40, 172, + 86, 103, 30, 104, 172, 66, 66, 67, 67, 68, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 69, 67, 67, 67, 67, 67, 67, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 67, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 41, 99, + 105, 41, 100, 106, 80, 46, 86, 80, 81, 86, + 99, 105, 82, 100, 106, 172, 172, 172, 85, 42, + 43, 172, 44, 107, 80, 46, 45, 80, 81, 172, + + 42, 43, 82, 44, 107, 172, 172, 45, 58, 80, + 46, 58, 80, 81, 172, 80, 46, 82, 80, 81, + 85, 172, 83, 82, 108, 83, 110, 109, 113, 60, + 61, 114, 62, 63, 115, 108, 64, 110, 109, 113, + 60, 61, 114, 62, 63, 115, 84, 64, 66, 111, + 68, 172, 118, 172, 112, 66, 66, 84, 119, 66, + 111, 66, 66, 118, 66, 112, 66, 66, 96, 119, + 120, 96, 121, 122, 123, 124, 97, 125, 66, 66, + 126, 120, 127, 121, 122, 123, 124, 128, 125, 129, + 130, 126, 131, 127, 132, 133, 134, 135, 128, 138, + + 129, 130, 139, 131, 140, 132, 133, 134, 135, 141, + 138, 142, 143, 139, 144, 140, 145, 146, 147, 148, + 141, 149, 142, 143, 151, 144, 154, 145, 146, 147, + 148, 150, 149, 155, 150, 151, 156, 154, 157, 158, + 159, 160, 150, 85, 155, 150, 164, 156, 165, 157, + 158, 159, 160, 166, 85, 167, 172, 164, 168, 165, + 168, 168, 172, 168, 166, 172, 167, 172, 172, 172, + 172, 172, 172, 169, 172, 169, 33, 33, 33, 33, + 33, 33, 33, 38, 172, 172, 172, 38, 38, 39, + 39, 39, 39, 39, 39, 39, 52, 172, 52, 67, + + 67, 67, 67, 67, 67, 67, 79, 79, 79, 79, + 79, 79, 79, 161, 161, 161, 172, 161, 161, 161, + 163, 172, 163, 172, 163, 163, 163, 170, 170, 170, + 170, 170, 172, 170, 11, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172 } ; -static yyconst flex_int16_t yy_chk[547] = +static yyconst flex_int16_t yy_chk[577] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 4, 162, 2, 4, 7, 2, 4, 6, - 6, 130, 6, 7, 7, 6, 8, 42, 9, 6, - 129, 45, 9, 8, 8, 9, 59, 10, 42, 6, - 6, 10, 45, 62, 10, 18, 18, 59, 18, 18, - 6, 6, 17, 18, 62, 17, 26, 26, 28, 26, - 111, 28, 35, 35, 28, 35, 43, 43, 44, 53, - - 53, 44, 53, 17, 17, 110, 17, 43, 43, 44, - 17, 90, 44, 51, 17, 17, 51, 17, 144, 144, - 89, 17, 27, 46, 46, 68, 46, 46, 71, 27, - 27, 46, 65, 27, 63, 27, 27, 51, 27, 71, - 27, 27, 47, 47, 39, 47, 47, 34, 51, 30, - 47, 73, 27, 27, 29, 56, 24, 29, 56, 60, - 60, 56, 73, 61, 69, 69, 61, 69, 75, 23, - 60, 60, 21, 15, 61, 29, 29, 61, 29, 75, - 70, 72, 29, 70, 72, 11, 29, 29, 70, 29, - 5, 0, 72, 29, 31, 72, 31, 0, 74, 0, - - 76, 31, 31, 74, 0, 31, 82, 31, 31, 74, - 31, 76, 31, 31, 74, 77, 77, 82, 77, 77, - 0, 0, 0, 77, 31, 31, 32, 32, 32, 32, + 1, 2, 4, 170, 2, 4, 7, 2, 4, 6, + 6, 137, 6, 7, 7, 6, 8, 42, 9, 6, + 136, 45, 9, 8, 8, 9, 60, 10, 42, 6, + 6, 10, 45, 63, 10, 18, 18, 60, 18, 18, + 6, 6, 17, 18, 63, 17, 26, 26, 28, 26, + 117, 28, 35, 35, 28, 35, 43, 43, 44, 53, + + 53, 44, 53, 17, 17, 116, 17, 43, 43, 44, + 17, 95, 44, 51, 17, 17, 51, 17, 152, 152, + 94, 17, 27, 46, 46, 70, 46, 46, 64, 27, + 27, 46, 67, 27, 65, 27, 27, 51, 27, 64, + 27, 27, 47, 47, 59, 47, 47, 59, 51, 39, + 47, 34, 27, 27, 29, 29, 59, 56, 29, 30, + 56, 29, 29, 56, 24, 29, 72, 29, 29, 72, + 29, 23, 29, 29, 72, 62, 29, 29, 62, 29, + 29, 61, 61, 29, 29, 29, 62, 29, 29, 62, + 29, 29, 61, 61, 29, 31, 73, 31, 71, 71, + + 21, 71, 31, 31, 75, 76, 31, 73, 31, 31, + 76, 31, 77, 31, 31, 75, 76, 86, 15, 11, + 86, 76, 5, 77, 0, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 41, 78, 78, - 41, 78, 78, 83, 79, 79, 78, 79, 79, 85, - 81, 0, 79, 81, 83, 0, 0, 86, 41, 41, - 85, 41, 86, 80, 80, 41, 80, 80, 86, 41, - - 41, 80, 41, 86, 81, 84, 41, 57, 84, 87, - 57, 88, 93, 94, 95, 81, 84, 0, 91, 84, - 87, 91, 88, 93, 94, 95, 91, 96, 57, 57, - 97, 57, 98, 99, 100, 57, 0, 101, 96, 57, - 57, 97, 57, 98, 99, 100, 57, 64, 101, 64, - 0, 102, 0, 103, 64, 64, 104, 105, 64, 106, - 64, 64, 102, 64, 103, 64, 64, 104, 105, 107, - 106, 108, 109, 112, 115, 116, 117, 64, 64, 118, - 107, 119, 108, 109, 112, 115, 116, 117, 120, 121, - 118, 124, 119, 125, 126, 127, 128, 131, 134, 120, - - 121, 135, 124, 137, 125, 126, 127, 128, 131, 134, - 138, 141, 135, 142, 137, 148, 149, 152, 157, 0, - 158, 138, 141, 158, 142, 0, 148, 149, 152, 157, - 160, 0, 0, 160, 0, 158, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 165, 165, 165, 165, - 165, 165, 165, 166, 0, 0, 0, 166, 166, 167, - 167, 167, 167, 167, 167, 167, 168, 0, 168, 169, - 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, - 170, 170, 170, 171, 171, 171, 0, 171, 171, 171, - 172, 0, 172, 0, 172, 172, 172, 173, 173, 173, - - 173, 173, 0, 173, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164 + 32, 32, 32, 32, 32, 32, 32, 32, 41, 74, + 78, 41, 74, 84, 79, 79, 85, 79, 79, 85, + 74, 78, 79, 74, 84, 0, 0, 0, 85, 41, + 41, 0, 41, 87, 80, 80, 41, 80, 80, 0, + + 41, 41, 80, 41, 87, 0, 0, 41, 57, 81, + 81, 57, 81, 81, 0, 82, 82, 81, 82, 82, + 57, 0, 83, 82, 88, 83, 89, 88, 91, 57, + 57, 92, 57, 57, 93, 88, 57, 89, 88, 91, + 57, 57, 92, 57, 57, 93, 83, 57, 66, 90, + 66, 0, 98, 0, 90, 66, 66, 83, 99, 66, + 90, 66, 66, 98, 66, 90, 66, 66, 96, 99, + 100, 96, 101, 102, 103, 104, 96, 105, 66, 66, + 106, 100, 107, 101, 102, 103, 104, 108, 105, 109, + 110, 106, 111, 107, 112, 113, 114, 115, 108, 118, + + 109, 110, 121, 111, 122, 112, 113, 114, 115, 123, + 118, 124, 125, 121, 126, 122, 127, 130, 131, 132, + 123, 133, 124, 125, 135, 126, 138, 127, 130, 131, + 132, 134, 133, 141, 134, 135, 142, 138, 144, 145, + 148, 149, 150, 134, 141, 150, 156, 142, 157, 144, + 145, 148, 149, 160, 150, 165, 0, 156, 166, 157, + 168, 166, 0, 168, 160, 0, 165, 0, 0, 0, + 0, 0, 0, 166, 0, 168, 173, 173, 173, 173, + 173, 173, 173, 174, 0, 0, 0, 174, 174, 175, + 175, 175, 175, 175, 175, 175, 176, 0, 176, 177, + + 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, + 178, 178, 178, 179, 179, 179, 0, 179, 179, 179, + 180, 0, 180, 0, 180, 180, 180, 181, 181, 181, + 181, 181, 0, 181, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172 } ; /* The intent behind this definition is that it'll catch @@ -655,6 +665,7 @@ Run flex like this: Modify cmFortranLexer.cxx: - remove TABs + - remove use of the 'register' storage class specifier - remove "yyscanner" argument from these methods: yy_fatal_error, cmFortran_yyalloc, cmFortran_yyrealloc, cmFortran_yyfree - remove "yyscanner = NULL" from end of cmFortran_yylex_destroy @@ -685,7 +696,7 @@ Modify cmFortranLexer.h: /*--------------------------------------------------------------------------*/ -#line 678 "cmFortranLexer.cxx" +#line 689 "cmFortranLexer.cxx" #define INITIAL 0 #define free_fmt 1 @@ -718,8 +729,8 @@ struct yyguts_t size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; - int yy_n_chars; - int yyleng_r; + yy_size_t yy_n_chars; + yy_size_t yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -766,7 +777,7 @@ FILE *cmFortran_yyget_out (yyscan_t yyscanner ); void cmFortran_yyset_out (FILE * out_str ,yyscan_t yyscanner ); -int cmFortran_yyget_leng (yyscan_t yyscanner ); +yy_size_t cmFortran_yyget_leng (yyscan_t yyscanner ); char *cmFortran_yyget_text (yyscan_t yyscanner ); @@ -774,6 +785,10 @@ int cmFortran_yyget_lineno (yyscan_t yyscanner ); void cmFortran_yyset_lineno (int line_number ,yyscan_t yyscanner ); +int cmFortran_yyget_column (yyscan_t yyscanner ); + +void cmFortran_yyset_column (int column_no ,yyscan_t yyscanner ); + /* Macros after this point can all be overridden by user definitions in * section 1. */ @@ -918,11 +933,6 @@ YY_DECL int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 71 "cmFortranLexer.in.l" - - -#line 914 "cmFortranLexer.cxx" - if ( !yyg->yy_init ) { yyg->yy_init = 1; @@ -949,6 +959,12 @@ YY_DECL cmFortran_yy_load_buffer_state(yyscanner ); } + { +#line 72 "cmFortranLexer.in.l" + + +#line 956 "cmFortranLexer.cxx" + for(;;) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; @@ -966,7 +982,7 @@ YY_DECL yy_match: do { - YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; @@ -975,13 +991,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 165 ) + if ( yy_current_state >= 173 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 505 ); + while ( yy_base[yy_current_state] != 535 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1007,7 +1023,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 73 "cmFortranLexer.in.l" +#line 74 "cmFortranLexer.in.l" { cmFortranParser_StringStart(yyextra); cmFortranParser_SetOldStartcond(yyextra, YY_START); @@ -1016,7 +1032,7 @@ YY_RULE_SETUP YY_BREAK case 2: YY_RULE_SETUP -#line 79 "cmFortranLexer.in.l" +#line 80 "cmFortranLexer.in.l" { cmFortranParser_StringStart(yyextra); cmFortranParser_SetOldStartcond(yyextra, YY_START); @@ -1024,10 +1040,10 @@ YY_RULE_SETUP } YY_BREAK case 3: -#line 86 "cmFortranLexer.in.l" +#line 87 "cmFortranLexer.in.l" case 4: YY_RULE_SETUP -#line 86 "cmFortranLexer.in.l" +#line 87 "cmFortranLexer.in.l" { BEGIN(cmFortranParser_GetOldStartcond(yyextra) ); yylvalp->string = strdup(cmFortranParser_StringEnd(yyextra)); @@ -1035,17 +1051,17 @@ YY_RULE_SETUP } case 5: /* rule 5 can match eol */ -#line 93 "cmFortranLexer.in.l" +#line 94 "cmFortranLexer.in.l" case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 93 "cmFortranLexer.in.l" +#line 94 "cmFortranLexer.in.l" /* Ignore (continued strings, free fmt) */ YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 95 "cmFortranLexer.in.l" +#line 96 "cmFortranLexer.in.l" { if (cmFortranParser_GetOldStartcond(yyextra) == fixed_fmt) ; /* Ignore (cont. strings, fixed fmt) */ @@ -1058,7 +1074,7 @@ YY_RULE_SETUP case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 105 "cmFortranLexer.in.l" +#line 106 "cmFortranLexer.in.l" { unput ('\n'); BEGIN(INITIAL); @@ -1066,7 +1082,7 @@ YY_RULE_SETUP } case 9: YY_RULE_SETUP -#line 111 "cmFortranLexer.in.l" +#line 112 "cmFortranLexer.in.l" { cmFortranParser_StringAppend(yyextra, yytext[0]); } @@ -1074,165 +1090,169 @@ YY_RULE_SETUP case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 115 "cmFortranLexer.in.l" +#line 116 "cmFortranLexer.in.l" { return EOSTMT; } /* Treat comments like */ case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 116 "cmFortranLexer.in.l" +#line 117 "cmFortranLexer.in.l" { return EOSTMT; } /* empty lines */ case 12: -/* rule 12 can match eol */ YY_RULE_SETUP -#line 118 "cmFortranLexer.in.l" +#line 119 "cmFortranLexer.in.l" +{ return CPP_LINE_DIRECTIVE; } +case 13: +/* rule 13 can match eol */ +YY_RULE_SETUP +#line 120 "cmFortranLexer.in.l" { yytext[yyleng-1] = 0; yylvalp->string = strdup(strchr(yytext, '<')+1); return CPP_INCLUDE_ANGLE; } -case 13: -YY_RULE_SETUP -#line 123 "cmFortranLexer.in.l" -{ return CPP_INCLUDE; } case 14: YY_RULE_SETUP -#line 124 "cmFortranLexer.in.l" -{ return F90PPR_INCLUDE; } +#line 125 "cmFortranLexer.in.l" +{ return CPP_INCLUDE; } case 15: YY_RULE_SETUP -#line 125 "cmFortranLexer.in.l" -{ return COCO_INCLUDE; } +#line 126 "cmFortranLexer.in.l" +{ return F90PPR_INCLUDE; } case 16: YY_RULE_SETUP #line 127 "cmFortranLexer.in.l" -{ return CPP_DEFINE; } +{ return COCO_INCLUDE; } case 17: YY_RULE_SETUP -#line 128 "cmFortranLexer.in.l" -{ return F90PPR_DEFINE; } +#line 129 "cmFortranLexer.in.l" +{ return CPP_DEFINE; } case 18: YY_RULE_SETUP #line 130 "cmFortranLexer.in.l" -{ return CPP_UNDEF; } +{ return F90PPR_DEFINE; } case 19: YY_RULE_SETUP -#line 131 "cmFortranLexer.in.l" -{ return F90PPR_UNDEF; } +#line 132 "cmFortranLexer.in.l" +{ return CPP_UNDEF; } case 20: YY_RULE_SETUP #line 133 "cmFortranLexer.in.l" -{ return CPP_IFDEF; } +{ return F90PPR_UNDEF; } case 21: YY_RULE_SETUP -#line 134 "cmFortranLexer.in.l" -{ return CPP_IFNDEF; } +#line 135 "cmFortranLexer.in.l" +{ return CPP_IFDEF; } case 22: YY_RULE_SETUP -#line 135 "cmFortranLexer.in.l" -{ return CPP_IF; } +#line 136 "cmFortranLexer.in.l" +{ return CPP_IFNDEF; } case 23: YY_RULE_SETUP -#line 136 "cmFortranLexer.in.l" -{ return CPP_ELIF; } +#line 137 "cmFortranLexer.in.l" +{ return CPP_IF; } case 24: YY_RULE_SETUP -#line 137 "cmFortranLexer.in.l" -{ return CPP_ELSE; } +#line 138 "cmFortranLexer.in.l" +{ return CPP_ELIF; } case 25: YY_RULE_SETUP -#line 138 "cmFortranLexer.in.l" -{ return CPP_ENDIF; } +#line 139 "cmFortranLexer.in.l" +{ return CPP_ELSE; } case 26: YY_RULE_SETUP #line 140 "cmFortranLexer.in.l" -{ return F90PPR_IFDEF; } +{ return CPP_ENDIF; } case 27: YY_RULE_SETUP -#line 141 "cmFortranLexer.in.l" -{ return F90PPR_IFNDEF; } +#line 142 "cmFortranLexer.in.l" +{ return F90PPR_IFDEF; } case 28: YY_RULE_SETUP -#line 142 "cmFortranLexer.in.l" -{ return F90PPR_IF; } +#line 143 "cmFortranLexer.in.l" +{ return F90PPR_IFNDEF; } case 29: YY_RULE_SETUP -#line 143 "cmFortranLexer.in.l" -{ return F90PPR_ELIF; } +#line 144 "cmFortranLexer.in.l" +{ return F90PPR_IF; } case 30: YY_RULE_SETUP -#line 144 "cmFortranLexer.in.l" -{ return F90PPR_ELSE; } +#line 145 "cmFortranLexer.in.l" +{ return F90PPR_ELIF; } case 31: YY_RULE_SETUP -#line 145 "cmFortranLexer.in.l" -{ return F90PPR_ENDIF; } -/* Line continuations, possible involving comments. */ +#line 146 "cmFortranLexer.in.l" +{ return F90PPR_ELSE; } case 32: -/* rule 32 can match eol */ YY_RULE_SETUP -#line 148 "cmFortranLexer.in.l" - - YY_BREAK +#line 147 "cmFortranLexer.in.l" +{ return F90PPR_ENDIF; } +/* Line continuations, possible involving comments. */ case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 149 "cmFortranLexer.in.l" +#line 150 "cmFortranLexer.in.l" YY_BREAK case 34: +/* rule 34 can match eol */ YY_RULE_SETUP #line 151 "cmFortranLexer.in.l" -{ return COMMA; } + + YY_BREAK case 35: YY_RULE_SETUP #line 153 "cmFortranLexer.in.l" -{ return DCOLON; } +{ return COMMA; } case 36: -/* rule 36 can match eol */ YY_RULE_SETUP #line 155 "cmFortranLexer.in.l" -{ return GARBAGE; } +{ return DCOLON; } case 37: +/* rule 37 can match eol */ YY_RULE_SETUP #line 157 "cmFortranLexer.in.l" -{ return ASSIGNMENT_OP; } +{ return GARBAGE; } case 38: YY_RULE_SETUP #line 159 "cmFortranLexer.in.l" +{ return ASSIGNMENT_OP; } +case 39: +YY_RULE_SETUP +#line 161 "cmFortranLexer.in.l" { yylvalp->string = strdup(yytext); return WORD; } -case 39: -YY_RULE_SETUP -#line 164 "cmFortranLexer.in.l" -{ return GARBAGE; } case 40: -/* rule 40 can match eol */ YY_RULE_SETUP #line 166 "cmFortranLexer.in.l" -{ return EOSTMT; } +{ return GARBAGE; } case 41: +/* rule 41 can match eol */ YY_RULE_SETUP -#line 169 "cmFortranLexer.in.l" -/* Ignore */ - YY_BREAK +#line 168 "cmFortranLexer.in.l" +{ return EOSTMT; } case 42: -/* rule 42 can match eol */ YY_RULE_SETUP -#line 170 "cmFortranLexer.in.l" -/* Ignore line-endings preceeded by \ */ +#line 171 "cmFortranLexer.in.l" +/* Ignore */ YY_BREAK case 43: +/* rule 43 can match eol */ YY_RULE_SETUP #line 172 "cmFortranLexer.in.l" +/* Ignore line-endings preceeded by \ */ + YY_BREAK +case 44: +YY_RULE_SETUP +#line 174 "cmFortranLexer.in.l" { return *yytext; } case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(free_fmt): case YY_STATE_EOF(fixed_fmt): case YY_STATE_EOF(str_sq): case YY_STATE_EOF(str_dq): -#line 174 "cmFortranLexer.in.l" +#line 176 "cmFortranLexer.in.l" { if(!cmFortranParser_FilePop(yyextra) ) { @@ -1240,12 +1260,12 @@ case YY_STATE_EOF(str_dq): } } YY_BREAK -case 44: +case 45: YY_RULE_SETUP -#line 181 "cmFortranLexer.in.l" +#line 183 "cmFortranLexer.in.l" ECHO; YY_BREAK -#line 1270 "cmFortranLexer.cxx" +#line 1291 "cmFortranLexer.cxx" case YY_END_OF_BUFFER: { @@ -1374,6 +1394,7 @@ ECHO; "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of cmFortran_yylex */ /* yy_get_next_buffer - try to read in a new buffer @@ -1430,21 +1451,21 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1475,7 +1496,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -1538,7 +1559,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 165 ) + if ( yy_current_state >= 173 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1567,12 +1588,13 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 165 ) + if ( yy_current_state >= 173 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 164); + yy_is_jam = (yy_current_state == 172); + (void)yyg; return yy_is_jam ? 0 : yy_current_state; } @@ -1589,7 +1611,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - int number_to_move = yyg->yy_n_chars + 2; + yy_size_t number_to_move = yyg->yy_n_chars + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = @@ -1639,7 +1661,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) @@ -1805,10 +1827,6 @@ static void cmFortran_yy_load_buffer_state (yyscan_t yyscanner) cmFortran_yyfree((void *) b ,yyscanner ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a cmFortran_yyrestart() or at EOF. @@ -1925,7 +1943,7 @@ void cmFortran_yypop_buffer_state (yyscan_t yyscanner) */ static void cmFortran_yyensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; + yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { @@ -2023,12 +2041,12 @@ YY_BUFFER_STATE cmFortran_yy_scan_string (yyconst char * yystr , yyscan_t yyscan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -2138,7 +2156,7 @@ FILE *cmFortran_yyget_out (yyscan_t yyscanner) /** Get the length of the current token. * @param yyscanner The scanner object. */ -int cmFortran_yyget_leng (yyscan_t yyscanner) +yy_size_t cmFortran_yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -2165,7 +2183,7 @@ void cmFortran_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) } /** Set the current line number. - * @param line_number The line number to set. + * @param line_number * @param yyscanner The scanner object. */ void cmFortran_yyset_lineno (int line_number , yyscan_t yyscanner) @@ -2174,13 +2192,13 @@ void cmFortran_yyset_lineno (int line_number , yyscan_t yyscanner) /* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "cmFortran_yyset_lineno called with no buffer" , yyscanner); + YY_FATAL_ERROR( "cmFortran_yyset_lineno called with no buffer" ); yylineno = line_number; } /** Set the current column. - * @param column_no The column number to set. + * @param line_number * @param yyscanner The scanner object. */ void cmFortran_yyset_column (int column_no , yyscan_t yyscanner) @@ -2189,7 +2207,7 @@ void cmFortran_yyset_column (int column_no , yyscan_t yyscanner) /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "cmFortran_yyset_column called with no buffer" , yyscanner); + YY_FATAL_ERROR( "cmFortran_yyset_column called with no buffer" ); yycolumn = column_no; } @@ -2400,7 +2418,7 @@ void cmFortran_yyfree (void * ptr , yyscan_t) #define YYTABLES_NAME "yytables" -#line 181 "cmFortranLexer.in.l" +#line 182 "cmFortranLexer.in.l" diff --git a/Source/cmFortranLexer.h b/Source/cmFortranLexer.h index c67e332..b9ff0dc 100644 --- a/Source/cmFortranLexer.h +++ b/Source/cmFortranLexer.h @@ -1,6 +1,6 @@ /*============================================================================ CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + Copyright 2000-2015 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. @@ -20,7 +20,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 39 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -177,7 +177,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -221,7 +221,7 @@ void cmFortran_yypop_buffer_state (yyscan_t yyscanner ); YY_BUFFER_STATE cmFortran_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE cmFortran_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); void *cmFortran_yyalloc (yy_size_t ,yyscan_t yyscanner ); void *cmFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -229,7 +229,7 @@ void cmFortran_yyfree (void * ,yyscan_t yyscanner ); /* Begin user sect3 */ -#define cmFortran_yywrap(n) 1 +#define cmFortran_yywrap(yyscanner) 1 #define YY_SKIP_YYWRAP #define yytext_ptr yytext_r @@ -272,7 +272,7 @@ FILE *cmFortran_yyget_out (yyscan_t yyscanner ); void cmFortran_yyset_out (FILE * out_str ,yyscan_t yyscanner ); -int cmFortran_yyget_leng (yyscan_t yyscanner ); +yy_size_t cmFortran_yyget_leng (yyscan_t yyscanner ); char *cmFortran_yyget_text (yyscan_t yyscanner ); @@ -280,6 +280,10 @@ int cmFortran_yyget_lineno (yyscan_t yyscanner ); void cmFortran_yyset_lineno (int line_number ,yyscan_t yyscanner ); +int cmFortran_yyget_column (yyscan_t yyscanner ); + +void cmFortran_yyset_column (int column_no ,yyscan_t yyscanner ); + /* Macros after this point can all be overridden by user definitions in * section 1. */ diff --git a/Source/cmFortranLexer.in.l b/Source/cmFortranLexer.in.l index 03fa90c..53984bb 100644 --- a/Source/cmFortranLexer.in.l +++ b/Source/cmFortranLexer.in.l @@ -1,7 +1,7 @@ %{ /*============================================================================ CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + Copyright 2000-2015 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. @@ -116,6 +116,7 @@ Modify cmFortranLexer.h: !.*\n { return EOSTMT; } /* Treat comments like */ ^[cC*dD].*\n { return EOSTMT; } /* empty lines */ +^[ \t]*#([ \t]*line)?[ \t]*[0-9]+[ \t]* { return CPP_LINE_DIRECTIVE; } ^[ \t]*#[ \t]*include[ \t]*<[^>]+> { yytext[yyleng-1] = 0; yylvalp->string = strdup(strchr(yytext, '<')+1); diff --git a/Source/cmFortranParser.cxx b/Source/cmFortranParser.cxx index 0230f02..21a6443 100644 --- a/Source/cmFortranParser.cxx +++ b/Source/cmFortranParser.cxx @@ -72,7 +72,7 @@ /*============================================================================ CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + Copyright 2000-2015 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. @@ -177,64 +177,66 @@ extern int cmFortran_yydebug; EOSTMT = 258, ASSIGNMENT_OP = 259, GARBAGE = 260, - CPP_INCLUDE = 261, - F90PPR_INCLUDE = 262, - COCO_INCLUDE = 263, - F90PPR_DEFINE = 264, - CPP_DEFINE = 265, - F90PPR_UNDEF = 266, - CPP_UNDEF = 267, - CPP_IFDEF = 268, - CPP_IFNDEF = 269, - CPP_IF = 270, - CPP_ELSE = 271, - CPP_ELIF = 272, - CPP_ENDIF = 273, - F90PPR_IFDEF = 274, - F90PPR_IFNDEF = 275, - F90PPR_IF = 276, - F90PPR_ELSE = 277, - F90PPR_ELIF = 278, - F90PPR_ENDIF = 279, - COMMA = 280, - DCOLON = 281, - CPP_TOENDL = 282, - UNTERMINATED_STRING = 283, - STRING = 284, - WORD = 285, - CPP_INCLUDE_ANGLE = 286 + CPP_LINE_DIRECTIVE = 261, + CPP_INCLUDE = 262, + F90PPR_INCLUDE = 263, + COCO_INCLUDE = 264, + F90PPR_DEFINE = 265, + CPP_DEFINE = 266, + F90PPR_UNDEF = 267, + CPP_UNDEF = 268, + CPP_IFDEF = 269, + CPP_IFNDEF = 270, + CPP_IF = 271, + CPP_ELSE = 272, + CPP_ELIF = 273, + CPP_ENDIF = 274, + F90PPR_IFDEF = 275, + F90PPR_IFNDEF = 276, + F90PPR_IF = 277, + F90PPR_ELSE = 278, + F90PPR_ELIF = 279, + F90PPR_ENDIF = 280, + COMMA = 281, + DCOLON = 282, + CPP_TOENDL = 283, + UNTERMINATED_STRING = 284, + STRING = 285, + WORD = 286, + CPP_INCLUDE_ANGLE = 287 }; #endif /* Tokens. */ #define EOSTMT 258 #define ASSIGNMENT_OP 259 #define GARBAGE 260 -#define CPP_INCLUDE 261 -#define F90PPR_INCLUDE 262 -#define COCO_INCLUDE 263 -#define F90PPR_DEFINE 264 -#define CPP_DEFINE 265 -#define F90PPR_UNDEF 266 -#define CPP_UNDEF 267 -#define CPP_IFDEF 268 -#define CPP_IFNDEF 269 -#define CPP_IF 270 -#define CPP_ELSE 271 -#define CPP_ELIF 272 -#define CPP_ENDIF 273 -#define F90PPR_IFDEF 274 -#define F90PPR_IFNDEF 275 -#define F90PPR_IF 276 -#define F90PPR_ELSE 277 -#define F90PPR_ELIF 278 -#define F90PPR_ENDIF 279 -#define COMMA 280 -#define DCOLON 281 -#define CPP_TOENDL 282 -#define UNTERMINATED_STRING 283 -#define STRING 284 -#define WORD 285 -#define CPP_INCLUDE_ANGLE 286 +#define CPP_LINE_DIRECTIVE 261 +#define CPP_INCLUDE 262 +#define F90PPR_INCLUDE 263 +#define COCO_INCLUDE 264 +#define F90PPR_DEFINE 265 +#define CPP_DEFINE 266 +#define F90PPR_UNDEF 267 +#define CPP_UNDEF 268 +#define CPP_IFDEF 269 +#define CPP_IFNDEF 270 +#define CPP_IF 271 +#define CPP_ELSE 272 +#define CPP_ELIF 273 +#define CPP_ENDIF 274 +#define F90PPR_IFDEF 275 +#define F90PPR_IFNDEF 276 +#define F90PPR_IF 277 +#define F90PPR_ELSE 278 +#define F90PPR_ELIF 279 +#define F90PPR_ENDIF 280 +#define COMMA 281 +#define DCOLON 282 +#define CPP_TOENDL 283 +#define UNTERMINATED_STRING 284 +#define STRING 285 +#define WORD 286 +#define CPP_INCLUDE_ANGLE 287 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -245,7 +247,7 @@ union YYSTYPE char* string; -#line 249 "cmFortranParser.cxx" /* yacc.c:355 */ +#line 251 "cmFortranParser.cxx" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -259,7 +261,7 @@ int cmFortran_yyparse (yyscan_t yyscanner); /* Copy the second part of user declarations. */ -#line 263 "cmFortranParser.cxx" /* yacc.c:358 */ +#line 265 "cmFortranParser.cxx" /* yacc.c:358 */ #ifdef short # undef short @@ -501,21 +503,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 276 +#define YYLAST 290 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 32 +#define YYNTOKENS 33 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 16 /* YYNRULES -- Number of rules. */ -#define YYNRULES 53 +#define YYNRULES 54 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 97 +#define YYNSTATES 101 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 286 +#define YYMAXUTOK 287 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -552,19 +554,19 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31 + 25, 26, 27, 28, 29, 30, 31, 32 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 103, 103, 103, 105, 105, 107, 113, 123, 153, - 164, 177, 188, 195, 202, 208, 214, 220, 226, 231, - 236, 241, 246, 250, 251, 252, 257, 257, 257, 258, - 258, 259, 259, 260, 260, 261, 261, 262, 262, 263, - 263, 264, 264, 265, 265, 266, 266, 269, 270, 271, - 272, 273, 274, 275 + 0, 104, 104, 104, 106, 106, 108, 114, 124, 154, + 165, 178, 189, 196, 203, 210, 216, 222, 228, 234, + 239, 244, 249, 254, 258, 259, 260, 265, 265, 265, + 266, 266, 267, 267, 268, 268, 269, 269, 270, 270, + 271, 271, 272, 272, 273, 273, 274, 274, 277, 278, + 279, 280, 281, 282, 283 }; #endif @@ -574,14 +576,15 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "EOSTMT", "ASSIGNMENT_OP", "GARBAGE", - "CPP_INCLUDE", "F90PPR_INCLUDE", "COCO_INCLUDE", "F90PPR_DEFINE", - "CPP_DEFINE", "F90PPR_UNDEF", "CPP_UNDEF", "CPP_IFDEF", "CPP_IFNDEF", - "CPP_IF", "CPP_ELSE", "CPP_ELIF", "CPP_ENDIF", "F90PPR_IFDEF", - "F90PPR_IFNDEF", "F90PPR_IF", "F90PPR_ELSE", "F90PPR_ELIF", - "F90PPR_ENDIF", "COMMA", "DCOLON", "CPP_TOENDL", "UNTERMINATED_STRING", - "STRING", "WORD", "CPP_INCLUDE_ANGLE", "$accept", "code", "stmt", - "assignment_stmt", "keyword_stmt", "include", "define", "undef", "ifdef", - "ifndef", "if", "elif", "else", "endif", "other", "misc_code", YY_NULLPTR + "CPP_LINE_DIRECTIVE", "CPP_INCLUDE", "F90PPR_INCLUDE", "COCO_INCLUDE", + "F90PPR_DEFINE", "CPP_DEFINE", "F90PPR_UNDEF", "CPP_UNDEF", "CPP_IFDEF", + "CPP_IFNDEF", "CPP_IF", "CPP_ELSE", "CPP_ELIF", "CPP_ENDIF", + "F90PPR_IFDEF", "F90PPR_IFNDEF", "F90PPR_IF", "F90PPR_ELSE", + "F90PPR_ELIF", "F90PPR_ENDIF", "COMMA", "DCOLON", "CPP_TOENDL", + "UNTERMINATED_STRING", "STRING", "WORD", "CPP_INCLUDE_ANGLE", "$accept", + "code", "stmt", "assignment_stmt", "keyword_stmt", "include", "define", + "undef", "ifdef", "ifndef", "if", "elif", "else", "endif", "other", + "misc_code", YY_NULLPTR }; #endif @@ -593,14 +596,14 @@ static const yytype_uint16 yytoknum[] = 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286 + 285, 286, 287 }; # endif -#define YYPACT_NINF -29 +#define YYPACT_NINF -30 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-29))) + (!!((Yystate) == (-30))) #define YYTABLE_NINF -1 @@ -611,16 +614,17 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -29, 39, -29, -29, -29, -29, -29, -29, -29, -29, - -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, - -29, -29, -29, -29, -29, 246, -29, -29, -29, -29, - -28, -27, -22, -17, -16, -29, -29, -29, -29, 2, - -29, -29, -29, -13, -12, -29, -29, 61, -29, -29, - -29, -29, -29, 68, 74, 80, 108, -29, -29, -29, - -29, -29, -29, -29, -29, -29, 114, 120, -24, -29, - 126, 154, -29, 160, 166, 172, 200, 206, -29, -29, - -29, -29, -29, -29, -9, 212, -29, -29, -29, -29, - -29, -29, -29, -29, -29, 218, -29 + -30, 41, -30, -30, -30, -30, -29, -30, -30, -30, + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -30, -30, 259, -30, -30, -30, + -30, -28, -23, -18, -16, -13, -30, -30, -30, -30, + 2, -30, -30, -30, -30, -12, -9, -30, -30, 64, + -30, -30, -30, -30, -30, 71, 77, 83, 112, -30, + -30, -30, -30, -30, -30, -30, -30, -30, 118, 124, + 130, -24, -30, 159, 165, -30, 171, 177, 206, 212, + 218, -30, -30, -30, -30, -30, -30, -30, -1, 224, + -30, -30, -30, -30, -30, -30, -30, -30, -30, 253, + -30 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -628,30 +632,31 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 25, 24, 45, 26, 27, 28, 30, - 29, 32, 31, 33, 35, 37, 41, 39, 43, 34, - 36, 38, 42, 40, 44, 0, 45, 3, 5, 4, - 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, - 7, 45, 45, 0, 0, 45, 45, 0, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 23, 50, 49, - 52, 51, 53, 48, 47, 46, 0, 0, 0, 45, - 0, 0, 12, 0, 0, 0, 0, 0, 18, 19, - 20, 21, 6, 22, 0, 0, 11, 8, 13, 14, - 15, 16, 17, 45, 9, 0, 10 + 2, 0, 1, 26, 25, 46, 0, 27, 28, 29, + 31, 30, 33, 32, 34, 36, 38, 42, 40, 44, + 35, 37, 39, 43, 41, 45, 0, 46, 3, 5, + 4, 0, 0, 0, 0, 0, 46, 46, 46, 46, + 0, 46, 7, 46, 46, 0, 0, 46, 46, 0, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 24, + 51, 50, 53, 52, 54, 49, 48, 47, 0, 0, + 0, 0, 46, 0, 0, 13, 0, 0, 0, 0, + 0, 19, 20, 21, 22, 12, 6, 23, 0, 0, + 11, 8, 14, 15, 16, 17, 18, 46, 9, 0, + 10 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, - -29, -29, -29, -29, -26, -29 + -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, + -30, -30, -30, -30, -27, -30 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 1, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 65 + -1, 1, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 67 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -659,104 +664,109 @@ static const yytype_int8 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint8 yytable[] = { - 47, 48, 84, 49, 0, 57, 58, 59, 50, 53, - 54, 55, 56, 51, 52, 66, 67, 68, 69, 70, - 71, 93, 73, 74, 75, 76, 77, 60, 61, 0, - 62, 63, 64, 0, 0, 0, 0, 0, 0, 2, - 3, 0, 4, 85, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 72, 58, 59, 95, 0, 25, - 26, 78, 58, 59, 0, 0, 0, 79, 58, 59, - 0, 0, 0, 80, 58, 59, 60, 61, 0, 62, - 63, 64, 0, 60, 61, 0, 62, 63, 64, 60, - 61, 0, 62, 63, 64, 60, 61, 0, 62, 63, - 64, 81, 58, 59, 0, 0, 0, 82, 58, 59, - 0, 0, 0, 83, 58, 59, 0, 0, 0, 86, - 58, 59, 0, 60, 61, 0, 62, 63, 64, 60, - 61, 0, 62, 63, 64, 60, 61, 0, 62, 63, - 64, 60, 61, 0, 62, 63, 64, 87, 58, 59, - 0, 0, 0, 88, 58, 59, 0, 0, 0, 89, - 58, 59, 0, 0, 0, 90, 58, 59, 0, 60, - 61, 0, 62, 63, 64, 60, 61, 0, 62, 63, - 64, 60, 61, 0, 62, 63, 64, 60, 61, 0, - 62, 63, 64, 91, 58, 59, 0, 0, 0, 92, - 58, 59, 0, 0, 0, 94, 58, 59, 0, 0, - 0, 96, 58, 59, 0, 60, 61, 0, 62, 63, - 64, 60, 61, 0, 62, 63, 64, 60, 61, 0, - 62, 63, 64, 60, 61, 0, 62, 63, 64, 40, - 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 43, 44, 0, 0, 45, 46 + 49, 41, 50, 88, 0, 59, 60, 61, 51, 55, + 56, 57, 58, 52, 68, 53, 69, 70, 54, 71, + 73, 74, 72, 76, 77, 78, 79, 80, 62, 63, + 97, 64, 65, 66, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 0, 4, 89, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 75, 60, 61, + 99, 0, 26, 27, 81, 60, 61, 0, 0, 0, + 82, 60, 61, 0, 0, 0, 83, 60, 61, 0, + 62, 63, 0, 64, 65, 66, 0, 62, 63, 0, + 64, 65, 66, 62, 63, 0, 64, 65, 66, 62, + 63, 0, 64, 65, 66, 84, 60, 61, 0, 0, + 0, 85, 60, 61, 0, 0, 0, 86, 60, 61, + 0, 0, 0, 87, 60, 61, 0, 0, 62, 63, + 0, 64, 65, 66, 62, 63, 0, 64, 65, 66, + 62, 63, 0, 64, 65, 66, 62, 63, 0, 64, + 65, 66, 90, 60, 61, 0, 0, 0, 91, 60, + 61, 0, 0, 0, 92, 60, 61, 0, 0, 0, + 93, 60, 61, 0, 0, 62, 63, 0, 64, 65, + 66, 62, 63, 0, 64, 65, 66, 62, 63, 0, + 64, 65, 66, 62, 63, 0, 64, 65, 66, 94, + 60, 61, 0, 0, 0, 95, 60, 61, 0, 0, + 0, 96, 60, 61, 0, 0, 0, 98, 60, 61, + 0, 0, 62, 63, 0, 64, 65, 66, 62, 63, + 0, 64, 65, 66, 62, 63, 0, 64, 65, 66, + 62, 63, 0, 64, 65, 66, 100, 60, 61, 0, + 0, 0, 42, 43, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 63, 0, 64, 65, 66, 45, 46, 0, 0, 47, + 48 }; static const yytype_int8 yycheck[] = { - 26, 29, 26, 30, -1, 3, 4, 5, 30, 35, - 36, 37, 38, 30, 30, 41, 42, 30, 30, 45, - 46, 30, 48, 49, 50, 51, 52, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, -1, 0, - 1, -1, 3, 69, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 3, 4, 5, 93, -1, 30, - 31, 3, 4, 5, -1, -1, -1, 3, 4, 5, - -1, -1, -1, 3, 4, 5, 25, 26, -1, 28, - 29, 30, -1, 25, 26, -1, 28, 29, 30, 25, - 26, -1, 28, 29, 30, 25, 26, -1, 28, 29, - 30, 3, 4, 5, -1, -1, -1, 3, 4, 5, - -1, -1, -1, 3, 4, 5, -1, -1, -1, 3, - 4, 5, -1, 25, 26, -1, 28, 29, 30, 25, - 26, -1, 28, 29, 30, 25, 26, -1, 28, 29, - 30, 25, 26, -1, 28, 29, 30, 3, 4, 5, - -1, -1, -1, 3, 4, 5, -1, -1, -1, 3, - 4, 5, -1, -1, -1, 3, 4, 5, -1, 25, - 26, -1, 28, 29, 30, 25, 26, -1, 28, 29, - 30, 25, 26, -1, 28, 29, 30, 25, 26, -1, - 28, 29, 30, 3, 4, 5, -1, -1, -1, 3, + 27, 30, 30, 27, -1, 3, 4, 5, 31, 36, + 37, 38, 39, 31, 41, 31, 43, 44, 31, 31, + 47, 48, 31, 50, 51, 52, 53, 54, 26, 27, + 31, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 0, 1, -1, 3, 72, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 3, 4, 5, + 97, -1, 31, 32, 3, 4, 5, -1, -1, -1, + 3, 4, 5, -1, -1, -1, 3, 4, 5, -1, + 26, 27, -1, 29, 30, 31, -1, 26, 27, -1, + 29, 30, 31, 26, 27, -1, 29, 30, 31, 26, + 27, -1, 29, 30, 31, 3, 4, 5, -1, -1, + -1, 3, 4, 5, -1, -1, -1, 3, 4, 5, + -1, -1, -1, 3, 4, 5, -1, -1, 26, 27, + -1, 29, 30, 31, 26, 27, -1, 29, 30, 31, + 26, 27, -1, 29, 30, 31, 26, 27, -1, 29, + 30, 31, 3, 4, 5, -1, -1, -1, 3, 4, + 5, -1, -1, -1, 3, 4, 5, -1, -1, -1, + 3, 4, 5, -1, -1, 26, 27, -1, 29, 30, + 31, 26, 27, -1, 29, 30, 31, 26, 27, -1, + 29, 30, 31, 26, 27, -1, 29, 30, 31, 3, 4, 5, -1, -1, -1, 3, 4, 5, -1, -1, - -1, 3, 4, 5, -1, 25, 26, -1, 28, 29, - 30, 25, 26, -1, 28, 29, 30, 25, 26, -1, - 28, 29, 30, 25, 26, -1, 28, 29, 30, 3, - 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 26, -1, -1, 29, 30 + -1, 3, 4, 5, -1, -1, -1, 3, 4, 5, + -1, -1, 26, 27, -1, 29, 30, 31, 26, 27, + -1, 29, 30, 31, 26, 27, -1, 29, 30, 31, + 26, 27, -1, 29, 30, 31, 3, 4, 5, -1, + -1, -1, 3, 4, 5, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, + 27, -1, 29, 30, 31, 26, 27, -1, -1, 30, + 31 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 33, 0, 1, 3, 5, 6, 7, 8, 9, + 0, 34, 0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 30, 31, 34, 35, 36, + 20, 21, 22, 23, 24, 25, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 3, 4, 5, 25, 26, 29, 30, 46, 29, 30, - 30, 30, 30, 46, 46, 46, 46, 3, 4, 5, - 25, 26, 28, 29, 30, 47, 46, 46, 30, 30, - 46, 46, 3, 46, 46, 46, 46, 46, 3, 3, - 3, 3, 3, 3, 26, 46, 3, 3, 3, 3, - 3, 3, 3, 30, 3, 46, 3 + 47, 30, 3, 4, 5, 26, 27, 30, 31, 47, + 30, 31, 31, 31, 31, 47, 47, 47, 47, 3, + 4, 5, 26, 27, 29, 30, 31, 48, 47, 47, + 47, 31, 31, 47, 47, 3, 47, 47, 47, 47, + 47, 3, 3, 3, 3, 3, 3, 3, 27, 47, + 3, 3, 3, 3, 3, 3, 3, 31, 3, 47, + 3 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 32, 33, 33, 34, 34, 35, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 37, 37, 37, 38, - 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, - 43, 44, 44, 45, 45, 46, 46, 47, 47, 47, - 47, 47, 47, 47 + 0, 33, 34, 34, 35, 35, 36, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, + 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, + 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, + 48, 48, 48, 48, 48 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 1, 1, 4, 2, 4, 5, - 7, 4, 3, 4, 4, 4, 4, 4, 3, 3, - 3, 3, 4, 3, 1, 1, 1, 1, 1, 1, + 7, 4, 4, 3, 4, 4, 4, 4, 4, 3, + 3, 3, 3, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, - 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 1, 1, 1, 1, 1 }; @@ -1439,15 +1449,15 @@ yyreduce: switch (yyn) { case 6: -#line 108 "cmFortranParser.y" /* yacc.c:1646 */ +#line 109 "cmFortranParser.y" /* yacc.c:1646 */ { free((yyvsp[-3].string)); } -#line 1447 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1457 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 7: -#line 114 "cmFortranParser.y" /* yacc.c:1646 */ +#line 115 "cmFortranParser.y" /* yacc.c:1646 */ { if (cmFortranParserIsKeyword((yyvsp[-1].string), "interface")) { @@ -1457,11 +1467,11 @@ yyreduce: } free((yyvsp[-1].string)); } -#line 1461 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1471 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 8: -#line 124 "cmFortranParser.y" /* yacc.c:1646 */ +#line 125 "cmFortranParser.y" /* yacc.c:1646 */ { if (cmFortranParserIsKeyword((yyvsp[-3].string), "use")) { @@ -1491,11 +1501,11 @@ yyreduce: free((yyvsp[-3].string)); free((yyvsp[-2].string)); } -#line 1495 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1505 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 9: -#line 154 "cmFortranParser.y" /* yacc.c:1646 */ +#line 155 "cmFortranParser.y" /* yacc.c:1646 */ { if (cmFortranParserIsKeyword((yyvsp[-4].string), "use")) { @@ -1506,11 +1516,11 @@ yyreduce: free((yyvsp[-4].string)); free((yyvsp[-2].string)); } -#line 1510 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1520 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 10: -#line 165 "cmFortranParser.y" /* yacc.c:1646 */ +#line 166 "cmFortranParser.y" /* yacc.c:1646 */ { if (cmFortranParserIsKeyword((yyvsp[-6].string), "use") && cmFortranParserIsKeyword((yyvsp[-4].string), "non_intrinsic") ) @@ -1523,11 +1533,11 @@ yyreduce: free((yyvsp[-4].string)); free((yyvsp[-2].string)); } -#line 1527 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1537 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 11: -#line 178 "cmFortranParser.y" /* yacc.c:1646 */ +#line 179 "cmFortranParser.y" /* yacc.c:1646 */ { if (cmFortranParserIsKeyword((yyvsp[-3].string), "include")) { @@ -1538,129 +1548,140 @@ yyreduce: free((yyvsp[-3].string)); free((yyvsp[-2].string)); } -#line 1542 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1552 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 12: -#line 189 "cmFortranParser.y" /* yacc.c:1646 */ +#line 190 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); - cmFortranParser_RuleInclude(parser, (yyvsp[-2].string)); + cmFortranParser_RuleLineDirective(parser, (yyvsp[-2].string)); free((yyvsp[-2].string)); } -#line 1553 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1563 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 13: -#line 196 "cmFortranParser.y" /* yacc.c:1646 */ +#line 197 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleInclude(parser, (yyvsp[-2].string)); free((yyvsp[-2].string)); } -#line 1564 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1574 "cmFortranParser.cxx" /* yacc.c:1646 */ break; case 14: -#line 203 "cmFortranParser.y" /* yacc.c:1646 */ +#line 204 "cmFortranParser.y" /* yacc.c:1646 */ + { + cmFortranParser* parser = + cmFortran_yyget_extra(yyscanner); + cmFortranParser_RuleInclude(parser, (yyvsp[-2].string)); + free((yyvsp[-2].string)); + } +#line 1585 "cmFortranParser.cxx" /* yacc.c:1646 */ + break; + + case 15: +#line 211 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleDefine(parser, (yyvsp[-2].string)); free((yyvsp[-2].string)); } -#line 1574 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1595 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 15: -#line 209 "cmFortranParser.y" /* yacc.c:1646 */ + case 16: +#line 217 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleUndef(parser, (yyvsp[-2].string)); free((yyvsp[-2].string)); } -#line 1584 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1605 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 16: -#line 215 "cmFortranParser.y" /* yacc.c:1646 */ + case 17: +#line 223 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string)); free((yyvsp[-2].string)); } -#line 1594 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1615 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 17: -#line 221 "cmFortranParser.y" /* yacc.c:1646 */ + case 18: +#line 229 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string)); free((yyvsp[-2].string)); } -#line 1604 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1625 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 18: -#line 227 "cmFortranParser.y" /* yacc.c:1646 */ + case 19: +#line 235 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleIf(parser); } -#line 1613 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1634 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 19: -#line 232 "cmFortranParser.y" /* yacc.c:1646 */ + case 20: +#line 240 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleElif(parser); } -#line 1622 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1643 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 20: -#line 237 "cmFortranParser.y" /* yacc.c:1646 */ + case 21: +#line 245 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleElse(parser); } -#line 1631 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1652 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 21: -#line 242 "cmFortranParser.y" /* yacc.c:1646 */ + case 22: +#line 250 "cmFortranParser.y" /* yacc.c:1646 */ { cmFortranParser* parser = cmFortran_yyget_extra(yyscanner); cmFortranParser_RuleEndif(parser); } -#line 1640 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1661 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 22: -#line 247 "cmFortranParser.y" /* yacc.c:1646 */ + case 23: +#line 255 "cmFortranParser.y" /* yacc.c:1646 */ { free((yyvsp[-3].string)); } -#line 1648 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1669 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 47: -#line 269 "cmFortranParser.y" /* yacc.c:1646 */ + case 48: +#line 277 "cmFortranParser.y" /* yacc.c:1646 */ { free ((yyvsp[0].string)); } -#line 1654 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1675 "cmFortranParser.cxx" /* yacc.c:1646 */ break; - case 48: -#line 270 "cmFortranParser.y" /* yacc.c:1646 */ + case 49: +#line 278 "cmFortranParser.y" /* yacc.c:1646 */ { free ((yyvsp[0].string)); } -#line 1660 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1681 "cmFortranParser.cxx" /* yacc.c:1646 */ break; -#line 1664 "cmFortranParser.cxx" /* yacc.c:1646 */ +#line 1685 "cmFortranParser.cxx" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1890,6 +1911,6 @@ yyreturn: #endif return yyresult; } -#line 278 "cmFortranParser.y" /* yacc.c:1906 */ +#line 286 "cmFortranParser.y" /* yacc.c:1906 */ /* End of grammar */ diff --git a/Source/cmFortranParser.h b/Source/cmFortranParser.h index 156c38a..cdaf46b 100644 --- a/Source/cmFortranParser.h +++ b/Source/cmFortranParser.h @@ -55,6 +55,8 @@ void cmFortranParser_Error(cmFortranParser* parser, const char* message); void cmFortranParser_RuleUse(cmFortranParser* parser, const char* name); +void cmFortranParser_RuleLineDirective(cmFortranParser* parser, + const char* filename); void cmFortranParser_RuleInclude(cmFortranParser* parser, const char* name); void cmFortranParser_RuleModule(cmFortranParser* parser, diff --git a/Source/cmFortranParser.y b/Source/cmFortranParser.y index 996bef6..83f441a 100644 --- a/Source/cmFortranParser.y +++ b/Source/cmFortranParser.y @@ -1,7 +1,7 @@ %{ /*============================================================================ CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + Copyright 2000-2015 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. @@ -85,6 +85,7 @@ static bool cmFortranParserIsKeyword(const char* word, /*-------------------------------------------------------------------------*/ /* Tokens */ %token EOSTMT ASSIGNMENT_OP GARBAGE +%token CPP_LINE_DIRECTIVE %token CPP_INCLUDE F90PPR_INCLUDE COCO_INCLUDE %token F90PPR_DEFINE CPP_DEFINE F90PPR_UNDEF CPP_UNDEF %token CPP_IFDEF CPP_IFNDEF CPP_IF CPP_ELSE CPP_ELIF CPP_ENDIF @@ -185,6 +186,13 @@ keyword_stmt: free($1); free($2); } +| CPP_LINE_DIRECTIVE STRING other EOSTMT + { + cmFortranParser* parser = + cmFortran_yyget_extra(yyscanner); + cmFortranParser_RuleLineDirective(parser, $2); + free($2); + } | CPP_INCLUDE_ANGLE other EOSTMT { cmFortranParser* parser = diff --git a/Source/cmFortranParserImpl.cxx b/Source/cmFortranParserImpl.cxx index a09c5459..c175e62 100644 --- a/Source/cmFortranParserImpl.cxx +++ b/Source/cmFortranParserImpl.cxx @@ -210,6 +210,32 @@ void cmFortranParser_RuleUse(cmFortranParser* parser, } //---------------------------------------------------------------------------- +void cmFortranParser_RuleLineDirective(cmFortranParser* parser, + const char* filename) +{ + // This is a #line directive naming a file encountered during preprocessing. + std::string included = filename; + + // Skip #line directives referencing non-files like + // "" or "". + if (included.empty() || included[0] == '<') + { + return; + } + + // Fix windows file path separators since our lexer does not + // process escape sequences in string literals. + cmSystemTools::ReplaceString(included, "\\\\", "\\"); + cmSystemTools::ConvertToUnixSlashes(included); + + // Save the named file as included in the source. + if (cmSystemTools::FileExists(included)) + { + parser->Info.Includes.insert(included); + } +} + +//---------------------------------------------------------------------------- void cmFortranParser_RuleInclude(cmFortranParser* parser, const char* name) { diff --git a/Source/cmFortranParserTokens.h b/Source/cmFortranParserTokens.h index df1aec3..ac49840 100644 --- a/Source/cmFortranParserTokens.h +++ b/Source/cmFortranParserTokens.h @@ -48,64 +48,66 @@ extern int cmFortran_yydebug; EOSTMT = 258, ASSIGNMENT_OP = 259, GARBAGE = 260, - CPP_INCLUDE = 261, - F90PPR_INCLUDE = 262, - COCO_INCLUDE = 263, - F90PPR_DEFINE = 264, - CPP_DEFINE = 265, - F90PPR_UNDEF = 266, - CPP_UNDEF = 267, - CPP_IFDEF = 268, - CPP_IFNDEF = 269, - CPP_IF = 270, - CPP_ELSE = 271, - CPP_ELIF = 272, - CPP_ENDIF = 273, - F90PPR_IFDEF = 274, - F90PPR_IFNDEF = 275, - F90PPR_IF = 276, - F90PPR_ELSE = 277, - F90PPR_ELIF = 278, - F90PPR_ENDIF = 279, - COMMA = 280, - DCOLON = 281, - CPP_TOENDL = 282, - UNTERMINATED_STRING = 283, - STRING = 284, - WORD = 285, - CPP_INCLUDE_ANGLE = 286 + CPP_LINE_DIRECTIVE = 261, + CPP_INCLUDE = 262, + F90PPR_INCLUDE = 263, + COCO_INCLUDE = 264, + F90PPR_DEFINE = 265, + CPP_DEFINE = 266, + F90PPR_UNDEF = 267, + CPP_UNDEF = 268, + CPP_IFDEF = 269, + CPP_IFNDEF = 270, + CPP_IF = 271, + CPP_ELSE = 272, + CPP_ELIF = 273, + CPP_ENDIF = 274, + F90PPR_IFDEF = 275, + F90PPR_IFNDEF = 276, + F90PPR_IF = 277, + F90PPR_ELSE = 278, + F90PPR_ELIF = 279, + F90PPR_ENDIF = 280, + COMMA = 281, + DCOLON = 282, + CPP_TOENDL = 283, + UNTERMINATED_STRING = 284, + STRING = 285, + WORD = 286, + CPP_INCLUDE_ANGLE = 287 }; #endif /* Tokens. */ #define EOSTMT 258 #define ASSIGNMENT_OP 259 #define GARBAGE 260 -#define CPP_INCLUDE 261 -#define F90PPR_INCLUDE 262 -#define COCO_INCLUDE 263 -#define F90PPR_DEFINE 264 -#define CPP_DEFINE 265 -#define F90PPR_UNDEF 266 -#define CPP_UNDEF 267 -#define CPP_IFDEF 268 -#define CPP_IFNDEF 269 -#define CPP_IF 270 -#define CPP_ELSE 271 -#define CPP_ELIF 272 -#define CPP_ENDIF 273 -#define F90PPR_IFDEF 274 -#define F90PPR_IFNDEF 275 -#define F90PPR_IF 276 -#define F90PPR_ELSE 277 -#define F90PPR_ELIF 278 -#define F90PPR_ENDIF 279 -#define COMMA 280 -#define DCOLON 281 -#define CPP_TOENDL 282 -#define UNTERMINATED_STRING 283 -#define STRING 284 -#define WORD 285 -#define CPP_INCLUDE_ANGLE 286 +#define CPP_LINE_DIRECTIVE 261 +#define CPP_INCLUDE 262 +#define F90PPR_INCLUDE 263 +#define COCO_INCLUDE 264 +#define F90PPR_DEFINE 265 +#define CPP_DEFINE 266 +#define F90PPR_UNDEF 267 +#define CPP_UNDEF 268 +#define CPP_IFDEF 269 +#define CPP_IFNDEF 270 +#define CPP_IF 271 +#define CPP_ELSE 272 +#define CPP_ELIF 273 +#define CPP_ENDIF 274 +#define F90PPR_IFDEF 275 +#define F90PPR_IFNDEF 276 +#define F90PPR_IF 277 +#define F90PPR_ELSE 278 +#define F90PPR_ELIF 279 +#define F90PPR_ENDIF 280 +#define COMMA 281 +#define DCOLON 282 +#define CPP_TOENDL 283 +#define UNTERMINATED_STRING 284 +#define STRING 285 +#define WORD 286 +#define CPP_INCLUDE_ANGLE 287 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -116,7 +118,7 @@ union YYSTYPE char* string; -#line 120 "cmFortranParserTokens.h" /* yacc.c:1909 */ +#line 122 "cmFortranParserTokens.h" /* yacc.c:1909 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 ----------------------------------------------------------------------- Summary of changes: Source/cmFortranLexer.cxx | 596 +++++++++++++++++++++------------------- Source/cmFortranLexer.h | 16 +- Source/cmFortranLexer.in.l | 3 +- Source/cmFortranParser.cxx | 473 ++++++++++++++++--------------- Source/cmFortranParser.h | 2 + Source/cmFortranParser.y | 10 +- Source/cmFortranParserImpl.cxx | 26 ++ Source/cmFortranParserTokens.h | 108 ++++---- 8 files changed, 658 insertions(+), 576 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 2 16:06:04 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 2 Nov 2015 16:06:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1229-g7b24b3b Message-ID: <20151102210604.6A17AC26D7@public.kitware.com> 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 7b24b3bb11baee969d6a8942f08c8f6fbe108f35 (commit) via 683c4787ed58881343f8f776e04379dbaa6a21fd (commit) from e105df31069d07cd3aa3da3d1671e89456194c72 (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=7b24b3bb11baee969d6a8942f08c8f6fbe108f35 commit 7b24b3bb11baee969d6a8942f08c8f6fbe108f35 Merge: e105df3 683c478 Author: Brad King AuthorDate: Mon Nov 2 16:06:03 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 2 16:06:03 2015 -0500 Merge topic 'vs-show-def-files' into next 683c4787 cmGeneratorTarget: Fix IMPLEMENT_VISIT_IMPL for template data types https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=683c4787ed58881343f8f776e04379dbaa6a21fd commit 683c4787ed58881343f8f776e04379dbaa6a21fd Author: Brad King AuthorDate: Mon Nov 2 16:02:59 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 16:02:59 2015 -0500 cmGeneratorTarget: Fix IMPLEMENT_VISIT_IMPL for template data types Update spacing near the DATATYPE reference to prevent construction of `>>` as a preprocessing token if DATATYPE is a template type. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 624ec9a..40afc0e 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -573,7 +573,7 @@ static void handleSystemIncludesDep(cmLocalGenerator *lg, { \ std::vector sourceFiles; \ this->GetSourceFiles(sourceFiles, config); \ - TagVisitor visitor(this, data); \ + TagVisitor< DATA##Tag DATATYPE > visitor(this, data); \ for(std::vector::const_iterator si = sourceFiles.begin(); \ si != sourceFiles.end(); ++si) \ { \ ----------------------------------------------------------------------- Summary of changes: Source/cmGeneratorTarget.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Nov 3 00:01:10 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 3 Nov 2015 00:01:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc2-479-gb87bed0 Message-ID: <20151103050110.8B252C2338@public.kitware.com> 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, master has been updated via b87bed0ff6d724a91bbe5ee97b5608eed588d1af (commit) from 7748a02c3f7d028af13d4fc2c83e7181d11397e9 (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=b87bed0ff6d724a91bbe5ee97b5608eed588d1af commit b87bed0ff6d724a91bbe5ee97b5608eed588d1af Author: Kitware Robot AuthorDate: Tue Nov 3 00:01:08 2015 -0500 Commit: Kitware Robot CommitDate: Tue Nov 3 00:01:08 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 9f6bfbf..814f0ef 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151102) +set(CMake_VERSION_PATCH 20151103) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From daniele.domenichelli at gmail.com Tue Nov 3 05:04:14 2015 From: daniele.domenichelli at gmail.com (Daniele E. Domenichelli) Date: Tue, 3 Nov 2015 05:04:14 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1231-g4668f9e Message-ID: <20151103100414.9AB40C2545@public.kitware.com> 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 4668f9ed6842fee90007c6134710c0c2d9aa787d (commit) via 5f933bd6620e6abf54268087d6714691cec57194 (commit) from 7b24b3bb11baee969d6a8942f08c8f6fbe108f35 (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=4668f9ed6842fee90007c6134710c0c2d9aa787d commit 4668f9ed6842fee90007c6134710c0c2d9aa787d Merge: 7b24b3b 5f933bd Author: Daniele E. Domenichelli AuthorDate: Tue Nov 3 05:04:13 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 3 05:04:13 2015 -0500 Merge topic 'FindGTK2_GTK2_TARGETS' into next 5f933bd6 FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5f933bd6620e6abf54268087d6714691cec57194 commit 5f933bd6620e6abf54268087d6714691cec57194 Author: Daniele E. Domenichelli AuthorDate: Fri Oct 30 12:33:53 2015 +0100 Commit: Daniele E. Domenichelli CommitDate: Mon Nov 2 12:38:19 2015 +0100 FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON Also add GTK2_TARGETS variable containing all imported targets. Previously, the GTK2_LIBRARIES variable was filled with the paths to the libraries, and only the GTK2_XXX_LIBRARY variables contained the imported targets. diff --git a/Help/release/dev/FindGTK2_GTK2_TARGETS.rst b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst new file mode 100644 index 0000000..216e2e8 --- /dev/null +++ b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst @@ -0,0 +1,7 @@ +FindGTK2_GTK2_TARGETS +--------------------- + +* The `GTK2_LIBRARIES` variable created by the :module:`FindGTK2` module + now contains the targets instead of the paths to the libraries if + `GTK2_USE_IMPORTED_TARGETS` is enabled. Moreover it adds a new + `GTK2_TARGETS` variable containing all the targets imported. diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index ab4ef3e..6e4a7f2 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -34,6 +34,7 @@ # GTK2_FOUND - Were all of your specified components found? # GTK2_INCLUDE_DIRS - All include directories # GTK2_LIBRARIES - All libraries +# GTK2_TARGETS - All imported targets # GTK2_DEFINITIONS - Additional compiler flags # # @@ -550,6 +551,9 @@ function(_GTK2_ADD_TARGET _var) add_library(GTK2::${_basename} UNKNOWN IMPORTED) + set(GTK2_TARGETS ${GTK2_TARGETS} GTK2::${_basename}) + set(GTK2_TARGETS ${GTK2_TARGETS} PARENT_SCOPE) + if(GTK2_${_var}_LIBRARY_RELEASE) set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_RELEASE "${GTK2_${_var}_LIBRARY_RELEASE}" ) @@ -602,6 +606,7 @@ endfunction() set(GTK2_FOUND) set(GTK2_INCLUDE_DIRS) set(GTK2_LIBRARIES) +set(GTK2_TARGETS) set(GTK2_DEFINITIONS) if(NOT GTK2_FIND_COMPONENTS) @@ -940,6 +945,11 @@ foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) endif() endforeach() +if(GTK2_USE_IMPORTED_TARGETS) + set(GTK2_LIBRARIES ${GTK2_TARGETS}) +endif() + + if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) set(GTK2_FOUND true) else() @@ -951,6 +961,7 @@ else() set(GTK2_VERSION_PATCH) set(GTK2_INCLUDE_DIRS) set(GTK2_LIBRARIES) + set(GTK2_TARGETS) set(GTK2_DEFINITIONS) endif() ----------------------------------------------------------------------- Summary of changes: Help/release/dev/FindGTK2_GTK2_TARGETS.rst | 7 +++++++ Modules/FindGTK2.cmake | 11 +++++++++++ 2 files changed, 18 insertions(+) create mode 100644 Help/release/dev/FindGTK2_GTK2_TARGETS.rst hooks/post-receive -- CMake From domen.vrankar at gmail.com Tue Nov 3 12:24:41 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Tue, 3 Nov 2015 12:24:41 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc2-1234-g44f5dda Message-ID: <20151103172441.88AA5C23B1@public.kitware.com> 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 44f5dda355f3ac3763c0e47fac99c292835b1ee1 (commit) via 341cd934897b3e37319b978113a1fdf9bea21c6d (commit) via b87bed0ff6d724a91bbe5ee97b5608eed588d1af (commit) from 4668f9ed6842fee90007c6134710c0c2d9aa787d (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=44f5dda355f3ac3763c0e47fac99c292835b1ee1 commit 44f5dda355f3ac3763c0e47fac99c292835b1ee1 Merge: 4668f9e 341cd93 Author: Domen Vrankar AuthorDate: Tue Nov 3 12:24:40 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 3 12:24:40 2015 -0500 Merge topic 'cpack-deb-compression-scheme-test' into next 341cd934 CPackDeb: ctest tests for compression scheme leak b87bed0f CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=341cd934897b3e37319b978113a1fdf9bea21c6d commit 341cd934897b3e37319b978113a1fdf9bea21c6d Author: Raffi Enficiaud AuthorDate: Tue Nov 3 18:18:35 2015 +0100 Commit: Domen Vrankar CommitDate: Tue Nov 3 18:18:35 2015 +0100 CPackDeb: ctest tests for compression scheme leak Test that changing compression of debian package content does not affect DEBIAN/ files which must be gzipped diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index ae61bca..e13dc79 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1035,7 +1035,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release "components-description2" "components-shlibdeps1" "components-depend1" - "components-depend2") + "components-depend2" + "compression") set(CPackGen "DEB") set(CPackRun_CPackGen "-DCPackGen=${CPackGen}") diff --git a/Tests/CPackComponentsDEB/MyLibCPackConfig-compression.cmake.in b/Tests/CPackComponentsDEB/MyLibCPackConfig-compression.cmake.in new file mode 100644 index 0000000..ff18834 --- /dev/null +++ b/Tests/CPackComponentsDEB/MyLibCPackConfig-compression.cmake.in @@ -0,0 +1,11 @@ +# +# Test that setting the compression produces valid +# packages (compression does not leak to the DEBIAN/ files that use gzip) +# + +if(CPACK_GENERATOR MATCHES "DEB") + set(CPACK_DEB_COMPONENT_INSTALL "OFF") +endif() + +set(CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE) +set(CPACK_DEBIAN_COMPRESSION_TYPE xz) diff --git a/Tests/CPackComponentsDEB/RunCPackVerifyResult-compression.cmake b/Tests/CPackComponentsDEB/RunCPackVerifyResult-compression.cmake new file mode 100644 index 0000000..2175ada --- /dev/null +++ b/Tests/CPackComponentsDEB/RunCPackVerifyResult-compression.cmake @@ -0,0 +1,54 @@ +if(NOT CPackComponentsDEB_SOURCE_DIR) + message(FATAL_ERROR "CPackComponentsDEB_SOURCE_DIR not set") +endif() + +include(${CPackComponentsDEB_SOURCE_DIR}/RunCPackVerifyResult.cmake) + +# TODO: currently debian doens't produce lower cased names +set(expected_file_mask "${CPackComponentsDEB_BINARY_DIR}/MyLib-*.deb") +set(expected_count 1) + +set(actual_output) +run_cpack(actual_output + CPack_output + CPack_error + EXPECTED_FILE_MASK "${expected_file_mask}" + CONFIG_ARGS "${config_args}" + CONFIG_VERBOSE "${config_verbose}") + +if(NOT actual_output) + message(STATUS "expected_count='${expected_count}'") + message(STATUS "expected_file_mask='${expected_file_mask}'") + message(STATUS "actual_output_files='${actual_output}'") + message(FATAL_ERROR "error: expected_files do not exist: CPackComponentsDEB test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error}") +endif() + +list(LENGTH actual_output actual_count) +if(NOT actual_count EQUAL expected_count) + message(STATUS "actual_count='${actual_count}'") + message(FATAL_ERROR "error: expected_count=${expected_count} does not match actual_count=${actual_count}: CPackComponents test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error})") +endif() + + +# dpkg-deb checks +find_program(DPKGDEB_EXECUTABLE dpkg-deb) +if(DPKGDEB_EXECUTABLE) + set(dpkgdeb_output_errors_all "") + foreach(_f IN LISTS actual_output) + run_dpkgdeb(dpkg_output + FILENAME "${_f}" + ) + + # message(FATAL_ERROR "output = '${dpkg_output}'") + if("${dpkg_output}" STREQUAL "") + set(dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}" + "dpkg-deb: ${_f}: empty content returned by dpkg-deb") + endif() + endforeach() + + if(NOT "${dpkgdeb_output_errors_all}" STREQUAL "") + message(FATAL_ERROR "dpkg-deb checks failed:\n${dpkgdeb_output_errors_all}") + endif() +else() + message("dpkg-deb executable not found - skipping dpkg-deb test") +endif() diff --git a/Tests/CPackComponentsDEB/RunCPackVerifyResult.cmake b/Tests/CPackComponentsDEB/RunCPackVerifyResult.cmake index bf9f81d..b4e567c 100644 --- a/Tests/CPackComponentsDEB/RunCPackVerifyResult.cmake +++ b/Tests/CPackComponentsDEB/RunCPackVerifyResult.cmake @@ -86,7 +86,7 @@ function(run_lintian lintian_output) message(FATAL_ERROR "error: run_lintian needs FILENAME to be set") endif() - # run lintian + # run dpkg-deb execute_process(COMMAND ${LINTIAN_EXECUTABLE} ${run_lintian_deb_FILENAME} WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" OUTPUT_VARIABLE LINTIAN_OUTPUT @@ -167,6 +167,10 @@ function(run_dpkgdeb dpkg_deb_output) ERROR_VARIABLE DPKGDEB_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE ) + if(NOT ("${DPKGDEB_RESULT}" EQUAL "0")) + message(FATAL_ERROR "Error '${DPKGDEB_RESULT}' returned by dpkg-deb: '${DPKGDEB_ERROR}'") + endif() + set(${dpkg_deb_output} "${DPKGDEB_OUTPUT}" PARENT_SCOPE) else() message(FATAL_ERROR "run_dpkgdeb called without dpkg-deb executable being present") ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- Tests/CMakeLists.txt | 3 +- .../MyLibCPackConfig-compression.cmake.in | 11 +++++++ ...make => RunCPackVerifyResult-compression.cmake} | 32 +++----------------- .../CPackComponentsDEB/RunCPackVerifyResult.cmake | 6 +++- 5 files changed, 23 insertions(+), 31 deletions(-) create mode 100644 Tests/CPackComponentsDEB/MyLibCPackConfig-compression.cmake.in copy Tests/CPackComponentsDEB/{RunCPackVerifyResult-components-lintian-dpkgdeb-checks.cmake => RunCPackVerifyResult-compression.cmake} (61%) hooks/post-receive -- CMake From robert.maynard at kitware.com Tue Nov 3 13:16:16 2015 From: robert.maynard at kitware.com (Robert Maynard) Date: Tue, 3 Nov 2015 13:16:16 -0500 (EST) Subject: [Cmake-commits] CMake annotated tag, v3.4.0-rc3, created. v3.4.0-rc3 Message-ID: <20151103181616.60778C1820@public.kitware.com> 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 annotated tag, v3.4.0-rc3 has been created at 9e2d79704b97ca3806eca72aeb818aca984f5bb0 (tag) tagging bc4b6aa68dd48ffd567ae7a24abd8911a689c38a (commit) replaces v3.4.0-rc2 tagged by Brad King on Mon Nov 2 14:27:10 2015 -0500 - Log ----------------------------------------------------------------- CMake 3.4.0-rc3 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWN7kOAAoJEC0s7xA0khaE1OEQALLWC7Z94iNoXGdrD9JgmA5I AMnHiGJsp9QT++nepmohhBeXYb+BG0YoTsz1FEhkjiraS+ZMtb2ohiZg+3xMdacI uEtLZdtCVmYDOeUgwbE8gL/DnoffdziQfhx95NH/9GsWWF3eL0s5rjb/jEubFBZE HtK1qWRn4EGqZX5AhaA2vli1dyn+b5lzdyNH0rU/S1as/jMj0x/8g7yGa3g1Aard V55foaubZdWXKYWjvUWj2WmDxlcKdA/idr6tgH+f+OVqMZeD8ZQ27xQgEgaXlLEO rNq0OS/3y0k8JLl5185LfgW32F6PA9Bv3Ty9/IuA6ZzxK4J4FVfjwZLTdVry4hb/ 9zjfQwROlN/I6wN4QDnd6Gjdee5UeRdRGPdUnvIboSZE5Lkh24/wgWxVaSL7+n9M mtHGiJ/bKY+YfJvM2iEDZJDLarePcJNCPvPnFDaYo1QoU9w+3DemOQ+IedFO2ifN S9ZSw6FkIOvxPaMBACrDvdsr8FVwIyc9gccczzFS9FTSzQB4oAwyHHehSiUjuHqW sG4Ro0wCibUIGqi95OnWpxi86tfB4GrrYDHz+Xjm5uF6ii4YOi1No5wo3Jj4QGqf /We2oc4gBTIfGJzvylyavT8DhmnKFMy2oFo6MvXp0kX+/u96t/WhSW45ucX+UEsX 0A5xEE/2E2n0Ce9EI47E =a83C -----END PGP SIGNATURE----- Andrew Shaitorov (1): VS: Add support for `.resw` files (#15811) Brad King (14): Merge branch 'doc-add_executable-typo' into release CTest: Fix regression in handling of a RUN_SERIAL test that fails Merge branch 'fix-test-RUN_SERIAL-failure-regression' into release Merge branch 'cpack-deb-fakeroot-removal' into release Intel: Recognize MSVC version for Intel Fortran 2016 (#15809) Revert "cmQtAutoGenerators: Fix rcc invocation for Qt 5.0 and 5.1 (#15644)" Merge branch 'vs-resw-files' into release Merge branch 'backport-revert-autorcc-qt-5.1' into release Merge branch 'intel-fortran-2016' into release find_program: Fix regression in finding an already-known path Merge branch 'fix-find_program-regression' into release Help: Document target properties setting Info.plist fields (#15820) Merge branch 'doc-apple-info-plist-properties' into release CMake 3.4.0-rc3 Christopher Dembia (1): Help: Add missing parenthesis in add_executable docs Raffi Enficiaud (1): CPackDEB: Use proper compression scheme for control.tar.gz ----------------------------------------------------------------------- hooks/post-receive -- CMake From eike at sf-mail.de Tue Nov 3 17:05:53 2015 From: eike at sf-mail.de (Rolf Eike Beer) Date: Tue, 3 Nov 2015 17:05:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1219-g6dfbd02 Message-ID: <20151103220553.8B262C245D@public.kitware.com> 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 6dfbd02e6455d25b98672cd366408f8746557fc5 (commit) via b1efb0233e9c925090bf1eb44c3c1cfb8e186764 (commit) from 44f5dda355f3ac3763c0e47fac99c292835b1ee1 (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=6dfbd02e6455d25b98672cd366408f8746557fc5 commit 6dfbd02e6455d25b98672cd366408f8746557fc5 Merge: 44f5dda b1efb02 Author: Rolf Eike Beer AuthorDate: Tue Nov 3 17:05:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 3 17:05:52 2015 -0500 Merge topic 'find-cuda-dl' into next b1efb023 FindCUDA: drop CUDA_dl_LIBRARY https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b1efb0233e9c925090bf1eb44c3c1cfb8e186764 commit b1efb0233e9c925090bf1eb44c3c1cfb8e186764 Author: Rolf Eike Beer AuthorDate: Tue Nov 3 23:00:09 2015 +0100 Commit: Rolf Eike Beer CommitDate: Tue Nov 3 23:04:29 2015 +0100 FindCUDA: drop CUDA_dl_LIBRARY There is the global CMAKE_DL_LIBS setting which can be used instead. There are even platforms where this is either empty because those functions are part of the libc or is called entirely different, so this code wouldn't work reliable anyway. diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake index 1fc582f..6a21078 100644 --- a/Modules/FindCUDA.cmake +++ b/Modules/FindCUDA.cmake @@ -764,13 +764,9 @@ if(CUDA_USE_STATIC_CUDA_RUNTIME) if (NOT APPLE) # Here is librt that has things such as, clock_gettime, shm_open, and shm_unlink. find_library(CUDA_rt_LIBRARY rt) - find_library(CUDA_dl_LIBRARY dl) if (NOT CUDA_rt_LIBRARY) message(WARNING "Expecting to find librt for libcudart_static, but didn't find it.") endif() - if (NOT CUDA_dl_LIBRARY) - message(WARNING "Expecting to find libdl for libcudart_static, but didn't find it.") - endif() endif() endif() endif() @@ -793,13 +789,10 @@ set(CUDA_LIBRARIES) if(CUDA_BUILD_EMULATION AND CUDA_CUDARTEMU_LIBRARY) list(APPEND CUDA_LIBRARIES ${CUDA_CUDARTEMU_LIBRARY}) elseif(CUDA_USE_STATIC_CUDA_RUNTIME AND CUDA_cudart_static_LIBRARY) - list(APPEND CUDA_LIBRARIES ${CUDA_cudart_static_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) + list(APPEND CUDA_LIBRARIES ${CUDA_cudart_static_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) if (CUDA_rt_LIBRARY) list(APPEND CUDA_LIBRARIES ${CUDA_rt_LIBRARY}) endif() - if (CUDA_dl_LIBRARY) - list(APPEND CUDA_LIBRARIES ${CUDA_dl_LIBRARY}) - endif() if(APPLE) # We need to add the default path to the driver (libcuda.dylib) as an rpath, so that # the static cuda runtime can find it at runtime. ----------------------------------------------------------------------- Summary of changes: Modules/FindCUDA.cmake | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) hooks/post-receive -- CMake From domen.vrankar at gmail.com Tue Nov 3 18:24:14 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Tue, 3 Nov 2015 18:24:14 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1222-ged645b3 Message-ID: <20151103232414.F0ACAC1FF8@public.kitware.com> 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 ed645b3a720e7d3df63aa39da3883a994e74a298 (commit) via 76f0fd05a5fc25eb8a3c86aae18371c02417f0b0 (commit) via 0cb1469e2babd1af11d2c290c6dc24c7c313422a (commit) from 6dfbd02e6455d25b98672cd366408f8746557fc5 (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=ed645b3a720e7d3df63aa39da3883a994e74a298 commit ed645b3a720e7d3df63aa39da3883a994e74a298 Merge: 6dfbd02 76f0fd0 Author: Domen Vrankar AuthorDate: Tue Nov 3 18:24:13 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 3 18:24:13 2015 -0500 Merge topic 'cpack-deb-config-file-source-field' into next 76f0fd05 CPackDEB: added config file optional Source field 0cb1469e CPackDEB: minor documentation and debug logging fixes diff --cc Tests/CMakeLists.txt index e13dc79,d42a322..f381758 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@@ -1033,10 -1033,10 +1033,11 @@@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=de set(DEB_CONFIGURATIONS_TO_TEST "components-lintian-dpkgdeb-checks" "components-description1" "components-description2" + "components-source" "components-shlibdeps1" "components-depend1" - "components-depend2") + "components-depend2" + "compression") set(CPackGen "DEB") set(CPackRun_CPackGen "-DCPackGen=${CPackGen}") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=76f0fd05a5fc25eb8a3c86aae18371c02417f0b0 commit 76f0fd05a5fc25eb8a3c86aae18371c02417f0b0 Author: Raffi Enficiaud AuthorDate: Wed Nov 4 00:19:58 2015 +0100 Commit: Domen Vrankar CommitDate: Wed Nov 4 00:19:58 2015 +0100 CPackDEB: added config file optional Source field diff --git a/Help/release/dev/cpack-deb-config-file-source-field.rst b/Help/release/dev/cpack-deb-config-file-source-field.rst new file mode 100644 index 0000000..806aeac --- /dev/null +++ b/Help/release/dev/cpack-deb-config-file-source-field.rst @@ -0,0 +1,6 @@ +cpack-deb-config-file-source-field +---------------------------------- + +* The :module:`CPackDeb` module learned to set optional config + file `Source` field - monolithic and per-component variable. + See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`. diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 84c9243..ba21029 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -354,7 +354,28 @@ # set by Debian policy # https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners # - +# .. variable:: CPACK_DEBIAN_PACKAGE_SOURCE +# CPACK_DEBIAN__PACKAGE_SOURCE +# +# Sets the `Source` field of the binary Debian package. +# When the binary package name is not the same as the source package name +# (in particular when several components/binaries are generated from one +# source) the source from which the binary has been generated should be +# indicated with the field `Source`. +# +# * Mandatory : NO +# * Default : +# +# - An empty string for non-component based installations +# - :variable:`CPACK_DEBIAN_PACKAGE_SOURCE` for component-based +# installations. +# +# See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source +# +# .. note:: +# +# This value is not interpreted. It is possible to pass an optional +# revision number of the referenced source package as well. #============================================================================= # Copyright 2007-2009 Kitware, Inc. @@ -554,6 +575,15 @@ function(cpack_deb_prepare_package_vars) ) endif() + # Source: (optional) + # in case several packages are constructed from a unique source + # (multipackaging), the source may be indicated as well. + # The source might contain a version if the generated package + # version is different from the source version + if(NOT CPACK_DEBIAN_PACKAGE_SOURCE) + set(CPACK_DEBIAN_PACKAGE_SOURCE "") + endif() + # have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES), # this returns the successful find_package() calls, maybe this can help # Depends: @@ -563,7 +593,7 @@ function(cpack_deb_prepare_package_vars) # if per-component dependency, overrides the global CPACK_DEBIAN_PACKAGE_${dependency_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES) + foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE) set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${dependency_type_}") # if set, overrides the global dependency @@ -681,6 +711,7 @@ function(cpack_deb_prepare_package_vars) message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = '${CPACK_PACKAGE_INSTALL_DIRECTORY}'") message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '${CPACK_TEMPORARY_PACKAGE_FILE_NAME}'") message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = '${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}'") + message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_SOURCE = '${CPACK_DEBIAN_PACKAGE_SOURCE}'") endif() # For debian source packages: @@ -719,6 +750,8 @@ function(cpack_deb_prepare_package_vars) set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION "${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}" PARENT_SCOPE) + set(GEN_CPACK_DEBIAN_PACKAGE_SOURCE + "${CPACK_DEBIAN_PACKAGE_SOURCE}" PARENT_SCOPE) set(GEN_WDIR "${WDIR}" PARENT_SCOPE) endfunction() diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 04efb71..13c8d8f 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -339,6 +339,9 @@ int cmCPackDebGenerator::createDeb() this->GetOption("GEN_CPACK_DEBIAN_PACKAGE_PROVIDES"); const char* debian_pkg_replaces = this->GetOption("GEN_CPACK_DEBIAN_PACKAGE_REPLACES"); + const char* debian_pkg_source = + this->GetOption("GEN_CPACK_DEBIAN_PACKAGE_SOURCE"); + { // the scope is needed for cmGeneratedFileStream cmGeneratedFileStream out(ctlfilename.c_str()); @@ -347,6 +350,10 @@ int cmCPackDebGenerator::createDeb() out << "Section: " << debian_pkg_section << "\n"; out << "Priority: " << debian_pkg_priority << "\n"; out << "Architecture: " << debian_pkg_arch << "\n"; + if(debian_pkg_source && *debian_pkg_source) + { + out << "Source: " << debian_pkg_source << "\n"; + } if(debian_pkg_dep && *debian_pkg_dep) { out << "Depends: " << debian_pkg_dep << "\n"; diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index ae61bca..d42a322 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1033,6 +1033,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set(DEB_CONFIGURATIONS_TO_TEST "components-lintian-dpkgdeb-checks" "components-description1" "components-description2" + "components-source" "components-shlibdeps1" "components-depend1" "components-depend2") diff --git a/Tests/CPackComponentsDEB/MyLibCPackConfig-components-source.cmake.in b/Tests/CPackComponentsDEB/MyLibCPackConfig-components-source.cmake.in new file mode 100644 index 0000000..352f10b --- /dev/null +++ b/Tests/CPackComponentsDEB/MyLibCPackConfig-components-source.cmake.in @@ -0,0 +1,33 @@ +# +# Activate component packaging +# + +if(CPACK_GENERATOR MATCHES "DEB") + set(CPACK_DEB_COMPONENT_INSTALL "ON") +endif() + +# +# Choose grouping way +# +set(CPACK_COMPONENTS_IGNORE_GROUPS 1) + +# setting dependencies +set(CPACK_DEBIAN_PACKAGE_DEPENDS "depend-default") +set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "depend-headers") + +# this time we set shlibdeps to on +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +set(CPACK_DEBIAN_HEADERS_PACKAGE_SHLIBDEPS OFF) +set(CPACK_DEBIAN_LIBRARIES_PACKAGE_SHLIBDEPS OFF) + +# we also set the dependencies of APPLICATION component to empty, and let +# shlibdeps do the job for this component. Otherwise the default will +# override +set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_DEPENDS "") + +# this sets the generated packages source to the desired one, in case +# several packages are generated from a unique source (the case with +# multicomponents packaging). + +set(CPACK_DEBIAN_PACKAGE_SOURCE "test-source") +set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_SOURCE "test-other-source") diff --git a/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-source.cmake b/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-source.cmake new file mode 100644 index 0000000..51fa3ad --- /dev/null +++ b/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-source.cmake @@ -0,0 +1,75 @@ +if(NOT CPackComponentsDEB_SOURCE_DIR) + message(FATAL_ERROR "CPackComponentsDEB_SOURCE_DIR not set") +endif() + +include(${CPackComponentsDEB_SOURCE_DIR}/RunCPackVerifyResult.cmake) + + +# expected results +set(expected_file_mask "${CPackComponentsDEB_BINARY_DIR}/MyLib-*.deb") +set(expected_count 3) + +set(config_verbose -V) +set(actual_output) +run_cpack(actual_output + CPack_output + CPack_error + EXPECTED_FILE_MASK "${expected_file_mask}" + CONFIG_ARGS ${config_args} + CONFIG_VERBOSE ${config_verbose}) + + +if(NOT actual_output) + message(STATUS "expected_count='${expected_count}'") + message(STATUS "expected_file_mask='${expected_file_mask}'") + message(STATUS "actual_output_files='${actual_output}'") + message(FATAL_ERROR "error: expected_files do not exist: CPackComponentsDEB test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error}") +endif() + +list(LENGTH actual_output actual_count) +if(NOT actual_count EQUAL expected_count) + message(STATUS "actual_count='${actual_count}'") + message(FATAL_ERROR "error: expected_count=${expected_count} does not match actual_count=${actual_count}: CPackComponents test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error})") +endif() + + +# dpkg-deb checks for the summary of the packages +find_program(DPKGDEB_EXECUTABLE dpkg-deb) +if(DPKGDEB_EXECUTABLE) + set(dpkgdeb_output_errors_all "") + foreach(_f IN LISTS actual_output) + + # extracts the metadata from the package + run_dpkgdeb(dpkg_output + FILENAME "${_f}" + ) + + dpkgdeb_return_specific_metaentry(dpkg_package_name + DPKGDEB_OUTPUT "${dpkg_output}" + METAENTRY "Package:") + + dpkgdeb_return_specific_metaentry(dpkg_package_source + DPKGDEB_OUTPUT "${dpkg_output}" + METAENTRY "Source:") + + message(STATUS "package='${_f}', source='${dpkg_package_source}'") + + if(NOT ("${dpkg_package_name}" STREQUAL "mylib-applications")) + if(NOT ("${dpkg_package_source}" STREQUAL "test-source")) + set(dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}" + "dpkg-deb: ${_f}: Incorrect source for package '${dpkg_package_name}': '${dpkg_package_source}' instead of 'test-source'\n") + endif() + else() + if(NOT ("${dpkg_package_source}" STREQUAL "test-other-source")) + set(dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}" + "dpkg-deb: ${_f}: Incorrect source for package '${dpkg_package_name}': '${dpkg_package_source}' instead of 'test-other-source'\n") + endif() + endif() + endforeach() + + if(NOT "${dpkgdeb_output_errors_all}" STREQUAL "") + message(FATAL_ERROR "dpkg-deb checks failed:\n${dpkgdeb_output_errors_all}") + endif() +else() + message("dpkg-deb executable not found - skipping dpkg-deb test") +endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0cb1469e2babd1af11d2c290c6dc24c7c313422a commit 0cb1469e2babd1af11d2c290c6dc24c7c313422a Author: Raffi Enficiaud AuthorDate: Wed Nov 4 00:16:11 2015 +0100 Commit: Domen Vrankar CommitDate: Wed Nov 4 00:16:11 2015 +0100 CPackDEB: minor documentation and debug logging fixes diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 60e0d1f..84c9243 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -8,7 +8,7 @@ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # CPackDeb may be used to create Deb package using CPack. -# CPackDeb is a CPack generator thus it uses the CPACK_XXX variables +# CPackDeb is a CPack generator thus it uses the `CPACK_XXX` variables # used by CPack : https://cmake.org/Wiki/CMake:CPackConfiguration. # CPackDeb generator should work on any linux host but it will produce # better deb package when Debian specific tools 'dpkg-xxx' are usable on @@ -18,7 +18,7 @@ # :code:`CPACK_DEBIAN_XXX` variables. # # :code:`CPACK_DEBIAN__XXXX` variables may be used in order to have -# **component** specific values. Note however that refers to the +# **component** specific values. Note however that `` refers to the # **grouping name** written in upper case. It may be either a component name or # a component GROUP name. # @@ -570,8 +570,8 @@ function(cpack_deb_prepare_package_vars) 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_}}'") + message("CPackDeb Debug: component '${_local_component_name}' ${dependency_type_} " + "dependencies set to '${CPACK_DEBIAN_PACKAGE_${dependency_type_}}'") endif() endif() endforeach() @@ -672,15 +672,15 @@ function(cpack_deb_prepare_package_vars) # Print out some debug information if we were asked for that if(CPACK_DEBIAN_PACKAGE_DEBUG) - message("CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}") - message("CPackDeb:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}") - message("CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}") - message("CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}") - message("CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}") - message("CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}") - message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}") - message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}") - message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = ${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}") + message("CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY = '${CPACK_TOPLEVEL_DIRECTORY}'") + message("CPackDeb:Debug: CPACK_TOPLEVEL_TAG = '${CPACK_TOPLEVEL_TAG}'") + message("CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY = '${CPACK_TEMPORARY_DIRECTORY}'") + message("CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME = '${CPACK_OUTPUT_FILE_NAME}'") + message("CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH = '${CPACK_OUTPUT_FILE_PATH}'") + message("CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME = '${CPACK_PACKAGE_FILE_NAME}'") + message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = '${CPACK_PACKAGE_INSTALL_DIRECTORY}'") + message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '${CPACK_TEMPORARY_PACKAGE_FILE_NAME}'") + message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = '${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}'") endif() # For debian source packages: ----------------------------------------------------------------------- Summary of changes: .../dev/cpack-deb-config-file-source-field.rst | 6 ++ Modules/CPackDeb.cmake | 63 +++++++++++++++----- Source/CPack/cmCPackDebGenerator.cxx | 7 +++ Tests/CMakeLists.txt | 1 + ...=> MyLibCPackConfig-components-source.cmake.in} | 10 +++- ...> RunCPackVerifyResult-components-source.cmake} | 36 ++++------- 6 files changed, 82 insertions(+), 41 deletions(-) create mode 100644 Help/release/dev/cpack-deb-config-file-source-field.rst copy Tests/CPackComponentsDEB/{MyLibCPackConfig-components-depend2.cmake.in => MyLibCPackConfig-components-source.cmake.in} (71%) copy Tests/CPackComponentsDEB/{RunCPackVerifyResult-components-depend1.cmake => RunCPackVerifyResult-components-source.cmake} (58%) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Nov 4 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 4 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-463-gfe00c13 Message-ID: <20151104050108.F0B3DC1BF6@public.kitware.com> 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, master has been updated via fe00c137a866779cb2f7578a7712895ad4dc33f3 (commit) from b87bed0ff6d724a91bbe5ee97b5608eed588d1af (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=fe00c137a866779cb2f7578a7712895ad4dc33f3 commit fe00c137a866779cb2f7578a7712895ad4dc33f3 Author: Kitware Robot AuthorDate: Wed Nov 4 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Wed Nov 4 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 814f0ef..c048a0a 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151103) +set(CMake_VERSION_PATCH 20151104) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 09:14:41 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 09:14:41 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1224-gd018a8c Message-ID: <20151104141441.D99FFC16E8@public.kitware.com> 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 d018a8c8aac6cf99594dfadf5561b94f3de716b8 (commit) via 73f255e29d2ac9b45106e9ba7c9bb20ff2ab4349 (commit) from ed645b3a720e7d3df63aa39da3883a994e74a298 (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=d018a8c8aac6cf99594dfadf5561b94f3de716b8 commit d018a8c8aac6cf99594dfadf5561b94f3de716b8 Merge: ed645b3 73f255e Author: Brad King AuthorDate: Wed Nov 4 09:14:40 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 09:14:40 2015 -0500 Merge topic 'fortran-line-directives' into next 73f255e2 cmFortranLexer: Populate empty doxygen @param comments https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=73f255e29d2ac9b45106e9ba7c9bb20ff2ab4349 commit 73f255e29d2ac9b45106e9ba7c9bb20ff2ab4349 Author: Brad King AuthorDate: Wed Nov 4 09:12:36 2015 -0500 Commit: Brad King CommitDate: Wed Nov 4 09:13:18 2015 -0500 cmFortranLexer: Populate empty doxygen @param comments Re-apply the change from commit v3.0.0-rc1~554^2~2 (cm*Lexer: Populate empty doxygen @param comment, 2013-09-19) after recent lexer generation. diff --git a/Source/cmFortranLexer.cxx b/Source/cmFortranLexer.cxx index bdb9f2a..6779c1a 100644 --- a/Source/cmFortranLexer.cxx +++ b/Source/cmFortranLexer.cxx @@ -2183,7 +2183,7 @@ void cmFortran_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) } /** Set the current line number. - * @param line_number + * @param line_number The line number to set. * @param yyscanner The scanner object. */ void cmFortran_yyset_lineno (int line_number , yyscan_t yyscanner) @@ -2198,7 +2198,7 @@ void cmFortran_yyset_lineno (int line_number , yyscan_t yyscanner) } /** Set the current column. - * @param line_number + * @param column_no The column number to set. * @param yyscanner The scanner object. */ void cmFortran_yyset_column (int column_no , yyscan_t yyscanner) ----------------------------------------------------------------------- Summary of changes: Source/cmFortranLexer.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 09:16:46 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 09:16:46 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1228-g5e0cafb Message-ID: <20151104141646.5AC5EC1968@public.kitware.com> 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 5e0cafb14164d92300e618c4ac6f5769ad5b8450 (commit) via e7e713cc0533cd8f1ef47de4cdfd895d33545502 (commit) via 247c168b987a8c9c479112c13078aa2e5db37773 (commit) via adfc8a677e51772d87a3e050477c60ce0b70288f (commit) from d018a8c8aac6cf99594dfadf5561b94f3de716b8 (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=5e0cafb14164d92300e618c4ac6f5769ad5b8450 commit 5e0cafb14164d92300e618c4ac6f5769ad5b8450 Merge: d018a8c e7e713c Author: Brad King AuthorDate: Wed Nov 4 09:16:45 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 09:16:45 2015 -0500 Merge topic 'vs-show-def-files' into next e7e713cc VS: Add module definition `.def` files to .vcxproj files (#15313) 247c168b Refactor `.def` file lookup adfc8a67 cmGeneratorTarget: Fix IMPLEMENT_VISIT_IMPL for template data types https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e7e713cc0533cd8f1ef47de4cdfd895d33545502 commit e7e713cc0533cd8f1ef47de4cdfd895d33545502 Author: Tim Grothe AuthorDate: Mon Nov 2 15:24:25 2015 +0100 Commit: Brad King CommitDate: Wed Nov 4 09:15:14 2015 -0500 VS: Add module definition `.def` files to .vcxproj files (#15313) Make them appear in the IDE project tree for reference by developers. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 9e2dc65..6e1fb5b 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1613,6 +1613,12 @@ void cmVisualStudio10TargetGenerator::WriteAllSources() (*this->BuildFileStream ) << cmVS10EscapeXML(obj) << "\" />\n"; } + if (cmSourceFile const* defsrc = + this->GeneratorTarget->GetModuleDefinitionFile("")) + { + this->WriteSource("None", defsrc); + } + if (this->IsMissingFiles) { this->WriteMissingFiles(); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=247c168b987a8c9c479112c13078aa2e5db37773 commit 247c168b987a8c9c479112c13078aa2e5db37773 Author: Tim Grothe AuthorDate: Mon Nov 2 15:24:25 2015 +0100 Commit: Brad King CommitDate: Wed Nov 4 09:15:14 2015 -0500 Refactor `.def` file lookup Return a `cmSourceFile const*` from GetModuleDefinitionFile so that callers can get more information than just the path to the file. diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index bd47715..76ed038 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx @@ -81,7 +81,7 @@ void cmCommonTargetGenerator::AddFeatureFlags( //---------------------------------------------------------------------------- void cmCommonTargetGenerator::AddModuleDefinitionFlag(std::string& flags) { - if(this->ModuleDefinitionFile.empty()) + if(!this->ModuleDefinitionFile) { return; } @@ -98,7 +98,7 @@ void cmCommonTargetGenerator::AddModuleDefinitionFlag(std::string& flags) // vs6's "cl -link" pass it to the linker. std::string flag = defFileFlag; flag += (this->LocalGenerator->ConvertToLinkReference( - this->ModuleDefinitionFile)); + this->ModuleDefinitionFile->GetFullPath())); this->LocalGenerator->AppendFlags(flags, flag); } diff --git a/Source/cmCommonTargetGenerator.h b/Source/cmCommonTargetGenerator.h index 3fb1fd0..0c17500 100644 --- a/Source/cmCommonTargetGenerator.h +++ b/Source/cmCommonTargetGenerator.h @@ -54,7 +54,7 @@ protected: std::string ConfigName; // The windows module definition source file (.def), if any. - std::string ModuleDefinitionFile; + cmSourceFile const* ModuleDefinitionFile; // Target-wide Fortran module output directory. bool FortranModuleDirectoryComputed; diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 0f5a7e7..40afc0e 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2095,12 +2095,18 @@ cmGeneratorTarget::CompileInfo const* cmGeneratorTarget::GetCompileInfo( } //---------------------------------------------------------------------------- -std::string +cmSourceFile const* cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const { - std::string data; - IMPLEMENT_VISIT_IMPL(ModuleDefinitionFile, COMMA std::string) - return data; + std::vector data; + IMPLEMENT_VISIT_IMPL(ModuleDefinitionFile, + COMMA std::vector) + if(!data.empty()) + { + return data.front(); + } + + return 0; } bool cmGeneratorTarget::IsDLLPlatform() const diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index da59a98..bd23477 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -220,7 +220,7 @@ public: cmLocalGenerator* LocalGenerator; cmGlobalGenerator const* GlobalGenerator; - std::string GetModuleDefinitionFile(const std::string& config) const; + cmSourceFile const* GetModuleDefinitionFile(const std::string& config) const; /** Return whether or not the target is for a DLL platform. */ bool IsDLLPlatform() const; diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 7acccb3..eedc6ab 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1497,9 +1497,9 @@ void cmMakefileTargetGenerator this->AppendTargetDepends(depends); // Add a dependency on the link definitions file, if any. - if(!this->ModuleDefinitionFile.empty()) + if(this->ModuleDefinitionFile) { - depends.push_back(this->ModuleDefinitionFile); + depends.push_back(this->ModuleDefinitionFile->GetFullPath()); } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index dc2c7a6..5ff4fdb 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -195,9 +195,10 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const std::transform(deps.begin(), deps.end(), result.begin(), MapToNinjaPath()); // Add a dependency on the link definitions file, if any. - if(!this->ModuleDefinitionFile.empty()) + if(this->ModuleDefinitionFile) { - result.push_back(this->ConvertToNinjaPath(this->ModuleDefinitionFile)); + result.push_back(this->ConvertToNinjaPath( + this->ModuleDefinitionFile->GetFullPath())); } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7da00fa..9e2dc65 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2642,10 +2642,11 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config) if(this->MSTools) { - std::string def = this->GeneratorTarget->GetModuleDefinitionFile(""); - if(!def.empty()) + if (cmSourceFile const* defsrc = + this->GeneratorTarget->GetModuleDefinitionFile("")) { - linkOptions.AddFlag("ModuleDefinitionFile", def.c_str()); + linkOptions.AddFlag("ModuleDefinitionFile", + defsrc->GetFullPath().c_str()); } linkOptions.AppendFlag("IgnoreSpecificDefaultLibraries", "%(IgnoreSpecificDefaultLibraries)"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=adfc8a677e51772d87a3e050477c60ce0b70288f commit adfc8a677e51772d87a3e050477c60ce0b70288f Author: Brad King AuthorDate: Mon Nov 2 16:02:59 2015 -0500 Commit: Brad King CommitDate: Wed Nov 4 09:15:13 2015 -0500 cmGeneratorTarget: Fix IMPLEMENT_VISIT_IMPL for template data types Update spacing near the DATATYPE reference to prevent construction of `>>` as a preprocessing token if DATATYPE is a template type. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 1f74eda..0f5a7e7 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -573,7 +573,7 @@ static void handleSystemIncludesDep(cmLocalGenerator *lg, { \ std::vector sourceFiles; \ this->GetSourceFiles(sourceFiles, config); \ - TagVisitor visitor(this, data); \ + TagVisitor< DATA##Tag DATATYPE > visitor(this, data); \ for(std::vector::const_iterator si = sourceFiles.begin(); \ si != sourceFiles.end(); ++si) \ { \ ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:04:53 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:04:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1230-gf6eab59 Message-ID: <20151104150453.7F866C2510@public.kitware.com> 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 f6eab59bef91d8c51f247df950750591669ecbd8 (commit) via 2098e8e8ff7be5940a8f018ec6764470205271d1 (commit) from 5e0cafb14164d92300e618c4ac6f5769ad5b8450 (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=f6eab59bef91d8c51f247df950750591669ecbd8 commit f6eab59bef91d8c51f247df950750591669ecbd8 Merge: 5e0cafb 2098e8e Author: Brad King AuthorDate: Wed Nov 4 10:04:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 10:04:52 2015 -0500 Merge topic 'add-armcc-toolchain' into next 2098e8e8 Help: Add notes for topic 'add-armcc-toolchain' https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2098e8e8ff7be5940a8f018ec6764470205271d1 commit 2098e8e8ff7be5940a8f018ec6764470205271d1 Author: Brad King AuthorDate: Wed Nov 4 10:04:34 2015 -0500 Commit: Brad King CommitDate: Wed Nov 4 10:04:34 2015 -0500 Help: Add notes for topic 'add-armcc-toolchain' diff --git a/Help/release/dev/add-armcc-toolchain.rst b/Help/release/dev/add-armcc-toolchain.rst new file mode 100644 index 0000000..2cf6414 --- /dev/null +++ b/Help/release/dev/add-armcc-toolchain.rst @@ -0,0 +1,4 @@ +add-armcc-toolchain +------------------- + +* Support was added for the ARM Compiler (arm.com) with compiler id ``ARMCC``. ----------------------------------------------------------------------- Summary of changes: Help/release/dev/add-armcc-toolchain.rst | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Help/release/dev/add-armcc-toolchain.rst hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:13:26 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:13:26 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-466-g1e83e41 Message-ID: <20151104151326.3C379C1211@public.kitware.com> 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, master has been updated via 1e83e41d5eae60adfd588904e5418df38075b1d7 (commit) via 2098e8e8ff7be5940a8f018ec6764470205271d1 (commit) via 035a658f4fdc8028ff19568aa2ded8b3efa70909 (commit) from fe00c137a866779cb2f7578a7712895ad4dc33f3 (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=1e83e41d5eae60adfd588904e5418df38075b1d7 commit 1e83e41d5eae60adfd588904e5418df38075b1d7 Merge: fe00c13 2098e8e Author: Brad King AuthorDate: Wed Nov 4 10:13:24 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 10:13:24 2015 -0500 Merge topic 'add-armcc-toolchain' 2098e8e8 Help: Add notes for topic 'add-armcc-toolchain' 035a658f Add support for the ARM Compiler (arm.com) ----------------------------------------------------------------------- Summary of changes: Help/release/dev/add-armcc-toolchain.rst | 4 +++ Help/variable/CMAKE_LANG_COMPILER_ID.rst | 1 + Modules/CMakeCompilerIdDetection.cmake | 1 + Modules/CMakeDetermineASMCompiler.cmake | 4 +++ Modules/Compiler/ARMCC-ASM.cmake | 7 +++++ Modules/Compiler/ARMCC-C.cmake | 2 ++ Modules/Compiler/ARMCC-CXX.cmake | 2 ++ Modules/Compiler/ARMCC-DetermineCompiler.cmake | 16 +++++++++++ Modules/Compiler/ARMCC.cmake | 36 ++++++++++++++++++++++++ 9 files changed, 73 insertions(+) create mode 100644 Help/release/dev/add-armcc-toolchain.rst create mode 100644 Modules/Compiler/ARMCC-ASM.cmake create mode 100644 Modules/Compiler/ARMCC-C.cmake create mode 100644 Modules/Compiler/ARMCC-CXX.cmake create mode 100644 Modules/Compiler/ARMCC-DetermineCompiler.cmake create mode 100644 Modules/Compiler/ARMCC.cmake hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:13:28 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:13:28 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-470-g49ac682 Message-ID: <20151104151328.85D19C12B9@public.kitware.com> 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, master has been updated via 49ac682d39af7fe47e79455827e2e83130193236 (commit) via e7e713cc0533cd8f1ef47de4cdfd895d33545502 (commit) via 247c168b987a8c9c479112c13078aa2e5db37773 (commit) via adfc8a677e51772d87a3e050477c60ce0b70288f (commit) from 1e83e41d5eae60adfd588904e5418df38075b1d7 (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=49ac682d39af7fe47e79455827e2e83130193236 commit 49ac682d39af7fe47e79455827e2e83130193236 Merge: 1e83e41 e7e713c Author: Brad King AuthorDate: Wed Nov 4 10:13:27 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 10:13:27 2015 -0500 Merge topic 'vs-show-def-files' e7e713cc VS: Add module definition `.def` files to .vcxproj files (#15313) 247c168b Refactor `.def` file lookup adfc8a67 cmGeneratorTarget: Fix IMPLEMENT_VISIT_IMPL for template data types ----------------------------------------------------------------------- Summary of changes: Source/cmCommonTargetGenerator.cxx | 4 ++-- Source/cmCommonTargetGenerator.h | 2 +- Source/cmGeneratorTarget.cxx | 16 +++++++++++----- Source/cmGeneratorTarget.h | 2 +- Source/cmMakefileTargetGenerator.cxx | 4 ++-- Source/cmNinjaTargetGenerator.cxx | 5 +++-- Source/cmVisualStudio10TargetGenerator.cxx | 13 ++++++++++--- 7 files changed, 30 insertions(+), 16 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:13:30 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:13:30 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-472-g7a37936 Message-ID: <20151104151330.D6BBCC12FF@public.kitware.com> 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, master has been updated via 7a37936adfce70edab7048a311bf9cf4e9a0f61c (commit) via b1efb0233e9c925090bf1eb44c3c1cfb8e186764 (commit) from 49ac682d39af7fe47e79455827e2e83130193236 (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=7a37936adfce70edab7048a311bf9cf4e9a0f61c commit 7a37936adfce70edab7048a311bf9cf4e9a0f61c Merge: 49ac682 b1efb02 Author: Brad King AuthorDate: Wed Nov 4 10:13:29 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 10:13:29 2015 -0500 Merge topic 'find-cuda-dl' b1efb023 FindCUDA: drop CUDA_dl_LIBRARY ----------------------------------------------------------------------- Summary of changes: Modules/FindCUDA.cmake | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:14:00 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:14:00 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1235-gb167752 Message-ID: <20151104151400.AEB1DC1449@public.kitware.com> 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 b1677521acfb581d8c298cf70227c442e9cb1dc4 (commit) via 7a37936adfce70edab7048a311bf9cf4e9a0f61c (commit) via 49ac682d39af7fe47e79455827e2e83130193236 (commit) via 1e83e41d5eae60adfd588904e5418df38075b1d7 (commit) via fe00c137a866779cb2f7578a7712895ad4dc33f3 (commit) from f6eab59bef91d8c51f247df950750591669ecbd8 (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=b1677521acfb581d8c298cf70227c442e9cb1dc4 commit b1677521acfb581d8c298cf70227c442e9cb1dc4 Merge: f6eab59 7a37936 Author: Brad King AuthorDate: Wed Nov 4 10:13:53 2015 -0500 Commit: Brad King CommitDate: Wed Nov 4 10:13:53 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:14:56 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:14:56 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-474-g59315f5 Message-ID: <20151104151456.81770C1742@public.kitware.com> 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, master has been updated via 59315f5b0028e4f9c4fde765196c4df38ab83b3e (commit) via 341cd934897b3e37319b978113a1fdf9bea21c6d (commit) from 7a37936adfce70edab7048a311bf9cf4e9a0f61c (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=59315f5b0028e4f9c4fde765196c4df38ab83b3e commit 59315f5b0028e4f9c4fde765196c4df38ab83b3e Merge: 7a37936 341cd93 Author: Brad King AuthorDate: Wed Nov 4 10:14:54 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 10:14:54 2015 -0500 Merge topic 'cpack-deb-compression-scheme-test' 341cd934 CPackDeb: ctest tests for compression scheme leak ----------------------------------------------------------------------- Summary of changes: Tests/CMakeLists.txt | 3 +- .../MyLibCPackConfig-compression.cmake.in | 11 +++++++ ...make => RunCPackVerifyResult-compression.cmake} | 32 +++----------------- .../CPackComponentsDEB/RunCPackVerifyResult.cmake | 6 +++- 4 files changed, 22 insertions(+), 30 deletions(-) create mode 100644 Tests/CPackComponentsDEB/MyLibCPackConfig-compression.cmake.in copy Tests/CPackComponentsDEB/{RunCPackVerifyResult-components-lintian-dpkgdeb-checks.cmake => RunCPackVerifyResult-compression.cmake} (61%) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:15:08 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:15:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1237-g0d669fb Message-ID: <20151104151508.2E883C1742@public.kitware.com> 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 0d669fb472061be4fa988febf6318e45f37883e8 (commit) via 59315f5b0028e4f9c4fde765196c4df38ab83b3e (commit) from b1677521acfb581d8c298cf70227c442e9cb1dc4 (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=0d669fb472061be4fa988febf6318e45f37883e8 commit 0d669fb472061be4fa988febf6318e45f37883e8 Merge: b167752 59315f5 Author: Brad King AuthorDate: Wed Nov 4 10:15:01 2015 -0500 Commit: Brad King CommitDate: Wed Nov 4 10:15:01 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 4 10:21:10 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 4 Nov 2015 10:21:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1240-g3dd60a3 Message-ID: <20151104152110.3E16DC1E68@public.kitware.com> 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 3dd60a3574b97ae10e437fa6ed31aa530dda62ca (commit) via a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2 (commit) via ed67f4052264003133b19edde2c85791d501e001 (commit) from 0d669fb472061be4fa988febf6318e45f37883e8 (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=3dd60a3574b97ae10e437fa6ed31aa530dda62ca commit 3dd60a3574b97ae10e437fa6ed31aa530dda62ca Merge: 0d669fb a3c5ca9 Author: Brad King AuthorDate: Wed Nov 4 10:21:09 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 10:21:09 2015 -0500 Merge topic 'ninja-version-refactor' into next a3c5ca96 cmGlobalNinjaGenerator: Save 'ninja' version very early ed67f405 cmGlobalNinjaGenerator: Save path to 'ninja' tool very early https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2 commit a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2 Author: Brad King AuthorDate: Mon Nov 2 16:31:27 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 16:37:59 2015 -0500 cmGlobalNinjaGenerator: Save 'ninja' version very early Keep it in a member variable for convenient reference. Store the value as soon as it is known. diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 6e7c43a..a8a307c 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -548,11 +548,11 @@ void cmGlobalNinjaGenerator::Generate() { // Check minimum Ninja version. if (cmSystemTools::VersionCompare(cmSystemTools::OP_LESS, - CurrentNinjaVersion().c_str(), + this->NinjaVersion.c_str(), RequiredNinjaVersion().c_str())) { std::ostringstream msg; - msg << "The detected version of Ninja (" << this->CurrentNinjaVersion(); + msg << "The detected version of Ninja (" << this->NinjaVersion; msg << ") is less than the version of Ninja required by CMake ("; msg << this->RequiredNinjaVersion() << ")."; this->GetCMakeInstance()->IssueMessage(cmake::FATAL_ERROR, msg.str()); @@ -591,6 +591,14 @@ void cmGlobalNinjaGenerator::FindMakeProgram(cmMakefile* mf) if (const char* ninjaCommand = mf->GetDefinition("CMAKE_MAKE_PROGRAM")) { this->NinjaCommand = ninjaCommand; + std::vector command; + command.push_back(this->NinjaCommand); + command.push_back("--version"); + std::string version; + cmSystemTools::RunSingleCommand(command, + &version, 0, 0, 0, + cmSystemTools::OUTPUT_NONE); + this->NinjaVersion = cmSystemTools::TrimWhitespace(version); } } @@ -1275,21 +1283,10 @@ std::string cmGlobalNinjaGenerator::ninjaCmd() const return "ninja"; } -std::string cmGlobalNinjaGenerator::CurrentNinjaVersion() const -{ - std::string version; - std::string command = ninjaCmd() + " --version"; - cmSystemTools::RunSingleCommand(command.c_str(), - &version, 0, 0, 0, - cmSystemTools::OUTPUT_NONE); - - return cmSystemTools::TrimWhitespace(version); -} - bool cmGlobalNinjaGenerator::SupportsConsolePool() const { return cmSystemTools::VersionCompare(cmSystemTools::OP_LESS, - CurrentNinjaVersion().c_str(), + this->NinjaVersion.c_str(), RequiredNinjaVersionForConsolePool().c_str()) == false; } diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index f228340..46bd588 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -305,7 +305,6 @@ public: virtual void ComputeTargetObjectDirectory(cmGeneratorTarget* gt) const; - std::string CurrentNinjaVersion() const; // Ninja generator uses 'deps' and 'msvc_deps_prefix' introduced in 1.3 static std::string RequiredNinjaVersion() { return "1.3"; } static std::string RequiredNinjaVersionForConsolePool() { return "1.5"; } @@ -394,6 +393,7 @@ private: TargetAliasMap TargetAliases; std::string NinjaCommand; + std::string NinjaVersion; }; #endif // ! cmGlobalNinjaGenerator_h https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed67f4052264003133b19edde2c85791d501e001 commit ed67f4052264003133b19edde2c85791d501e001 Author: Brad King AuthorDate: Mon Nov 2 16:27:31 2015 -0500 Commit: Brad King CommitDate: Mon Nov 2 16:27:31 2015 -0500 cmGlobalNinjaGenerator: Save path to 'ninja' tool very early Keep it in a member variable for convenient reference. Set the value as soon as it is known. diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 8498e39..6e7c43a 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -585,6 +585,15 @@ void cmGlobalNinjaGenerator::Generate() this->CloseBuildFileStream(); } +void cmGlobalNinjaGenerator::FindMakeProgram(cmMakefile* mf) +{ + this->cmGlobalGenerator::FindMakeProgram(mf); + if (const char* ninjaCommand = mf->GetDefinition("CMAKE_MAKE_PROGRAM")) + { + this->NinjaCommand = ninjaCommand; + } +} + void cmGlobalNinjaGenerator ::EnableLanguage(std::vectorconst& langs, cmMakefile* mf, @@ -1260,9 +1269,8 @@ std::string cmGlobalNinjaGenerator::ninjaCmd() const { cmLocalGenerator* lgen = this->LocalGenerators[0]; if (lgen) { - return lgen->ConvertToOutputFormat( - lgen->GetMakefile()->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"), - cmLocalGenerator::SHELL); + return lgen->ConvertToOutputFormat(this->NinjaCommand, + cmLocalGenerator::SHELL); } return "ninja"; } diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 7547f16..f228340 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -320,7 +320,7 @@ protected: private: virtual std::string GetEditCacheCommand() const; - + virtual void FindMakeProgram(cmMakefile* mf); void OpenBuildFileStream(); void CloseBuildFileStream(); @@ -392,6 +392,8 @@ private: typedef std::map TargetAliasMap; TargetAliasMap TargetAliases; + + std::string NinjaCommand; }; #endif // ! cmGlobalNinjaGenerator_h ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalNinjaGenerator.cxx | 39 +++++++++++++++++++++---------------- Source/cmGlobalNinjaGenerator.h | 6 ++++-- 2 files changed, 26 insertions(+), 19 deletions(-) hooks/post-receive -- CMake From domen.vrankar at gmail.com Wed Nov 4 15:29:12 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Wed, 4 Nov 2015 15:29:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1242-gb7b7274 Message-ID: <20151104202912.5A25AC21F8@public.kitware.com> 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 b7b7274f3718b3ad7cd83db06a04adddf5e5acc5 (commit) via becaf5107b9e2f9e2df1a14d2b4d169a37f846fc (commit) from 3dd60a3574b97ae10e437fa6ed31aa530dda62ca (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=b7b7274f3718b3ad7cd83db06a04adddf5e5acc5 commit b7b7274f3718b3ad7cd83db06a04adddf5e5acc5 Merge: 3dd60a3 becaf51 Author: Domen Vrankar AuthorDate: Wed Nov 4 15:29:11 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 15:29:11 2015 -0500 Merge topic 'cpack-deb-config-file-source-field' into next becaf510 fixup! CPackDEB: minor documentation and debug logging fixes https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=becaf5107b9e2f9e2df1a14d2b4d169a37f846fc commit becaf5107b9e2f9e2df1a14d2b4d169a37f846fc Author: Domen Vrankar AuthorDate: Wed Nov 4 21:28:21 2015 +0100 Commit: Domen Vrankar CommitDate: Wed Nov 4 21:28:21 2015 +0100 fixup! CPackDEB: minor documentation and debug logging fixes diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index ba21029..89194c7 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -8,7 +8,7 @@ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # CPackDeb may be used to create Deb package using CPack. -# CPackDeb is a CPack generator thus it uses the `CPACK_XXX` variables +# CPackDeb is a CPack generator thus it uses the ``CPACK_XXX`` variables # used by CPack : https://cmake.org/Wiki/CMake:CPackConfiguration. # CPackDeb generator should work on any linux host but it will produce # better deb package when Debian specific tools 'dpkg-xxx' are usable on @@ -18,7 +18,7 @@ # :code:`CPACK_DEBIAN_XXX` variables. # # :code:`CPACK_DEBIAN__XXXX` variables may be used in order to have -# **component** specific values. Note however that `` refers to the +# **component** specific values. Note however that ```` refers to the # **grouping name** written in upper case. It may be either a component name or # a component GROUP name. # ----------------------------------------------------------------------- Summary of changes: Modules/CPackDeb.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From domen.vrankar at gmail.com Wed Nov 4 15:45:29 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Wed, 4 Nov 2015 15:45:29 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1244-g1ddb9c8 Message-ID: <20151104204529.19479C1A18@public.kitware.com> 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 1ddb9c87379fb888b1ba3fe6198214486dd73f7b (commit) via e564fe352916316f0044a4ac4491a54b3c43c7ae (commit) from b7b7274f3718b3ad7cd83db06a04adddf5e5acc5 (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=1ddb9c87379fb888b1ba3fe6198214486dd73f7b commit 1ddb9c87379fb888b1ba3fe6198214486dd73f7b Merge: b7b7274 e564fe3 Author: Domen Vrankar AuthorDate: Wed Nov 4 15:45:28 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 15:45:28 2015 -0500 Merge topic 'cpack-deb-config-file-source-field' into next e564fe35 fixup! CPackDEB: added config file optional Source field https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e564fe352916316f0044a4ac4491a54b3c43c7ae commit e564fe352916316f0044a4ac4491a54b3c43c7ae Author: Domen Vrankar AuthorDate: Wed Nov 4 21:43:09 2015 +0100 Commit: Domen Vrankar CommitDate: Wed Nov 4 21:44:51 2015 +0100 fixup! CPackDEB: added config file optional Source field diff --git a/Help/release/dev/cpack-deb-config-file-source-field.rst b/Help/release/dev/cpack-deb-config-file-source-field.rst index 806aeac..bbc2aa6 100644 --- a/Help/release/dev/cpack-deb-config-file-source-field.rst +++ b/Help/release/dev/cpack-deb-config-file-source-field.rst @@ -2,5 +2,5 @@ cpack-deb-config-file-source-field ---------------------------------- * The :module:`CPackDeb` module learned to set optional config - file `Source` field - monolithic and per-component variable. + file ``Source`` field - monolithic and per-component variable. See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`. diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 89194c7..875a534 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -357,11 +357,11 @@ # .. variable:: CPACK_DEBIAN_PACKAGE_SOURCE # CPACK_DEBIAN__PACKAGE_SOURCE # -# Sets the `Source` field of the binary Debian package. +# Sets the ``Source`` field of the binary Debian package. # When the binary package name is not the same as the source package name # (in particular when several components/binaries are generated from one # source) the source from which the binary has been generated should be -# indicated with the field `Source`. +# indicated with the field ``Source``. # # * Mandatory : NO # * Default : ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-deb-config-file-source-field.rst | 2 +- Modules/CPackDeb.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From domen.vrankar at gmail.com Wed Nov 4 15:48:42 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Wed, 4 Nov 2015 15:48:42 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1247-gc2b4d89 Message-ID: <20151104204842.90F78C1D8E@public.kitware.com> 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 c2b4d892103a99b61ceb8ece6911b6c8b8ba3d5a (commit) via e5b70ed0137df3b72f279a039cbdae1a20784473 (commit) via f2d98e2d3c9d7581703b124d3436312949dda141 (commit) from 1ddb9c87379fb888b1ba3fe6198214486dd73f7b (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=c2b4d892103a99b61ceb8ece6911b6c8b8ba3d5a commit c2b4d892103a99b61ceb8ece6911b6c8b8ba3d5a Merge: 1ddb9c8 e5b70ed Author: Domen Vrankar AuthorDate: Wed Nov 4 15:48:41 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 4 15:48:41 2015 -0500 Merge topic 'cpack-deb-config-file-source-field' into next e5b70ed0 CPackDEB: added config file optional Source field f2d98e2d CPackDEB: minor documentation and debug logging fixes https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e5b70ed0137df3b72f279a039cbdae1a20784473 commit e5b70ed0137df3b72f279a039cbdae1a20784473 Author: Raffi Enficiaud AuthorDate: Wed Nov 4 00:19:58 2015 +0100 Commit: Domen Vrankar CommitDate: Wed Nov 4 21:46:22 2015 +0100 CPackDEB: added config file optional Source field diff --git a/Help/release/dev/cpack-deb-config-file-source-field.rst b/Help/release/dev/cpack-deb-config-file-source-field.rst new file mode 100644 index 0000000..bbc2aa6 --- /dev/null +++ b/Help/release/dev/cpack-deb-config-file-source-field.rst @@ -0,0 +1,6 @@ +cpack-deb-config-file-source-field +---------------------------------- + +* The :module:`CPackDeb` module learned to set optional config + file ``Source`` field - monolithic and per-component variable. + See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`. diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 7bd2f50..875a534 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -354,7 +354,28 @@ # set by Debian policy # https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners # - +# .. variable:: CPACK_DEBIAN_PACKAGE_SOURCE +# CPACK_DEBIAN__PACKAGE_SOURCE +# +# Sets the ``Source`` field of the binary Debian package. +# When the binary package name is not the same as the source package name +# (in particular when several components/binaries are generated from one +# source) the source from which the binary has been generated should be +# indicated with the field ``Source``. +# +# * Mandatory : NO +# * Default : +# +# - An empty string for non-component based installations +# - :variable:`CPACK_DEBIAN_PACKAGE_SOURCE` for component-based +# installations. +# +# See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source +# +# .. note:: +# +# This value is not interpreted. It is possible to pass an optional +# revision number of the referenced source package as well. #============================================================================= # Copyright 2007-2009 Kitware, Inc. @@ -554,6 +575,15 @@ function(cpack_deb_prepare_package_vars) ) endif() + # Source: (optional) + # in case several packages are constructed from a unique source + # (multipackaging), the source may be indicated as well. + # The source might contain a version if the generated package + # version is different from the source version + if(NOT CPACK_DEBIAN_PACKAGE_SOURCE) + set(CPACK_DEBIAN_PACKAGE_SOURCE "") + endif() + # have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES), # this returns the successful find_package() calls, maybe this can help # Depends: @@ -563,7 +593,7 @@ function(cpack_deb_prepare_package_vars) # if per-component dependency, overrides the global CPACK_DEBIAN_PACKAGE_${dependency_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES) + foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE) set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${dependency_type_}") # if set, overrides the global dependency @@ -681,6 +711,7 @@ function(cpack_deb_prepare_package_vars) message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = '${CPACK_PACKAGE_INSTALL_DIRECTORY}'") message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '${CPACK_TEMPORARY_PACKAGE_FILE_NAME}'") message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = '${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}'") + message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_SOURCE = '${CPACK_DEBIAN_PACKAGE_SOURCE}'") endif() # For debian source packages: @@ -719,6 +750,8 @@ function(cpack_deb_prepare_package_vars) set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" PARENT_SCOPE) set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION "${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}" PARENT_SCOPE) + set(GEN_CPACK_DEBIAN_PACKAGE_SOURCE + "${CPACK_DEBIAN_PACKAGE_SOURCE}" PARENT_SCOPE) set(GEN_WDIR "${WDIR}" PARENT_SCOPE) endfunction() diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 04efb71..13c8d8f 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -339,6 +339,9 @@ int cmCPackDebGenerator::createDeb() this->GetOption("GEN_CPACK_DEBIAN_PACKAGE_PROVIDES"); const char* debian_pkg_replaces = this->GetOption("GEN_CPACK_DEBIAN_PACKAGE_REPLACES"); + const char* debian_pkg_source = + this->GetOption("GEN_CPACK_DEBIAN_PACKAGE_SOURCE"); + { // the scope is needed for cmGeneratedFileStream cmGeneratedFileStream out(ctlfilename.c_str()); @@ -347,6 +350,10 @@ int cmCPackDebGenerator::createDeb() out << "Section: " << debian_pkg_section << "\n"; out << "Priority: " << debian_pkg_priority << "\n"; out << "Architecture: " << debian_pkg_arch << "\n"; + if(debian_pkg_source && *debian_pkg_source) + { + out << "Source: " << debian_pkg_source << "\n"; + } if(debian_pkg_dep && *debian_pkg_dep) { out << "Depends: " << debian_pkg_dep << "\n"; diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index ae61bca..d42a322 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1033,6 +1033,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set(DEB_CONFIGURATIONS_TO_TEST "components-lintian-dpkgdeb-checks" "components-description1" "components-description2" + "components-source" "components-shlibdeps1" "components-depend1" "components-depend2") diff --git a/Tests/CPackComponentsDEB/MyLibCPackConfig-components-source.cmake.in b/Tests/CPackComponentsDEB/MyLibCPackConfig-components-source.cmake.in new file mode 100644 index 0000000..352f10b --- /dev/null +++ b/Tests/CPackComponentsDEB/MyLibCPackConfig-components-source.cmake.in @@ -0,0 +1,33 @@ +# +# Activate component packaging +# + +if(CPACK_GENERATOR MATCHES "DEB") + set(CPACK_DEB_COMPONENT_INSTALL "ON") +endif() + +# +# Choose grouping way +# +set(CPACK_COMPONENTS_IGNORE_GROUPS 1) + +# setting dependencies +set(CPACK_DEBIAN_PACKAGE_DEPENDS "depend-default") +set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "depend-headers") + +# this time we set shlibdeps to on +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +set(CPACK_DEBIAN_HEADERS_PACKAGE_SHLIBDEPS OFF) +set(CPACK_DEBIAN_LIBRARIES_PACKAGE_SHLIBDEPS OFF) + +# we also set the dependencies of APPLICATION component to empty, and let +# shlibdeps do the job for this component. Otherwise the default will +# override +set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_DEPENDS "") + +# this sets the generated packages source to the desired one, in case +# several packages are generated from a unique source (the case with +# multicomponents packaging). + +set(CPACK_DEBIAN_PACKAGE_SOURCE "test-source") +set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_SOURCE "test-other-source") diff --git a/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-source.cmake b/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-source.cmake new file mode 100644 index 0000000..51fa3ad --- /dev/null +++ b/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-source.cmake @@ -0,0 +1,75 @@ +if(NOT CPackComponentsDEB_SOURCE_DIR) + message(FATAL_ERROR "CPackComponentsDEB_SOURCE_DIR not set") +endif() + +include(${CPackComponentsDEB_SOURCE_DIR}/RunCPackVerifyResult.cmake) + + +# expected results +set(expected_file_mask "${CPackComponentsDEB_BINARY_DIR}/MyLib-*.deb") +set(expected_count 3) + +set(config_verbose -V) +set(actual_output) +run_cpack(actual_output + CPack_output + CPack_error + EXPECTED_FILE_MASK "${expected_file_mask}" + CONFIG_ARGS ${config_args} + CONFIG_VERBOSE ${config_verbose}) + + +if(NOT actual_output) + message(STATUS "expected_count='${expected_count}'") + message(STATUS "expected_file_mask='${expected_file_mask}'") + message(STATUS "actual_output_files='${actual_output}'") + message(FATAL_ERROR "error: expected_files do not exist: CPackComponentsDEB test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error}") +endif() + +list(LENGTH actual_output actual_count) +if(NOT actual_count EQUAL expected_count) + message(STATUS "actual_count='${actual_count}'") + message(FATAL_ERROR "error: expected_count=${expected_count} does not match actual_count=${actual_count}: CPackComponents test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error})") +endif() + + +# dpkg-deb checks for the summary of the packages +find_program(DPKGDEB_EXECUTABLE dpkg-deb) +if(DPKGDEB_EXECUTABLE) + set(dpkgdeb_output_errors_all "") + foreach(_f IN LISTS actual_output) + + # extracts the metadata from the package + run_dpkgdeb(dpkg_output + FILENAME "${_f}" + ) + + dpkgdeb_return_specific_metaentry(dpkg_package_name + DPKGDEB_OUTPUT "${dpkg_output}" + METAENTRY "Package:") + + dpkgdeb_return_specific_metaentry(dpkg_package_source + DPKGDEB_OUTPUT "${dpkg_output}" + METAENTRY "Source:") + + message(STATUS "package='${_f}', source='${dpkg_package_source}'") + + if(NOT ("${dpkg_package_name}" STREQUAL "mylib-applications")) + if(NOT ("${dpkg_package_source}" STREQUAL "test-source")) + set(dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}" + "dpkg-deb: ${_f}: Incorrect source for package '${dpkg_package_name}': '${dpkg_package_source}' instead of 'test-source'\n") + endif() + else() + if(NOT ("${dpkg_package_source}" STREQUAL "test-other-source")) + set(dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}" + "dpkg-deb: ${_f}: Incorrect source for package '${dpkg_package_name}': '${dpkg_package_source}' instead of 'test-other-source'\n") + endif() + endif() + endforeach() + + if(NOT "${dpkgdeb_output_errors_all}" STREQUAL "") + message(FATAL_ERROR "dpkg-deb checks failed:\n${dpkgdeb_output_errors_all}") + endif() +else() + message("dpkg-deb executable not found - skipping dpkg-deb test") +endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f2d98e2d3c9d7581703b124d3436312949dda141 commit f2d98e2d3c9d7581703b124d3436312949dda141 Author: Raffi Enficiaud AuthorDate: Wed Nov 4 00:16:11 2015 +0100 Commit: Domen Vrankar CommitDate: Wed Nov 4 21:45:55 2015 +0100 CPackDEB: minor documentation and debug logging fixes diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 60e0d1f..7bd2f50 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -8,7 +8,7 @@ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # CPackDeb may be used to create Deb package using CPack. -# CPackDeb is a CPack generator thus it uses the CPACK_XXX variables +# CPackDeb is a CPack generator thus it uses the ``CPACK_XXX`` variables # used by CPack : https://cmake.org/Wiki/CMake:CPackConfiguration. # CPackDeb generator should work on any linux host but it will produce # better deb package when Debian specific tools 'dpkg-xxx' are usable on @@ -18,7 +18,7 @@ # :code:`CPACK_DEBIAN_XXX` variables. # # :code:`CPACK_DEBIAN__XXXX` variables may be used in order to have -# **component** specific values. Note however that refers to the +# **component** specific values. Note however that ```` refers to the # **grouping name** written in upper case. It may be either a component name or # a component GROUP name. # @@ -570,8 +570,8 @@ function(cpack_deb_prepare_package_vars) 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_}}'") + message("CPackDeb Debug: component '${_local_component_name}' ${dependency_type_} " + "dependencies set to '${CPACK_DEBIAN_PACKAGE_${dependency_type_}}'") endif() endif() endforeach() @@ -672,15 +672,15 @@ function(cpack_deb_prepare_package_vars) # Print out some debug information if we were asked for that if(CPACK_DEBIAN_PACKAGE_DEBUG) - message("CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}") - message("CPackDeb:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}") - message("CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}") - message("CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}") - message("CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}") - message("CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}") - message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}") - message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}") - message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = ${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}") + message("CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY = '${CPACK_TOPLEVEL_DIRECTORY}'") + message("CPackDeb:Debug: CPACK_TOPLEVEL_TAG = '${CPACK_TOPLEVEL_TAG}'") + message("CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY = '${CPACK_TEMPORARY_DIRECTORY}'") + message("CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME = '${CPACK_OUTPUT_FILE_NAME}'") + message("CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH = '${CPACK_OUTPUT_FILE_PATH}'") + message("CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME = '${CPACK_PACKAGE_FILE_NAME}'") + message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = '${CPACK_PACKAGE_INSTALL_DIRECTORY}'") + message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '${CPACK_TEMPORARY_PACKAGE_FILE_NAME}'") + message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = '${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}'") endif() # For debian source packages: ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Nov 5 00:01:14 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 5 Nov 2015 00:01:14 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-475-g60cbd9b Message-ID: <20151105050114.64021C24B8@public.kitware.com> 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, master has been updated via 60cbd9b9da2059481e2f29fbb5859a5b0643d3d7 (commit) from 59315f5b0028e4f9c4fde765196c4df38ab83b3e (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=60cbd9b9da2059481e2f29fbb5859a5b0643d3d7 commit 60cbd9b9da2059481e2f29fbb5859a5b0643d3d7 Author: Kitware Robot AuthorDate: Thu Nov 5 00:01:10 2015 -0500 Commit: Kitware Robot CommitDate: Thu Nov 5 00:01:10 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index c048a0a..b93e0c9 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151104) +set(CMake_VERSION_PATCH 20151105) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Nov 6 00:01:11 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 6 Nov 2015 00:01:11 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-476-g13dc7bd Message-ID: <20151106050113.2F2F5C264E@public.kitware.com> 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, master has been updated via 13dc7bdb5e3a0eaaf3607b154bba77a01404a788 (commit) from 60cbd9b9da2059481e2f29fbb5859a5b0643d3d7 (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=13dc7bdb5e3a0eaaf3607b154bba77a01404a788 commit 13dc7bdb5e3a0eaaf3607b154bba77a01404a788 Author: Kitware Robot AuthorDate: Fri Nov 6 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Fri Nov 6 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index b93e0c9..62142c6 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151105) +set(CMake_VERSION_PATCH 20151106) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 6 11:20:02 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 6 Nov 2015 11:20:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1251-g08f8b2a Message-ID: <20151106162002.6D106C2C5C@public.kitware.com> 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 08f8b2ab31d4df0b7b80a8d85c8719e07452880b (commit) via f88533cc067ea252254b0851d87f09ef798e2c97 (commit) via 13dc7bdb5e3a0eaaf3607b154bba77a01404a788 (commit) via 60cbd9b9da2059481e2f29fbb5859a5b0643d3d7 (commit) from c2b4d892103a99b61ceb8ece6911b6c8b8ba3d5a (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=08f8b2ab31d4df0b7b80a8d85c8719e07452880b commit 08f8b2ab31d4df0b7b80a8d85c8719e07452880b Merge: c2b4d89 f88533c Author: Brad King AuthorDate: Fri Nov 6 11:20:01 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 6 11:20:01 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' into next f88533cc CPackDMG: Add support for multilingual SLAs 13dc7bdb CMake Nightly Date Stamp 60cbd9b9 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f88533cc067ea252254b0851d87f09ef798e2c97 commit f88533cc067ea252254b0851d87f09ef798e2c97 Author: Simon Levermann AuthorDate: Mon Oct 19 11:13:55 2015 +0200 Commit: Brad King CommitDate: Fri Nov 6 11:14:49 2015 -0500 CPackDMG: Add support for multilingual SLAs Multiple languages for SLAs and the SLA UI can be added via the CPack variables CPACK_DMG_SLA_DIR and CPACK_DMG_SLA_LANGUAGES. For each language defined in the languages variable, CPack will search for .menu.txt and .license.txt in CPACK_DMG_SLA_DIR. If the sla directory variable is not defined, the old behaviour using CPACK_RESOURCE_FILE_LICENSE is retained. diff --git a/Help/release/dev/cpack-dmg-multilanguage-sla.rst b/Help/release/dev/cpack-dmg-multilanguage-sla.rst new file mode 100644 index 0000000..9e28fa2 --- /dev/null +++ b/Help/release/dev/cpack-dmg-multilanguage-sla.rst @@ -0,0 +1,7 @@ +cpack-dmg-multilanguage-sla +--------------------------- + +* The :module:`CPack DragNDrop generator ` learned to add + multi-lingual SLAs to a DMG which is presented to the user when they try to + mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and + :variable:`CPACK_DMG_SLA_DIR` variables for details. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index b7a6ba5..37d7352 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -36,6 +36,19 @@ # background image is set. The background image is applied after applying the # custom .DS_Store file. # +# .. variable:: CPACK_DMG_SLA_DIR +# +# Directory where license and menu files for different languages are stored. +# +# .. variable:: CPACK_DMG_SLA_LANGUAGES +# +# Languages for which a license agreement is provided when mounting the +# generated DMG. +# +# For every language in this list, CPack will try to find files +# ``.menu.txt`` and ``.license.txt`` in the directory +# specified by the :variable:`CPACK_DMG_SLA_DIR` variable. +# # .. variable:: CPACK_COMMAND_HDIUTIL # # Path to the hdiutil(1) command used to operate on disk image files on Mac diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index fd71b0e..f23331b 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -726,6 +726,9 @@ endif() # Build CPackLib add_library(CPackLib ${CPACK_SRCS}) target_link_libraries(CPackLib CMakeLib) +if(APPLE) + target_link_libraries(CPackLib "-framework Carbon") +endif() if(APPLE) add_executable(cmakexbuild cmakexbuild.cxx) diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 4c400d9..208a64c 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -18,6 +18,24 @@ #include #include +#include + +#include +#include +#include + +// The carbon framework is deprecated, but the Region codes it supplies are +// needed for the LPic data structure used for generating multi-lingual SLAs. +// There does not seem to be a replacement API for these region codes. +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif +#include +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + static const char* SLAHeader = "data 'LPic' (5000) {\n" " $\"0002 0011 0003 0001 0000 0000 0002 0000\"\n" @@ -103,6 +121,69 @@ int cmCPackDragNDropGenerator::InitializeInternal() } this->SetOptionIfNotSet("CPACK_COMMAND_REZ", rez_path.c_str()); + if(this->IsSet("CPACK_DMG_SLA_DIR")) + { + slaDirectory = this->GetOption("CPACK_DMG_SLA_DIR"); + if(!slaDirectory.empty() && this->IsSet("CPACK_RESOURCE_FILE_LICENSE")) + { + std::string license_file = + this->GetOption("CPACK_RESOURCE_FILE_LICENSE"); + if(!license_file.empty() && + (license_file.find("CPack.GenericLicense.txt") == std::string::npos)) + { + cmCPackLogger(cmCPackLog::LOG_WARNING, + "Both CPACK_DMG_SLA_DIR and CPACK_RESOURCE_FILE_LICENSE specified, " + "defaulting to CPACK_DMG_SLA_DIR" + << std::endl); + } + } + if(!this->IsSet("CPACK_DMG_LANGUAGES")) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_DMG_SLA_DIR set but no languages defined " + "(set CPACK_DMG_LANGUAGES)" + << std::endl); + return 0; + } + if(!cmSystemTools::FileExists(slaDirectory, false)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_DMG_SLA_DIR does not exist" + << std::endl); + return 0; + } + + std::vector languages; + cmSystemTools::ExpandListArgument(this->GetOption("CPACK_DMG_LANGUAGES"), + languages); + if(languages.empty()) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_DMG_LANGUAGES set but empty" + << std::endl); + return 0; + } + for(size_t i = 0; i < languages.size(); ++i) + { + std::string license = slaDirectory + "/" + languages[i] + ".license.txt"; + if (!cmSystemTools::FileExists(license)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Missing license file " << languages[i] << ".license.txt" + << std::endl); + return 0; + } + std::string menu = slaDirectory + "/" + languages[i] + ".menu.txt"; + if (!cmSystemTools::FileExists(menu)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Missing menu file " << languages[i] << ".menu.txt" + << std::endl); + return 0; + } + } + } + return this->Superclass::InitializeInternal(); } @@ -246,12 +327,23 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, this->GetOption("CPACK_DMG_DS_STORE") ? this->GetOption("CPACK_DMG_DS_STORE") : ""; + const std::string cpack_dmg_languages = + this->GetOption("CPACK_DMG_LANGUAGES") + ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; + // only put license on dmg if is user provided if(!cpack_license_file.empty() && cpack_license_file.find("CPack.GenericLicense.txt") != std::string::npos) - { + { cpack_license_file = ""; - } + } + + // use sla_dir if both sla_dir and license_file are set + if(!cpack_license_file.empty() && + !slaDirectory.empty()) + { + cpack_license_file = ""; + } // The staging directory contains everything that will end-up inside the // final disk image ... @@ -418,54 +510,122 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } } - if(!cpack_license_file.empty()) - { + if(!cpack_license_file.empty() || !slaDirectory.empty()) + { + // Use old hardcoded style if sla_dir is not set + bool oldStyle = slaDirectory.empty(); std::string sla_r = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); sla_r += "/sla.r"; - cmsys::ifstream ifs; - ifs.open(cpack_license_file.c_str()); - if(ifs.is_open()) - { - cmGeneratedFileStream osf(sla_r.c_str()); - osf << "#include \n\n"; - osf << SLAHeader; - osf << "\n"; - osf << "data 'TEXT' (5002, \"English\") {\n"; - while(ifs.good()) + std::vector languages; + if(!oldStyle) { - std::string line; - std::getline(ifs, line); - // escape quotes - std::string::size_type pos = line.find('\"'); - while(pos != std::string::npos) + cmSystemTools::ExpandListArgument(cpack_dmg_languages, languages); + } + + cmGeneratedFileStream ofs(sla_r.c_str()); + ofs << "#include \n\n"; + if(oldStyle) + { + ofs << SLAHeader; + ofs << "\n"; + } + else + { + /* + * LPic Layout + * (https://github.com/pypt/dmg-add-license/blob/master/main.c) + * as far as I can tell (no official documentation seems to exist): + * struct LPic { + * uint16_t default_language; // points to a resid, defaulting to 0, + * // which is the first set language + * uint16_t length; + * struct { + * uint16_t language_code; + * uint16_t resid; + * uint16_t encoding; // Encoding from TextCommon.h, + * // forcing MacRoman (0) for now. Might need to + * // allow overwrite per license by user later + * } item[1]; + * } + */ + + // Create vector first for readability, then iterate to write to ofs + std::vector header_data; + header_data.push_back(0); + header_data.push_back(languages.size()); + for(size_t i = 0; i < languages.size(); ++i) { - line.replace(pos, 1, "\\\""); - pos = line.find('\"', pos+2); + CFStringRef language_cfstring = CFStringCreateWithCString( + NULL, languages[i].c_str(), kCFStringEncodingUTF8); + CFStringRef iso_language = + CFLocaleCreateCanonicalLanguageIdentifierFromString( + NULL, language_cfstring); + if (!iso_language) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + languages[i] << " is not a recognized language" + << std::endl); + } + char *iso_language_cstr = (char *) malloc(65); + CFStringGetCString(iso_language, iso_language_cstr, 64, + kCFStringEncodingMacRoman); + LangCode lang = 0; + RegionCode region = 0; + OSStatus err = LocaleStringToLangAndRegionCodes(iso_language_cstr, + &lang, ®ion); + if (err != noErr) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "No language/region code available for " << iso_language_cstr + << std::endl); + free(iso_language_cstr); + return 0; + } + free(iso_language_cstr); + header_data.push_back(region); + header_data.push_back(i); + header_data.push_back(0); } - // break up long lines to avoid Rez errors - std::vector lines; - const size_t max_line_length = 512; - for(size_t i=0; i line.size()) - line_length = line.size()-i; - lines.push_back(line.substr(i, line_length)); + ofs << " $\""; } - for(size_t i=0; iGetOption("CPACK_TOPLEVEL_DIRECTORY"); @@ -539,7 +699,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } temp_image = temp_udco; - } + } // Create the final compressed read-only disk image ... @@ -607,3 +767,126 @@ cmCPackDragNDropGenerator::GetComponentInstallDirNameSuffix( return GetComponentPackageFileName(package_file_name, componentName, false); } + +void +cmCPackDragNDropGenerator::WriteLicense(cmGeneratedFileStream& outputStream, + int licenseNumber, std::string licenseLanguage, std::string licenseFile) +{ + if(!licenseFile.empty()) + { + licenseNumber = 5002; + licenseLanguage = "English"; + } + + // License header + outputStream << "data 'TEXT' (" << licenseNumber << ", \"" + << licenseLanguage << "\") {\n"; + // License body + std::string actual_license = !licenseFile.empty() ? licenseFile : + (slaDirectory + "/" + licenseLanguage + ".license.txt"); + cmsys::ifstream license_ifs; + license_ifs.open(actual_license.c_str()); + if(license_ifs.is_open()) + { + while(license_ifs.good()) + { + std::string line; + std::getline(license_ifs, line); + if(!line.empty()) + { + EscapeQuotes(line); + std::vector lines; + BreakLongLine(line, lines); + for(size_t i = 0; i < lines.size(); ++i) + { + outputStream << " \"" << lines[i] << "\"\n"; + } + } + outputStream << " \"\\n\"\n"; + } + license_ifs.close(); + } + + // End of License + outputStream << "};\n\n"; + if(!licenseFile.empty()) + { + outputStream << SLASTREnglish; + } + else + { + // Menu header + outputStream << "resource 'STR#' (" << licenseNumber << ", \"" + << licenseLanguage << "\") {\n"; + outputStream << " {\n"; + + // Menu body + cmsys::ifstream menu_ifs; + menu_ifs.open((slaDirectory+"/"+licenseLanguage+".menu.txt").c_str()); + if(menu_ifs.is_open()) + { + size_t lines_written = 0; + while(menu_ifs.good()) + { + // Lines written from original file, not from broken up lines + std::string line; + std::getline(menu_ifs, line); + if(!line.empty()) + { + EscapeQuotes(line); + std::vector lines; + BreakLongLine(line, lines); + for(size_t i = 0; i < lines.size(); ++i) + { + std::string comma; + // We need a comma after every complete string, + // but not on the very last line + if(lines_written != 8 && i == lines.size() - 1) + { + comma = ","; + } + else + { + comma = ""; + } + outputStream << " \"" << lines[i] << "\"" << comma << "\n"; + } + ++lines_written; + } + } + menu_ifs.close(); + } + + //End of menu + outputStream << " }\n"; + outputStream << "};\n"; + outputStream << "\n"; + } +} + +void +cmCPackDragNDropGenerator::BreakLongLine(const std::string& line, + std::vector& lines) +{ + const size_t max_line_length = 512; + for(size_t i = 0; i < line.size(); i += max_line_length) + { + int line_length = max_line_length; + if(i + max_line_length > line.size()) + { + line_length = line.size() - i; + } + lines.push_back(line.substr(i, line_length)); + } +} + +void +cmCPackDragNDropGenerator::EscapeQuotes(std::string& line) +{ + std::string::size_type pos = line.find('\"'); + while(pos != std::string::npos) + { + line.replace(pos, 1, "\\\""); + pos = line.find('\"', pos + 2); + } +} diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 1c84d49..12db469 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -15,6 +15,8 @@ #include "cmCPackGenerator.h" +class cmGeneratedFileStream; + /** \class cmCPackDragNDropGenerator * \brief A generator for OSX drag-n-drop installs */ @@ -42,6 +44,15 @@ protected: int CreateDMG(const std::string& src_dir, const std::string& output_file); std::string InstallPrefix; + +private: + std::string slaDirectory; + + void WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber, + std::string licenseLanguage, std::string licenseFile = ""); + void BreakLongLine(const std::string& line, + std::vector& lines); + void EscapeQuotes(std::string& line); }; #endif ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-dmg-multilanguage-sla.rst | 7 + Modules/CPackDMG.cmake | 13 + Source/CMakeLists.txt | 3 + Source/CMakeVersion.cmake | 2 +- Source/CPack/cmCPackDragNDropGenerator.cxx | 361 +++++++++++++++++++--- Source/CPack/cmCPackDragNDropGenerator.h | 11 + 6 files changed, 357 insertions(+), 40 deletions(-) create mode 100644 Help/release/dev/cpack-dmg-multilanguage-sla.rst hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 6 14:58:08 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 6 Nov 2015 14:58:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-479-g08b8fef Message-ID: <20151106195808.64EB2C346E@public.kitware.com> 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, master has been updated via 08b8fef254f4fb705046e5c59c1b8e2f4f3afe22 (commit) via 73f255e29d2ac9b45106e9ba7c9bb20ff2ab4349 (commit) via ba819f49df33b546072a5928de3253770c4716b9 (commit) from 13dc7bdb5e3a0eaaf3607b154bba77a01404a788 (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=08b8fef254f4fb705046e5c59c1b8e2f4f3afe22 commit 08b8fef254f4fb705046e5c59c1b8e2f4f3afe22 Merge: 13dc7bd 73f255e Author: Brad King AuthorDate: Fri Nov 6 14:58:06 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 6 14:58:06 2015 -0500 Merge topic 'fortran-line-directives' 73f255e2 cmFortranLexer: Populate empty doxygen @param comments ba819f49 cmFortranParser: Parse #line directives ----------------------------------------------------------------------- Summary of changes: Source/cmFortranLexer.cxx | 592 +++++++++++++++++++++------------------- Source/cmFortranLexer.h | 16 +- Source/cmFortranLexer.in.l | 3 +- Source/cmFortranParser.cxx | 473 +++++++++++++++++--------------- Source/cmFortranParser.h | 2 + Source/cmFortranParser.y | 10 +- Source/cmFortranParserImpl.cxx | 26 ++ Source/cmFortranParserTokens.h | 108 ++++---- 8 files changed, 656 insertions(+), 574 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 6 14:58:10 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 6 Nov 2015 14:58:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-482-g5bd78b0 Message-ID: <20151106195810.CFFBBC347F@public.kitware.com> 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, master has been updated via 5bd78b0e999d28b163485232e434f5c7a5678ddd (commit) via a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2 (commit) via ed67f4052264003133b19edde2c85791d501e001 (commit) from 08b8fef254f4fb705046e5c59c1b8e2f4f3afe22 (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=5bd78b0e999d28b163485232e434f5c7a5678ddd commit 5bd78b0e999d28b163485232e434f5c7a5678ddd Merge: 08b8fef a3c5ca9 Author: Brad King AuthorDate: Fri Nov 6 14:58:09 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 6 14:58:09 2015 -0500 Merge topic 'ninja-version-refactor' a3c5ca96 cmGlobalNinjaGenerator: Save 'ninja' version very early ed67f405 cmGlobalNinjaGenerator: Save path to 'ninja' tool very early ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalNinjaGenerator.cxx | 39 +++++++++++++++++++++---------------- Source/cmGlobalNinjaGenerator.h | 6 ++++-- 2 files changed, 26 insertions(+), 19 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 6 14:58:13 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 6 Nov 2015 14:58:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-485-g39e830a Message-ID: <20151106195813.C8E77C348D@public.kitware.com> 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, master has been updated via 39e830a98e81929ce95694f2f81d92ffd3f14d5b (commit) via e5b70ed0137df3b72f279a039cbdae1a20784473 (commit) via f2d98e2d3c9d7581703b124d3436312949dda141 (commit) from 5bd78b0e999d28b163485232e434f5c7a5678ddd (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=39e830a98e81929ce95694f2f81d92ffd3f14d5b commit 39e830a98e81929ce95694f2f81d92ffd3f14d5b Merge: 5bd78b0 e5b70ed Author: Brad King AuthorDate: Fri Nov 6 14:58:11 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 6 14:58:11 2015 -0500 Merge topic 'cpack-deb-config-file-source-field' e5b70ed0 CPackDEB: added config file optional Source field f2d98e2d CPackDEB: minor documentation and debug logging fixes diff --cc Tests/CMakeLists.txt index e13dc79,d42a322..f381758 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@@ -1033,10 -1033,10 +1033,11 @@@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=de set(DEB_CONFIGURATIONS_TO_TEST "components-lintian-dpkgdeb-checks" "components-description1" "components-description2" + "components-source" "components-shlibdeps1" "components-depend1" - "components-depend2") + "components-depend2" + "compression") set(CPackGen "DEB") set(CPackRun_CPackGen "-DCPackGen=${CPackGen}") ----------------------------------------------------------------------- Summary of changes: .../dev/cpack-deb-config-file-source-field.rst | 6 ++ Modules/CPackDeb.cmake | 63 +++++++++++++++----- Source/CPack/cmCPackDebGenerator.cxx | 7 +++ Tests/CMakeLists.txt | 1 + ...=> MyLibCPackConfig-components-source.cmake.in} | 10 +++- ...> RunCPackVerifyResult-components-source.cmake} | 36 ++++------- 6 files changed, 82 insertions(+), 41 deletions(-) create mode 100644 Help/release/dev/cpack-deb-config-file-source-field.rst copy Tests/CPackComponentsDEB/{MyLibCPackConfig-components-depend2.cmake.in => MyLibCPackConfig-components-source.cmake.in} (71%) copy Tests/CPackComponentsDEB/{RunCPackVerifyResult-components-depend1.cmake => RunCPackVerifyResult-components-source.cmake} (58%) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 6 14:58:27 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 6 Nov 2015 14:58:27 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1255-g3b4c612 Message-ID: <20151106195827.8A4CAC347F@public.kitware.com> 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 3b4c612aac81b5a8ec5e53fcd847eb8a03e3ba59 (commit) via 39e830a98e81929ce95694f2f81d92ffd3f14d5b (commit) via 5bd78b0e999d28b163485232e434f5c7a5678ddd (commit) via 08b8fef254f4fb705046e5c59c1b8e2f4f3afe22 (commit) from 08f8b2ab31d4df0b7b80a8d85c8719e07452880b (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=3b4c612aac81b5a8ec5e53fcd847eb8a03e3ba59 commit 3b4c612aac81b5a8ec5e53fcd847eb8a03e3ba59 Merge: 08f8b2a 39e830a Author: Brad King AuthorDate: Fri Nov 6 14:58:21 2015 -0500 Commit: Brad King CommitDate: Fri Nov 6 14:58:21 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Sat Nov 7 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 7 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-486-gda65c51 Message-ID: <20151107050108.DC2D8C3AF7@public.kitware.com> 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, master has been updated via da65c5191c7692d2f733561eef336eea675f42a5 (commit) from 39e830a98e81929ce95694f2f81d92ffd3f14d5b (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=da65c5191c7692d2f733561eef336eea675f42a5 commit da65c5191c7692d2f733561eef336eea675f42a5 Author: Kitware Robot AuthorDate: Sat Nov 7 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Sat Nov 7 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 62142c6..0b34f0a 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151106) +set(CMake_VERSION_PATCH 20151107) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Nov 8 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 8 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-487-gf071d8e Message-ID: <20151108050108.4F25CC321C@public.kitware.com> 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, master has been updated via f071d8ebd4a7bd34f52c92cec539a6afb8f277e6 (commit) from da65c5191c7692d2f733561eef336eea675f42a5 (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=f071d8ebd4a7bd34f52c92cec539a6afb8f277e6 commit f071d8ebd4a7bd34f52c92cec539a6afb8f277e6 Author: Kitware Robot AuthorDate: Sun Nov 8 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Sun Nov 8 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0b34f0a..5ab67e4 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151107) +set(CMake_VERSION_PATCH 20151108) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From steveire at gmail.com Sun Nov 8 07:37:38 2015 From: steveire at gmail.com (Stephen Kelly) Date: Sun, 8 Nov 2015 07:37:38 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1257-g680f645 Message-ID: <20151108123738.0D1C6C3F1A@public.kitware.com> 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 680f645f5d26b05b687965dd1baac38b0551ac9f (commit) via 87605acb1c89dfe65795fd99b6acb2b9553f74af (commit) from 3b4c612aac81b5a8ec5e53fcd847eb8a03e3ba59 (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=680f645f5d26b05b687965dd1baac38b0551ac9f commit 680f645f5d26b05b687965dd1baac38b0551ac9f Merge: 3b4c612 87605ac Author: Stephen Kelly AuthorDate: Sun Nov 8 07:37:37 2015 -0500 Commit: CMake Topic Stage CommitDate: Sun Nov 8 07:37:37 2015 -0500 Merge topic 'fix-alias-target-access' into next 87605acb Alias: Fix access at generate-time (#15832) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=87605acb1c89dfe65795fd99b6acb2b9553f74af commit 87605acb1c89dfe65795fd99b6acb2b9553f74af Author: Stephen Kelly AuthorDate: Sun Nov 8 13:31:25 2015 +0100 Commit: Stephen Kelly CommitDate: Sun Nov 8 13:36:21 2015 +0100 Alias: Fix access at generate-time (#15832) Commit c389f8bb (cmLocalGenerator: Port Find method away from GetGeneratorTarget, 2015-10-25) ported the implementation of FindGeneratorTargetToUse away from the FindTargetToUse method, but neglected to handle alias targets. The latter method has a parameter to determine whether to include alias targets in the search, but as that is only needed at configure time, this generate-time equivalent does not need the condition. diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 3d2db42..2126c71 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2274,6 +2274,12 @@ cmGlobalGenerator::FindTarget(const std::string& name, cmGeneratorTarget* cmGlobalGenerator::FindGeneratorTarget(const std::string& name) const { + std::map::const_iterator ai = + this->AliasTargets.find(name); + if (ai != this->AliasTargets.end()) + { + return this->FindGeneratorTargetImpl(ai->second); + } if (cmGeneratorTarget* tgt = this->FindGeneratorTargetImpl(name)) { return tgt; diff --git a/Tests/AliasTarget/CMakeLists.txt b/Tests/AliasTarget/CMakeLists.txt index c50b4e6..e1d8966 100644 --- a/Tests/AliasTarget/CMakeLists.txt +++ b/Tests/AliasTarget/CMakeLists.txt @@ -37,7 +37,9 @@ target_include_directories(bat PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") add_executable(targetgenerator targetgenerator.cpp) add_executable(Generator::Target ALIAS targetgenerator) -add_custom_target(usealias Generator::Target) +add_subdirectory(subdir) + +add_custom_target(usealias Generator::Target $) add_dependencies(bat usealias) if (NOT TARGET Another::Alias) ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalGenerator.cxx | 6 ++++++ Tests/AliasTarget/CMakeLists.txt | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From steveire at gmail.com Sun Nov 8 07:56:58 2015 From: steveire at gmail.com (Stephen Kelly) Date: Sun, 8 Nov 2015 07:56:58 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1259-g5373eec Message-ID: <20151108125658.5F3B0C4177@public.kitware.com> 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 5373eeccbd6911aa862ecddbbd8fa520646447e6 (commit) via 9103d8ace327d34a6bc5085e0ec91abc6e8053f1 (commit) from 680f645f5d26b05b687965dd1baac38b0551ac9f (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=5373eeccbd6911aa862ecddbbd8fa520646447e6 commit 5373eeccbd6911aa862ecddbbd8fa520646447e6 Merge: 680f645 9103d8a Author: Stephen Kelly AuthorDate: Sun Nov 8 07:56:57 2015 -0500 Commit: CMake Topic Stage CommitDate: Sun Nov 8 07:56:57 2015 -0500 Merge topic 'fix-install-rules' into next 9103d8ac Install: Move SetHaveInstallRule to a more-obvious place https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9103d8ace327d34a6bc5085e0ec91abc6e8053f1 commit 9103d8ace327d34a6bc5085e0ec91abc6e8053f1 Author: Stephen Kelly AuthorDate: Sun Nov 8 13:41:33 2015 +0100 Commit: Stephen Kelly CommitDate: Sun Nov 8 13:56:11 2015 +0100 Install: Move SetHaveInstallRule to a more-obvious place The moved-from location checks for the existence of whether certain generators are needed for any target in a loop, rather than whether the current target has an install rule. This was introduced in commit v3.4.0-rc1~275^2~3 (cmInstallCommand: Move the SetHaveInstallRule invocation., 2015-07-28). Move the SetHaveInstallRule call to a more-obvious place where the cmInstallTargetGenerator is constructed. diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index 333c2ff..d3c2e26 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -27,6 +27,7 @@ static cmInstallTargetGenerator* CreateInstallTargetGenerator(cmTarget& target, { cmInstallGenerator::MessageLevel message = cmInstallGenerator::SelectMessageLevel(target.GetMakefile()); + target.SetHaveInstallRule(true); return new cmInstallTargetGenerator(target.GetName(), args.GetDestination().c_str(), impLib, args.GetPermissions().c_str(), @@ -753,12 +754,6 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) installsPublicHeader = installsPublicHeader || publicHeaderGenerator != 0; installsResource = installsResource || resourceGenerator; - if (installsArchive || installsRuntime || installsFramework - || installsLibrary || installsBundle) - { - target.SetHaveInstallRule(true); - } - this->Makefile->AddInstallGenerator(archiveGenerator); this->Makefile->AddInstallGenerator(libraryGenerator); this->Makefile->AddInstallGenerator(runtimeGenerator); ----------------------------------------------------------------------- Summary of changes: Source/cmInstallCommand.cxx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) hooks/post-receive -- CMake From steveire at gmail.com Sun Nov 8 08:20:27 2015 From: steveire at gmail.com (Stephen Kelly) Date: Sun, 8 Nov 2015 08:20:27 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1261-g382dcfc Message-ID: <20151108132027.C5E22C37D3@public.kitware.com> 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 382dcfc4eea6ed4ff12fe1a1dfd5fe243fd3774d (commit) via 4ce9742ae33678d8fce189d172c2fffb1a43061c (commit) from 5373eeccbd6911aa862ecddbbd8fa520646447e6 (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=382dcfc4eea6ed4ff12fe1a1dfd5fe243fd3774d commit 382dcfc4eea6ed4ff12fe1a1dfd5fe243fd3774d Merge: 5373eec 4ce9742 Author: Stephen Kelly AuthorDate: Sun Nov 8 08:20:27 2015 -0500 Commit: CMake Topic Stage CommitDate: Sun Nov 8 08:20:27 2015 -0500 Merge topic 'fix-alias-target-access' into next 4ce9742a Alias: Fix access at generate-time (#15832) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ce9742ae33678d8fce189d172c2fffb1a43061c commit 4ce9742ae33678d8fce189d172c2fffb1a43061c Author: Stephen Kelly AuthorDate: Sun Nov 8 13:31:25 2015 +0100 Commit: Stephen Kelly CommitDate: Sun Nov 8 13:54:49 2015 +0100 Alias: Fix access at generate-time (#15832) Commit c389f8bb (cmLocalGenerator: Port Find method away from GetGeneratorTarget, 2015-10-25) ported the implementation of FindGeneratorTargetToUse away from the FindTargetToUse method, but neglected to handle alias targets. The latter method has a parameter to determine whether to include alias targets in the search, but as that is only needed at configure time, this generate-time equivalent does not need the condition. diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 3d2db42..2126c71 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2274,6 +2274,12 @@ cmGlobalGenerator::FindTarget(const std::string& name, cmGeneratorTarget* cmGlobalGenerator::FindGeneratorTarget(const std::string& name) const { + std::map::const_iterator ai = + this->AliasTargets.find(name); + if (ai != this->AliasTargets.end()) + { + return this->FindGeneratorTargetImpl(ai->second); + } if (cmGeneratorTarget* tgt = this->FindGeneratorTargetImpl(name)) { return tgt; diff --git a/Tests/AliasTarget/CMakeLists.txt b/Tests/AliasTarget/CMakeLists.txt index c50b4e6..e1d8966 100644 --- a/Tests/AliasTarget/CMakeLists.txt +++ b/Tests/AliasTarget/CMakeLists.txt @@ -37,7 +37,9 @@ target_include_directories(bat PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") add_executable(targetgenerator targetgenerator.cpp) add_executable(Generator::Target ALIAS targetgenerator) -add_custom_target(usealias Generator::Target) +add_subdirectory(subdir) + +add_custom_target(usealias Generator::Target $) add_dependencies(bat usealias) if (NOT TARGET Another::Alias) diff --git a/Tests/AliasTarget/subdir/CMakeLists.txt b/Tests/AliasTarget/subdir/CMakeLists.txt new file mode 100644 index 0000000..8c84aea --- /dev/null +++ b/Tests/AliasTarget/subdir/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_library(tgt STATIC empty.cpp) +add_library(Sub::tgt ALIAS tgt) diff --git a/Tests/AliasTarget/subdir/empty.cpp b/Tests/AliasTarget/subdir/empty.cpp new file mode 100644 index 0000000..b19427a --- /dev/null +++ b/Tests/AliasTarget/subdir/empty.cpp @@ -0,0 +1,7 @@ +#ifdef _WIN32 +__declspec(dllexport) +#endif +int main(void) +{ + return 0; +} ----------------------------------------------------------------------- Summary of changes: Tests/AliasTarget/subdir/CMakeLists.txt | 3 +++ Tests/AliasTarget/{ => subdir}/empty.cpp | 0 2 files changed, 3 insertions(+) create mode 100644 Tests/AliasTarget/subdir/CMakeLists.txt copy Tests/AliasTarget/{ => subdir}/empty.cpp (100%) hooks/post-receive -- CMake From domen.vrankar at gmail.com Sun Nov 8 16:36:15 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Sun, 8 Nov 2015 16:36:15 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1267-g7621f4f Message-ID: <20151108213615.31708C4316@public.kitware.com> 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 7621f4f4012d900cd6fb588fed076857de5521e0 (commit) via a4c0917e1eebd45e5ba409c7fcb28b7a2eb9225b (commit) via 24012e3c15c127fe570a222fc8cde37cf2a27023 (commit) via 47182ab876260c20554d8c5e3e8f453264a47b53 (commit) via f071d8ebd4a7bd34f52c92cec539a6afb8f277e6 (commit) via da65c5191c7692d2f733561eef336eea675f42a5 (commit) from 382dcfc4eea6ed4ff12fe1a1dfd5fe243fd3774d (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=7621f4f4012d900cd6fb588fed076857de5521e0 commit 7621f4f4012d900cd6fb588fed076857de5521e0 Merge: 382dcfc a4c0917 Author: Domen Vrankar AuthorDate: Sun Nov 8 16:36:14 2015 -0500 Commit: CMake Topic Stage CommitDate: Sun Nov 8 16:36:14 2015 -0500 Merge topic 'cpack-deb-new-component-vars' into next a4c0917e CPackDeb: set priority control field per component 24012e3c CPackDeb: additional CPACK_DEBIAN_PACKAGE_SECTION documentation 47182ab8 CPackDeb: set section control field per component f071d8eb CMake Nightly Date Stamp da65c519 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a4c0917e1eebd45e5ba409c7fcb28b7a2eb9225b commit a4c0917e1eebd45e5ba409c7fcb28b7a2eb9225b Author: Domen Vrankar AuthorDate: Sun Nov 8 22:35:30 2015 +0100 Commit: Domen Vrankar CommitDate: Sun Nov 8 22:35:30 2015 +0100 CPackDeb: set priority control field per component diff --git a/Help/release/dev/cpack-deb-new-component-vars.rst b/Help/release/dev/cpack-deb-new-component-vars.rst new file mode 100644 index 0000000..ab7022b --- /dev/null +++ b/Help/release/dev/cpack-deb-new-component-vars.rst @@ -0,0 +1,7 @@ +cpack-deb-new-component-vars +---------------------------------- + +* The :module:`CPackDeb` module learned to set package section + and priority per-component. + See :variable:`CPACK_DEBIAN__PACKAGE_SECTION` + and :variable:`CPACK_DEBIAN__PACKAGE_PRIORITY`. diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index e2c2312..722dca4 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -120,12 +120,16 @@ # # # .. variable:: CPACK_DEBIAN_PACKAGE_PRIORITY +# CPACK_DEBIAN__PACKAGE_PRIORITY # -# The Debian package priority +# Set Priority control field e.g. required, important, standard, optional, +# extra # # * Mandatory : YES # * Default : 'optional' # +# See https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities +# # # .. variable:: CPACK_DEBIAN_PACKAGE_HOMEPAGE # @@ -599,7 +603,7 @@ function(cpack_deb_prepare_package_vars) # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION) + foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY) set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}") # if set, overrides the global variable https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=24012e3c15c127fe570a222fc8cde37cf2a27023 commit 24012e3c15c127fe570a222fc8cde37cf2a27023 Author: Domen Vrankar AuthorDate: Sun Nov 8 22:17:27 2015 +0100 Commit: Domen Vrankar CommitDate: Sun Nov 8 22:21:09 2015 +0100 CPackDeb: additional CPACK_DEBIAN_PACKAGE_SECTION documentation diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 2c1f236..e2c2312 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -102,9 +102,14 @@ # .. variable:: CPACK_DEBIAN_PACKAGE_SECTION # CPACK_DEBIAN__PACKAGE_SECTION # +# Set Section control field e.g. admin, devel, doc, ... +# # * Mandatory : YES # * Default : 'devel' # +# See https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections +# +# # .. variable:: CPACK_DEBIAN_COMPRESSION_TYPE # # The compression used for creating the Debian package. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47182ab876260c20554d8c5e3e8f453264a47b53 commit 47182ab876260c20554d8c5e3e8f453264a47b53 Author: Markus Rickert AuthorDate: Sun Nov 8 22:10:12 2015 +0100 Commit: Domen Vrankar CommitDate: Sun Nov 8 22:19:37 2015 +0100 CPackDeb: set section control field per component diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 875a534..2c1f236 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -100,6 +100,7 @@ # # # .. variable:: CPACK_DEBIAN_PACKAGE_SECTION +# CPACK_DEBIAN__PACKAGE_SECTION # # * Mandatory : YES # * Default : 'devel' @@ -590,18 +591,18 @@ 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_${dependency_type_} + # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(dependency_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE) - set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${dependency_type_}") + foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION) + set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}") - # if set, overrides the global dependency + # if set, overrides the global variable if(DEFINED ${_component_var}) - set(CPACK_DEBIAN_PACKAGE_${dependency_type_} "${${_component_var}}") + set(CPACK_DEBIAN_PACKAGE_${value_type_} "${${_component_var}}") if(CPACK_DEBIAN_PACKAGE_DEBUG) - message("CPackDeb Debug: component '${_local_component_name}' ${dependency_type_} " - "dependencies set to '${CPACK_DEBIAN_PACKAGE_${dependency_type_}}'") + message("CPackDeb Debug: component '${_local_component_name}' ${value_type_} " + "value set to '${CPACK_DEBIAN_PACKAGE_${value_type_}}'") endif() endif() endforeach() ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-deb-new-component-vars.rst | 7 ++++++ Modules/CPackDeb.cmake | 26 ++++++++++++++------- Source/CMakeVersion.cmake | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 Help/release/dev/cpack-deb-new-component-vars.rst hooks/post-receive -- CMake From domen.vrankar at gmail.com Sun Nov 8 17:46:36 2015 From: domen.vrankar at gmail.com (Domen Vrankar) Date: Sun, 8 Nov 2015 17:46:36 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1270-g9aa7aab Message-ID: <20151108224636.9445FC381A@public.kitware.com> 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 9aa7aabe2c969b46359c9e756b5483e213f1d06b (commit) via 3101b714421578987d8dc28e097baaa3c1c29aae (commit) via 3fd6cb7a7894811679d8423ad301b55b520d6ae2 (commit) from 7621f4f4012d900cd6fb588fed076857de5521e0 (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=9aa7aabe2c969b46359c9e756b5483e213f1d06b commit 9aa7aabe2c969b46359c9e756b5483e213f1d06b Merge: 7621f4f 3101b71 Author: Domen Vrankar AuthorDate: Sun Nov 8 17:46:35 2015 -0500 Commit: CMake Topic Stage CommitDate: Sun Nov 8 17:46:35 2015 -0500 Merge topic 'cpack-deb-new-component-vars' into next 3101b714 CPackDeb: CPACK_DEBIAN_PACKAGE_NAME documentation improvement 3fd6cb7a CPackDeb: set package control field per component https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3101b714421578987d8dc28e097baaa3c1c29aae commit 3101b714421578987d8dc28e097baaa3c1c29aae Author: Domen Vrankar AuthorDate: Sun Nov 8 23:46:13 2015 +0100 Commit: Domen Vrankar CommitDate: Sun Nov 8 23:46:13 2015 +0100 CPackDeb: CPACK_DEBIAN_PACKAGE_NAME documentation improvement diff --git a/Help/release/dev/cpack-deb-new-component-vars.rst b/Help/release/dev/cpack-deb-new-component-vars.rst index ab7022b..b51fd0f 100644 --- a/Help/release/dev/cpack-deb-new-component-vars.rst +++ b/Help/release/dev/cpack-deb-new-component-vars.rst @@ -1,7 +1,7 @@ cpack-deb-new-component-vars ---------------------------------- -* The :module:`CPackDeb` module learned to set package section - and priority per-component. +* The :module:`CPackDeb` module learned to set Package, Section + and Priority control fields per-component. See :variable:`CPACK_DEBIAN__PACKAGE_SECTION` and :variable:`CPACK_DEBIAN__PACKAGE_PRIORITY`. diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 7e9eb86..2aaef61 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -29,10 +29,18 @@ # .. variable:: CPACK_DEBIAN_PACKAGE_NAME # CPACK_DEBIAN__PACKAGE_NAME # -# The Debian package summary +# Set Package control field (variable is automatically transformed to lower +# case). # # * Mandatory : YES -# * Default : :variable:`CPACK_PACKAGE_NAME` (lower case) +# * Default : +# +# - :variable:`CPACK_PACKAGE_NAME` for non-component based +# installations +# - :variable:`CPACK_DEBIAN_PACKAGE_NAME` suffixed with - +# for component-based installations. +# +# See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source # # # .. variable:: CPACK_DEBIAN_PACKAGE_VERSION https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3fd6cb7a7894811679d8423ad301b55b520d6ae2 commit 3fd6cb7a7894811679d8423ad301b55b520d6ae2 Author: Markus Rickert AuthorDate: Sun Nov 8 23:44:00 2015 +0100 Commit: Domen Vrankar CommitDate: Sun Nov 8 23:44:00 2015 +0100 CPackDeb: set package control field per component diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 722dca4..7e9eb86 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -27,6 +27,7 @@ # However as a handy reminder here comes the list of specific variables: # # .. variable:: CPACK_DEBIAN_PACKAGE_NAME +# CPACK_DEBIAN__PACKAGE_NAME # # The Debian package summary # @@ -603,7 +604,7 @@ function(cpack_deb_prepare_package_vars) # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY) + foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY NAME) set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}") # if set, overrides the global variable @@ -704,10 +705,11 @@ function(cpack_deb_prepare_package_vars) 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() - set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME "") + if(CPACK_DEBIAN_${_local_component_name}_PACKAGE_NAME) + string(TOLOWER "${CPACK_DEBIAN_${_local_component_name}_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME) + else() + string(TOLOWER "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_DEB_PACKAGE_COMPONENT}" CPACK_DEBIAN_PACKAGE_NAME) + endif() endif() # Print out some debug information if we were asked for that ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-deb-new-component-vars.rst | 4 ++-- Modules/CPackDeb.cmake | 24 +++++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Nov 9 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 9 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-488-gc53e692 Message-ID: <20151109050108.DC159C3CD8@public.kitware.com> 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, master has been updated via c53e692db92ce5f24151f4bded40ffcddc9b0fb2 (commit) from f071d8ebd4a7bd34f52c92cec539a6afb8f277e6 (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=c53e692db92ce5f24151f4bded40ffcddc9b0fb2 commit c53e692db92ce5f24151f4bded40ffcddc9b0fb2 Author: Kitware Robot AuthorDate: Mon Nov 9 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Mon Nov 9 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 5ab67e4..0f34c90 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151108) +set(CMake_VERSION_PATCH 20151109) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 09:51:45 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 09:51:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1272-ge9dda56 Message-ID: <20151109145145.C8C13C3876@public.kitware.com> 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 e9dda568cef8da23dca873a9825d67ab93bbe2f4 (commit) via 24b99875e384e1141b6e8e2004718e890b765893 (commit) from 9aa7aabe2c969b46359c9e756b5483e213f1d06b (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=e9dda568cef8da23dca873a9825d67ab93bbe2f4 commit e9dda568cef8da23dca873a9825d67ab93bbe2f4 Merge: 9aa7aab 24b9987 Author: Brad King AuthorDate: Mon Nov 9 09:51:44 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 09:51:44 2015 -0500 Merge topic 'FindGTK2_GTK2_TARGETS' into next 24b99875 fixup! FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=24b99875e384e1141b6e8e2004718e890b765893 commit 24b99875e384e1141b6e8e2004718e890b765893 Author: Brad King AuthorDate: Mon Nov 9 09:51:20 2015 -0500 Commit: Brad King CommitDate: Mon Nov 9 09:51:20 2015 -0500 fixup! FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS diff --git a/Help/release/dev/FindGTK2_GTK2_TARGETS.rst b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst index 216e2e8..76e3657 100644 --- a/Help/release/dev/FindGTK2_GTK2_TARGETS.rst +++ b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst @@ -1,7 +1,7 @@ FindGTK2_GTK2_TARGETS --------------------- -* The `GTK2_LIBRARIES` variable created by the :module:`FindGTK2` module - now contains the targets instead of the paths to the libraries if - `GTK2_USE_IMPORTED_TARGETS` is enabled. Moreover it adds a new - `GTK2_TARGETS` variable containing all the targets imported. +* The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is + enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported + targets instead of the paths to the libraries. Moreover it now sets + a new ``GTK2_TARGETS`` variable containing all the targets imported. ----------------------------------------------------------------------- Summary of changes: Help/release/dev/FindGTK2_GTK2_TARGETS.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 09:52:04 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 09:52:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1274-gb475189 Message-ID: <20151109145204.3E459C39B1@public.kitware.com> 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 b4751893d6596db6dba0b1d44ea19390308ef549 (commit) via 5d79b9563f7852098721a9218a13c84383f780ed (commit) from e9dda568cef8da23dca873a9825d67ab93bbe2f4 (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=b4751893d6596db6dba0b1d44ea19390308ef549 commit b4751893d6596db6dba0b1d44ea19390308ef549 Merge: e9dda56 5d79b95 Author: Brad King AuthorDate: Mon Nov 9 09:52:03 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 09:52:03 2015 -0500 Merge topic 'FindGTK2_GTK2_TARGETS' into next 5d79b956 FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5d79b9563f7852098721a9218a13c84383f780ed commit 5d79b9563f7852098721a9218a13c84383f780ed Author: Daniele E. Domenichelli AuthorDate: Fri Oct 30 12:33:53 2015 +0100 Commit: Brad King CommitDate: Mon Nov 9 09:51:50 2015 -0500 FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON Also add GTK2_TARGETS variable containing all imported targets. Previously, the GTK2_LIBRARIES variable was filled with the paths to the libraries, and only the GTK2_XXX_LIBRARY variables contained the imported targets. diff --git a/Help/release/dev/FindGTK2_GTK2_TARGETS.rst b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst new file mode 100644 index 0000000..76e3657 --- /dev/null +++ b/Help/release/dev/FindGTK2_GTK2_TARGETS.rst @@ -0,0 +1,7 @@ +FindGTK2_GTK2_TARGETS +--------------------- + +* The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is + enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported + targets instead of the paths to the libraries. Moreover it now sets + a new ``GTK2_TARGETS`` variable containing all the targets imported. diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index ab4ef3e..6e4a7f2 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -34,6 +34,7 @@ # GTK2_FOUND - Were all of your specified components found? # GTK2_INCLUDE_DIRS - All include directories # GTK2_LIBRARIES - All libraries +# GTK2_TARGETS - All imported targets # GTK2_DEFINITIONS - Additional compiler flags # # @@ -550,6 +551,9 @@ function(_GTK2_ADD_TARGET _var) add_library(GTK2::${_basename} UNKNOWN IMPORTED) + set(GTK2_TARGETS ${GTK2_TARGETS} GTK2::${_basename}) + set(GTK2_TARGETS ${GTK2_TARGETS} PARENT_SCOPE) + if(GTK2_${_var}_LIBRARY_RELEASE) set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_RELEASE "${GTK2_${_var}_LIBRARY_RELEASE}" ) @@ -602,6 +606,7 @@ endfunction() set(GTK2_FOUND) set(GTK2_INCLUDE_DIRS) set(GTK2_LIBRARIES) +set(GTK2_TARGETS) set(GTK2_DEFINITIONS) if(NOT GTK2_FIND_COMPONENTS) @@ -940,6 +945,11 @@ foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) endif() endforeach() +if(GTK2_USE_IMPORTED_TARGETS) + set(GTK2_LIBRARIES ${GTK2_TARGETS}) +endif() + + if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) set(GTK2_FOUND true) else() @@ -951,6 +961,7 @@ else() set(GTK2_VERSION_PATCH) set(GTK2_INCLUDE_DIRS) set(GTK2_LIBRARIES) + set(GTK2_TARGETS) set(GTK2_DEFINITIONS) endif() ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:00:13 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:00:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1279-g8f876df Message-ID: <20151109150013.655E5C4185@public.kitware.com> 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 8f876dfdc3d7f3b609f1b4aa9084bc60b86139a8 (commit) via 3be9d3d9790ae5cbbe419dd474b6984a0631a6fd (commit) via 57672e7275fc12534b5b13f9c922fe569936c81a (commit) via a45a4b2d86bf7d03d690433c3b1299ace1e6dbe0 (commit) via a60574f1bfbb5a153b7e55cf5183be93ac50bea0 (commit) from b4751893d6596db6dba0b1d44ea19390308ef549 (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=8f876dfdc3d7f3b609f1b4aa9084bc60b86139a8 commit 8f876dfdc3d7f3b609f1b4aa9084bc60b86139a8 Merge: b475189 3be9d3d Author: Brad King AuthorDate: Mon Nov 9 10:00:12 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:00:12 2015 -0500 Merge topic 'cpack-deb-new-component-vars' into next 3be9d3d9 Help: Add notes for topic 'cpack-deb-new-component-vars' 57672e72 CPackDeb: CPACK_DEBIAN_PACKAGE_NAME documentation improvement a45a4b2d CPackDeb: set package control field per component a60574f1 CPackDeb: set priority control field per component https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3be9d3d9790ae5cbbe419dd474b6984a0631a6fd commit 3be9d3d9790ae5cbbe419dd474b6984a0631a6fd Author: Domen Vrankar AuthorDate: Sun Nov 8 23:46:13 2015 +0100 Commit: Brad King CommitDate: Mon Nov 9 09:58:45 2015 -0500 Help: Add notes for topic 'cpack-deb-new-component-vars' diff --git a/Help/release/dev/cpack-deb-new-component-vars.rst b/Help/release/dev/cpack-deb-new-component-vars.rst new file mode 100644 index 0000000..b51fd0f --- /dev/null +++ b/Help/release/dev/cpack-deb-new-component-vars.rst @@ -0,0 +1,7 @@ +cpack-deb-new-component-vars +---------------------------------- + +* The :module:`CPackDeb` module learned to set Package, Section + and Priority control fields per-component. + See :variable:`CPACK_DEBIAN__PACKAGE_SECTION` + and :variable:`CPACK_DEBIAN__PACKAGE_PRIORITY`. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=57672e7275fc12534b5b13f9c922fe569936c81a commit 57672e7275fc12534b5b13f9c922fe569936c81a Author: Domen Vrankar AuthorDate: Sun Nov 8 23:46:13 2015 +0100 Commit: Brad King CommitDate: Mon Nov 9 09:58:30 2015 -0500 CPackDeb: CPACK_DEBIAN_PACKAGE_NAME documentation improvement diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 7e9eb86..2aaef61 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -29,10 +29,18 @@ # .. variable:: CPACK_DEBIAN_PACKAGE_NAME # CPACK_DEBIAN__PACKAGE_NAME # -# The Debian package summary +# Set Package control field (variable is automatically transformed to lower +# case). # # * Mandatory : YES -# * Default : :variable:`CPACK_PACKAGE_NAME` (lower case) +# * Default : +# +# - :variable:`CPACK_PACKAGE_NAME` for non-component based +# installations +# - :variable:`CPACK_DEBIAN_PACKAGE_NAME` suffixed with - +# for component-based installations. +# +# See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source # # # .. variable:: CPACK_DEBIAN_PACKAGE_VERSION https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a45a4b2d86bf7d03d690433c3b1299ace1e6dbe0 commit a45a4b2d86bf7d03d690433c3b1299ace1e6dbe0 Author: Markus Rickert AuthorDate: Sun Nov 8 23:44:00 2015 +0100 Commit: Brad King CommitDate: Mon Nov 9 09:57:48 2015 -0500 CPackDeb: set package control field per component diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 722dca4..7e9eb86 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -27,6 +27,7 @@ # However as a handy reminder here comes the list of specific variables: # # .. variable:: CPACK_DEBIAN_PACKAGE_NAME +# CPACK_DEBIAN__PACKAGE_NAME # # The Debian package summary # @@ -603,7 +604,7 @@ function(cpack_deb_prepare_package_vars) # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY) + foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY NAME) set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}") # if set, overrides the global variable @@ -704,10 +705,11 @@ function(cpack_deb_prepare_package_vars) 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() - set(CPACK_DEB_PACKAGE_COMPONENT_PART_NAME "") + if(CPACK_DEBIAN_${_local_component_name}_PACKAGE_NAME) + string(TOLOWER "${CPACK_DEBIAN_${_local_component_name}_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME) + else() + string(TOLOWER "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_DEB_PACKAGE_COMPONENT}" CPACK_DEBIAN_PACKAGE_NAME) + endif() endif() # Print out some debug information if we were asked for that https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a60574f1bfbb5a153b7e55cf5183be93ac50bea0 commit a60574f1bfbb5a153b7e55cf5183be93ac50bea0 Author: Domen Vrankar AuthorDate: Sun Nov 8 22:35:30 2015 +0100 Commit: Brad King CommitDate: Mon Nov 9 09:57:43 2015 -0500 CPackDeb: set priority control field per component diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index e2c2312..722dca4 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -120,12 +120,16 @@ # # # .. variable:: CPACK_DEBIAN_PACKAGE_PRIORITY +# CPACK_DEBIAN__PACKAGE_PRIORITY # -# The Debian package priority +# Set Priority control field e.g. required, important, standard, optional, +# extra # # * Mandatory : YES # * Default : 'optional' # +# See https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities +# # # .. variable:: CPACK_DEBIAN_PACKAGE_HOMEPAGE # @@ -599,7 +603,7 @@ function(cpack_deb_prepare_package_vars) # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_} # automatic dependency discovery will be performed afterwards. if(CPACK_DEB_PACKAGE_COMPONENT) - foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION) + foreach(value_type_ DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY) set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}") # if set, overrides the global variable ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:00:48 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:00:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1281-gee7fc8b Message-ID: <20151109150048.51E7CC419F@public.kitware.com> 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 ee7fc8b23c16a7692ab398909551b7bed1022d3d (commit) via f857471867229d9f364f2898ef152b7e4ecf40e2 (commit) from 8f876dfdc3d7f3b609f1b4aa9084bc60b86139a8 (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=ee7fc8b23c16a7692ab398909551b7bed1022d3d commit ee7fc8b23c16a7692ab398909551b7bed1022d3d Merge: 8f876df f857471 Author: Brad King AuthorDate: Mon Nov 9 10:00:47 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:00:47 2015 -0500 Merge topic 'cpack-deb-new-component-vars' into next f8574718 fixup! Help: Add notes for topic 'cpack-deb-new-component-vars' https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f857471867229d9f364f2898ef152b7e4ecf40e2 commit f857471867229d9f364f2898ef152b7e4ecf40e2 Author: Brad King AuthorDate: Mon Nov 9 10:00:38 2015 -0500 Commit: Brad King CommitDate: Mon Nov 9 10:00:38 2015 -0500 fixup! Help: Add notes for topic 'cpack-deb-new-component-vars' diff --git a/Help/release/dev/cpack-deb-new-component-vars.rst b/Help/release/dev/cpack-deb-new-component-vars.rst index b51fd0f..e30afdb 100644 --- a/Help/release/dev/cpack-deb-new-component-vars.rst +++ b/Help/release/dev/cpack-deb-new-component-vars.rst @@ -1,5 +1,5 @@ cpack-deb-new-component-vars ----------------------------------- +---------------------------- * The :module:`CPackDeb` module learned to set Package, Section and Priority control fields per-component. ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-deb-new-component-vars.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:01:27 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:01:27 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1283-g113cd68 Message-ID: <20151109150127.9B136C41B7@public.kitware.com> 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 113cd6847ae40078d49e5fd4b3aced9d83284032 (commit) via 04a2a923481bcc1cc734e1ed58d8505370ec909b (commit) from ee7fc8b23c16a7692ab398909551b7bed1022d3d (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=113cd6847ae40078d49e5fd4b3aced9d83284032 commit 113cd6847ae40078d49e5fd4b3aced9d83284032 Merge: ee7fc8b 04a2a92 Author: Brad King AuthorDate: Mon Nov 9 10:01:27 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:01:27 2015 -0500 Merge topic 'cpack-deb-new-component-vars' into next 04a2a923 Help: Add notes for topic 'cpack-deb-new-component-vars' https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=04a2a923481bcc1cc734e1ed58d8505370ec909b commit 04a2a923481bcc1cc734e1ed58d8505370ec909b Author: Domen Vrankar AuthorDate: Sun Nov 8 23:46:13 2015 +0100 Commit: Brad King CommitDate: Mon Nov 9 10:00:54 2015 -0500 Help: Add notes for topic 'cpack-deb-new-component-vars' diff --git a/Help/release/dev/cpack-deb-new-component-vars.rst b/Help/release/dev/cpack-deb-new-component-vars.rst new file mode 100644 index 0000000..e30afdb --- /dev/null +++ b/Help/release/dev/cpack-deb-new-component-vars.rst @@ -0,0 +1,7 @@ +cpack-deb-new-component-vars +---------------------------- + +* The :module:`CPackDeb` module learned to set Package, Section + and Priority control fields per-component. + See :variable:`CPACK_DEBIAN__PACKAGE_SECTION` + and :variable:`CPACK_DEBIAN__PACKAGE_PRIORITY`. ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:06:32 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:06:32 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-490-g20e445f Message-ID: <20151109150632.4E6ECC43C7@public.kitware.com> 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, master has been updated via 20e445f4418088ddf6e8f30ff3425af1588d2710 (commit) via 5d79b9563f7852098721a9218a13c84383f780ed (commit) from c53e692db92ce5f24151f4bded40ffcddc9b0fb2 (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=20e445f4418088ddf6e8f30ff3425af1588d2710 commit 20e445f4418088ddf6e8f30ff3425af1588d2710 Merge: c53e692 5d79b95 Author: Brad King AuthorDate: Mon Nov 9 10:06:30 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:06:30 2015 -0500 Merge topic 'FindGTK2_GTK2_TARGETS' 5d79b956 FindGTK2: Use targets in GTK2_LIBRARIES if GTK2_USE_IMPORTED_TARGETS is ON ----------------------------------------------------------------------- Summary of changes: Help/release/dev/FindGTK2_GTK2_TARGETS.rst | 7 +++++++ Modules/FindGTK2.cmake | 11 +++++++++++ 2 files changed, 18 insertions(+) create mode 100644 Help/release/dev/FindGTK2_GTK2_TARGETS.rst hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:06:34 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:06:34 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-492-ged48454 Message-ID: <20151109150634.DA5C7C43C9@public.kitware.com> 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, master has been updated via ed484544cbf39ffefe1898b8255a5189062e5c60 (commit) via 4ce9742ae33678d8fce189d172c2fffb1a43061c (commit) from 20e445f4418088ddf6e8f30ff3425af1588d2710 (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=ed484544cbf39ffefe1898b8255a5189062e5c60 commit ed484544cbf39ffefe1898b8255a5189062e5c60 Merge: 20e445f 4ce9742 Author: Brad King AuthorDate: Mon Nov 9 10:06:33 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:06:33 2015 -0500 Merge topic 'fix-alias-target-access' 4ce9742a Alias: Fix access at generate-time (#15832) ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalGenerator.cxx | 6 ++++++ Tests/AliasTarget/CMakeLists.txt | 4 +++- Tests/AliasTarget/subdir/CMakeLists.txt | 3 +++ Tests/AliasTarget/{ => subdir}/empty.cpp | 0 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 Tests/AliasTarget/subdir/CMakeLists.txt copy Tests/AliasTarget/{ => subdir}/empty.cpp (100%) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:06:37 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:06:37 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-499-g9ad0ae1 Message-ID: <20151109150637.7B45CC43CC@public.kitware.com> 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, master has been updated via 9ad0ae1c01d67ba788645d3114967ba8718d4ec7 (commit) via 04a2a923481bcc1cc734e1ed58d8505370ec909b (commit) via 57672e7275fc12534b5b13f9c922fe569936c81a (commit) via a45a4b2d86bf7d03d690433c3b1299ace1e6dbe0 (commit) via a60574f1bfbb5a153b7e55cf5183be93ac50bea0 (commit) via 24012e3c15c127fe570a222fc8cde37cf2a27023 (commit) via 47182ab876260c20554d8c5e3e8f453264a47b53 (commit) from ed484544cbf39ffefe1898b8255a5189062e5c60 (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=9ad0ae1c01d67ba788645d3114967ba8718d4ec7 commit 9ad0ae1c01d67ba788645d3114967ba8718d4ec7 Merge: ed48454 04a2a92 Author: Brad King AuthorDate: Mon Nov 9 10:06:35 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:06:35 2015 -0500 Merge topic 'cpack-deb-new-component-vars' 04a2a923 Help: Add notes for topic 'cpack-deb-new-component-vars' 57672e72 CPackDeb: CPACK_DEBIAN_PACKAGE_NAME documentation improvement a45a4b2d CPackDeb: set package control field per component a60574f1 CPackDeb: set priority control field per component 24012e3c CPackDeb: additional CPACK_DEBIAN_PACKAGE_SECTION documentation 47182ab8 CPackDeb: set section control field per component ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-deb-new-component-vars.rst | 7 +++ Modules/CPackDeb.cmake | 48 +++++++++++++++------ 2 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 Help/release/dev/cpack-deb-new-component-vars.rst hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:06:40 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:06:40 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-501-g0ecb5e7 Message-ID: <20151109150640.232AFC43CC@public.kitware.com> 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, master has been updated via 0ecb5e7f8b02c96823104ab4b08773dccb12a2c8 (commit) via f88533cc067ea252254b0851d87f09ef798e2c97 (commit) from 9ad0ae1c01d67ba788645d3114967ba8718d4ec7 (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=0ecb5e7f8b02c96823104ab4b08773dccb12a2c8 commit 0ecb5e7f8b02c96823104ab4b08773dccb12a2c8 Merge: 9ad0ae1 f88533c Author: Brad King AuthorDate: Mon Nov 9 10:06:38 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 10:06:38 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' f88533cc CPackDMG: Add support for multilingual SLAs ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-dmg-multilanguage-sla.rst | 7 + Modules/CPackDMG.cmake | 13 + Source/CMakeLists.txt | 3 + Source/CPack/cmCPackDragNDropGenerator.cxx | 361 +++++++++++++++++++--- Source/CPack/cmCPackDragNDropGenerator.h | 11 + 5 files changed, 356 insertions(+), 39 deletions(-) create mode 100644 Help/release/dev/cpack-dmg-multilanguage-sla.rst hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 9 10:06:56 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 9 Nov 2015 10:06:56 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1289-gb5ff9b5 Message-ID: <20151109150656.80A27C43D5@public.kitware.com> 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 b5ff9b5676858ec63e0bbb84686ca7c5f495c47a (commit) via 0ecb5e7f8b02c96823104ab4b08773dccb12a2c8 (commit) via 9ad0ae1c01d67ba788645d3114967ba8718d4ec7 (commit) via ed484544cbf39ffefe1898b8255a5189062e5c60 (commit) via 20e445f4418088ddf6e8f30ff3425af1588d2710 (commit) via c53e692db92ce5f24151f4bded40ffcddc9b0fb2 (commit) from 113cd6847ae40078d49e5fd4b3aced9d83284032 (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=b5ff9b5676858ec63e0bbb84686ca7c5f495c47a commit b5ff9b5676858ec63e0bbb84686ca7c5f495c47a Merge: 113cd68 0ecb5e7 Author: Brad King AuthorDate: Mon Nov 9 10:06:46 2015 -0500 Commit: Brad King CommitDate: Mon Nov 9 10:06:46 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From nilsgladitz at gmail.com Mon Nov 9 11:52:05 2015 From: nilsgladitz at gmail.com (Nils Gladitz) Date: Mon, 9 Nov 2015 11:52:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1291-g377027b Message-ID: <20151109165205.D4D13C3D6C@public.kitware.com> 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 377027bdfcdef823f282c7d107984f2ac41310e3 (commit) via d3625b72834ab63a2c946c75f7949aaffaf9427c (commit) from b5ff9b5676858ec63e0bbb84686ca7c5f495c47a (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=377027bdfcdef823f282c7d107984f2ac41310e3 commit 377027bdfcdef823f282c7d107984f2ac41310e3 Merge: b5ff9b5 d3625b7 Author: Nils Gladitz AuthorDate: Mon Nov 9 11:52:05 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 9 11:52:05 2015 -0500 Merge topic 'wix-toplevel-feature-required' into next d3625b72 CPackWIX: Don't allow users to deselect the top-level feature (#15838) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d3625b72834ab63a2c946c75f7949aaffaf9427c commit d3625b72834ab63a2c946c75f7949aaffaf9427c Author: Nils Gladitz AuthorDate: Mon Nov 9 17:50:21 2015 +0100 Commit: Nils Gladitz CommitDate: Mon Nov 9 17:50:21 2015 +0100 CPackWIX: Don't allow users to deselect the top-level feature (#15838) The top-level WiX feature implicitly created by the WIX generator represents the package as a whole. As such it does not make sense to allow installer users to deselect it from the installation. Suggested-by: Mark Stijnman diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx index 6f25e50..d5246db 100644 --- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx +++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx @@ -482,6 +482,7 @@ bool cmCPackWIXGenerator::CreateWiXSourceFiles() featureDefinitions.BeginElement("Feature"); featureDefinitions.AddAttribute("Id", "ProductFeature"); featureDefinitions.AddAttribute("Display", "expand"); + featureDefinitions.AddAttribute("Absent", "disallow"); featureDefinitions.AddAttribute("ConfigurableDirectory", "INSTALL_ROOT"); std::string cpackPackageName; ----------------------------------------------------------------------- Summary of changes: Source/CPack/WiX/cmCPackWIXGenerator.cxx | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Nov 10 00:01:09 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 10 Nov 2015 00:01:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-502-g21684a2 Message-ID: <20151110050109.8735EC3212@public.kitware.com> 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, master has been updated via 21684a240186f061237a5445042920decb0fc337 (commit) from 0ecb5e7f8b02c96823104ab4b08773dccb12a2c8 (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=21684a240186f061237a5445042920decb0fc337 commit 21684a240186f061237a5445042920decb0fc337 Author: Kitware Robot AuthorDate: Tue Nov 10 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Tue Nov 10 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0f34c90..6d1038c 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151109) +set(CMake_VERSION_PATCH 20151110) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 10 09:26:02 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 10 Nov 2015 09:26:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-504-g556fe92 Message-ID: <20151110142605.DAF19C3A67@public.kitware.com> 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, master has been updated via 556fe92b765ea6d200b76c4e6d35a2147952d9a3 (commit) via 9103d8ace327d34a6bc5085e0ec91abc6e8053f1 (commit) from 21684a240186f061237a5445042920decb0fc337 (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=556fe92b765ea6d200b76c4e6d35a2147952d9a3 commit 556fe92b765ea6d200b76c4e6d35a2147952d9a3 Merge: 21684a2 9103d8a Author: Brad King AuthorDate: Tue Nov 10 09:26:00 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 10 09:26:00 2015 -0500 Merge topic 'fix-install-rules' 9103d8ac Install: Move SetHaveInstallRule to a more-obvious place ----------------------------------------------------------------------- Summary of changes: Source/cmInstallCommand.cxx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 10 09:26:15 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 10 Nov 2015 09:26:15 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-506-g3cb7263 Message-ID: <20151110142615.17290C3A98@public.kitware.com> 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, master has been updated via 3cb726371f27948149f668d43aa58cd2a5e9be4c (commit) via d3625b72834ab63a2c946c75f7949aaffaf9427c (commit) from 556fe92b765ea6d200b76c4e6d35a2147952d9a3 (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=3cb726371f27948149f668d43aa58cd2a5e9be4c commit 3cb726371f27948149f668d43aa58cd2a5e9be4c Merge: 556fe92 d3625b7 Author: Brad King AuthorDate: Tue Nov 10 09:26:13 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 10 09:26:13 2015 -0500 Merge topic 'wix-toplevel-feature-required' d3625b72 CPackWIX: Don't allow users to deselect the top-level feature (#15838) ----------------------------------------------------------------------- Summary of changes: Source/CPack/WiX/cmCPackWIXGenerator.cxx | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 10 09:27:21 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 10 Nov 2015 09:27:21 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1295-g8435165 Message-ID: <20151110142721.740F5C3B64@public.kitware.com> 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 84351658ae6c344413382dd93830b0959b136ece (commit) via 3cb726371f27948149f668d43aa58cd2a5e9be4c (commit) via 556fe92b765ea6d200b76c4e6d35a2147952d9a3 (commit) via 21684a240186f061237a5445042920decb0fc337 (commit) from 377027bdfcdef823f282c7d107984f2ac41310e3 (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=84351658ae6c344413382dd93830b0959b136ece commit 84351658ae6c344413382dd93830b0959b136ece Merge: 377027b 3cb7263 Author: Brad King AuthorDate: Tue Nov 10 09:27:06 2015 -0500 Commit: Brad King CommitDate: Tue Nov 10 09:27:06 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 10 11:05:35 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 10 Nov 2015 11:05:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1304-g9c7a715 Message-ID: <20151110160535.9B037C4065@public.kitware.com> 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 9c7a7154ef26d6dbcb10b36b0a2e599daf79b5ba (commit) via 45a799f000067991147e32a56c331de858af2bfb (commit) via aa32f715b0950ff1b81735a270962d803dfdd65c (commit) via b05104419a750ca1039c40bfa0ef04aed908674b (commit) via 6d6d6d891dfc4950149ab9c0454b5315ef945803 (commit) via 487ce279b6a1a4a326b13c0056d405466eb38164 (commit) via 0f054a775aaaae2183d07b43a69a099d76613dda (commit) via d6d873fbd7af072e10362e2a4767185117068c5b (commit) via c43b4f8fdc9a2f1072509ed4eaa7d4cc1a6cf234 (commit) from 84351658ae6c344413382dd93830b0959b136ece (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=9c7a7154ef26d6dbcb10b36b0a2e599daf79b5ba commit 9c7a7154ef26d6dbcb10b36b0a2e599daf79b5ba Merge: 8435165 45a799f Author: Brad King AuthorDate: Tue Nov 10 11:05:33 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 10 11:05:33 2015 -0500 Merge topic 'better_looking_mac_package' into next 45a799f0 fixup! DragNDropGenerator Updated Documentation to include new variables. aa32f715 CMake DragNDrop release now uses a custom background and script b0510441 DragNDropGenerator Updated Documentation to include new variables. 6d6d6d89 DragNDropGenerator now manually computes the size of the temp dmg image. 487ce279 DragNDropGenerator copies the background image after the dmg is created. 0f054a77 DragNDropGenerator now can run an apple script when making a package. d6d873fb DragNDropGenerator now places the background image file in a hidden folder. c43b4f8f DragNDropGenerator background image now uses source file extension. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=45a799f000067991147e32a56c331de858af2bfb commit 45a799f000067991147e32a56c331de858af2bfb Author: Brad King AuthorDate: Tue Nov 10 11:04:05 2015 -0500 Commit: Brad King CommitDate: Tue Nov 10 11:04:05 2015 -0500 fixup! DragNDropGenerator Updated Documentation to include new variables. diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst index 7e845aa..ef1b8e8 100644 --- a/Help/release/dev/better-looking-mac-packages.rst +++ b/Help/release/dev/better-looking-mac-packages.rst @@ -2,7 +2,7 @@ better-looking-mac-packages --------------------------- * The :module:`CPackDMG` module learned new variable to specify AppleScript - file run to customize appearance of ``DragNDrop``` installer folder, + file run to customize appearance of ``DragNDrop`` installer folder, including background image setting using supplied PNG or multi-resolution TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa32f715b0950ff1b81735a270962d803dfdd65c commit aa32f715b0950ff1b81735a270962d803dfdd65c Author: Adam Strzelecki AuthorDate: Mon Sep 29 08:42:49 2014 -0400 Commit: Adam Strzelecki CommitDate: Mon Nov 9 22:27:47 2015 +0100 CMake DragNDrop release now uses a custom background and script diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index b6013ef..ae00653 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -183,6 +183,13 @@ if("${CPACK_GENERATOR}" STREQUAL "PackageMaker") endif() endif() +if("${CPACK_GENERATOR}" STREQUAL "DragNDrop") + set(CPACK_DMG_BACKGROUND_IMAGE + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGBackground.tif") + set(CPACK_DMG_DS_STORE_SETUP_SCRIPT + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGSetup.scpt") +endif() + if("${CPACK_GENERATOR}" STREQUAL "WIX") # Reset CPACK_PACKAGE_VERSION to deal with WiX restriction. # But the file names still use the full CMake_VERSION value: diff --git a/Packaging/CMakeDMGBackground.tif b/Packaging/CMakeDMGBackground.tif new file mode 100644 index 0000000..91c4b13 Binary files /dev/null and b/Packaging/CMakeDMGBackground.tif differ diff --git a/Packaging/CMakeDMGSetup.scpt b/Packaging/CMakeDMGSetup.scpt new file mode 100644 index 0000000..c7ddcfb --- /dev/null +++ b/Packaging/CMakeDMGSetup.scpt @@ -0,0 +1,42 @@ +on run argv + set image_name to item 1 of argv + + tell application "Finder" + tell disk image_name + + -- open the image the first time and save a DS_Store with just + -- background and icon setup + open + set current view of container window to icon view + set theViewOptions to the icon view options of container window + set background picture of theViewOptions to file ".background:background.tif" + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 128 + delay 1 + close + + -- next setup the position of the app and Applications symlink + -- plus hide all the window decoration + open + update without registering applications + tell container window + set sidebar width to 0 + set statusbar visible to false + set toolbar visible to false + set the bounds to { 400, 100, 900, 465 } + set position of item "CMake.app" to { 133, 200 } + set position of item "Applications" to { 378, 200 } + end tell + update without registering applications + delay 1 + close + + -- one last open and close so you can see everything looks correct + open + delay 5 + close + + end tell + delay 1 +end tell +end run https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b05104419a750ca1039c40bfa0ef04aed908674b commit b05104419a750ca1039c40bfa0ef04aed908674b Author: Robert Maynard AuthorDate: Thu Dec 18 14:56:37 2014 -0500 Commit: Adam Strzelecki CommitDate: Mon Nov 9 22:27:47 2015 +0100 DragNDropGenerator Updated Documentation to include new variables. The DragNDropGenerator documentation now covers the new behavior of CPACK_DMG_BACKGROUND_IMAGE and what the purpose of CPACK_DMG_DS_STORE_SETUP_SCRIPT is. diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst new file mode 100644 index 0000000..7e845aa --- /dev/null +++ b/Help/release/dev/better-looking-mac-packages.rst @@ -0,0 +1,8 @@ +better-looking-mac-packages +--------------------------- + +* The :module:`CPackDMG` module learned new variable to specify AppleScript + file run to customize appearance of ``DragNDrop``` installer folder, + including background image setting using supplied PNG or multi-resolution + TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and + :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index 37d7352..6b5af7e 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -26,15 +26,25 @@ # Path to a custom DS_Store file. This .DS_Store file e.g. can be used to # specify the Finder window position/geometry and layout (such as hidden # toolbars, placement of the icons etc.). This file has to be generated by -# the Finder (either manually or through OSA-script) using a normal folder +# the Finder (either manually or through AppleScript) using a normal folder # from which the .DS_Store file can then be extracted. # +# .. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT +# +# Path to a custom AppleScript file. This AppleScript is used to generate +# a .DS_Store file which specifies the Finder window position/geometry and +# layout (such as hidden toolbars, placement of the icons etc.). +# By specifying a custom AppleScript there is no need to use +# CPACK_DMG_DS_STORE, as the .DS_Store that is generated by the AppleScript +# will be packaged. +# # .. variable:: CPACK_DMG_BACKGROUND_IMAGE # -# Path to a background image file. This file will be used as the background -# for the Finder Window when the disk image is opened. By default no -# background image is set. The background image is applied after applying the -# custom .DS_Store file. +# Path to an image file to be used as the background. This file will be +# copied to .background/background., where ext is the original image file +# extension. The background image is installed into the image before +# CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is +# installed. By default no background image is set. # # .. variable:: CPACK_DMG_SLA_DIR # https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6d6d6d891dfc4950149ab9c0454b5315ef945803 commit 6d6d6d891dfc4950149ab9c0454b5315ef945803 Author: Robert Maynard AuthorDate: Wed Oct 1 13:52:11 2014 -0400 Commit: Adam Strzelecki CommitDate: Mon Nov 9 21:53:28 2015 +0100 DragNDropGenerator now manually computes the size of the temp dmg image. When creating a DragNDrop bundle with a custom layout and background you need to make sure that the image size is large enough to store both the background and the custom .DS_Store. Now previously the DragNDropGenerator relied on the fact that both of these files would exist in the staging folder so it could let hdiutil compute an exact size. Now that we allow generation of the .DS_Store to happen after creation of the image we need to manually specify the size of the image to include room for the new .DS_Store and background. The size calculation must not take only file sizes into account, but also file system block padding and directory entry structure size, therefore we add additional 4K to each file size to provide more accurate final value. The whole reason why we have to delay the background image copy, is that if we let hdiutil package the background image it gets modified in such away that applescript aren't able to specify it as the background image. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 5e06b2d..9a75b25 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -15,8 +15,10 @@ #include "cmSystemTools.h" #include "cmGeneratedFileStream.h" -#include +#include #include +#include +#include #include @@ -67,6 +69,53 @@ static const char* SLASTREnglish = "};\n" "\n"; + +namespace +{ + //computes the size of all items in a given folder. + //will not traverse symlinked folders + unsigned long compute_folder_content_size( const std::string& path ) + { + unsigned long sum = 0; //total size in bytes + cmsys::Directory dir; + dir.Load(path.c_str()); + for (unsigned long fileNum = 0; fileNum < dir.GetNumberOfFiles(); ++fileNum) + { + const std::string fileName(dir.GetFile(fileNum)); + const bool is_not_dot_file = fileName != std::string(".") && + fileName != std::string(".."); + if ( is_not_dot_file ) + { + std::string fullPath = path; + fullPath += "/"; + fullPath += fileName; + + const bool is_folder = + cmSystemTools::FileIsDirectory(fullPath.c_str()); + const bool is_file = + !is_folder; + const bool is_symlink = + cmSystemTools::FileIsSymlink(fullPath.c_str()); + + //add extra 4K for each entry, simulating extra file-system space needed + //to hold entry. + sum += 4096; + + if( is_folder && !is_symlink) + { + sum += cmSystemTools::FileLength(fullPath.c_str()); + sum += compute_folder_content_size(fullPath); + } + else if( is_file ) + { + sum += cmSystemTools::FileLength(fullPath.c_str()); + } + } + } + return sum; + } +} + //---------------------------------------------------------------------- cmCPackDragNDropGenerator::cmCPackDragNDropGenerator() { @@ -381,7 +430,25 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } } - // Create a temporary read-write disk image ... + // Create a temporary read-write disk image. If we are adding a DS_Store, + // Background or running a script we need to allocate some buffer space + // in the image, otherwise we won't have enough room + + //first compute the size of the staging_path which requires us to + //iterate over + const std::string staging_path = staging.str(); + unsigned long dmgSize = compute_folder_content_size( staging_path ); + if (!cpack_dmg_background_image.empty()) + { + dmgSize += cmSystemTools::FileLength(cpack_dmg_background_image.c_str()); + } + dmgSize += 8388608; //add 8MB for the DS_Store and buffer + + //now that we have computed the size of the disk image we need to convert + //it to kb. The reason for this is that the hdiutil doesn't have a byte + //size specifier. + const unsigned long dmgSizeAsKB = dmgSize / 1024; + std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); temp_image += "/temp.dmg"; @@ -389,6 +456,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, temp_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); temp_image_command << " create"; temp_image_command << " -ov"; + temp_image_command << " -size " << dmgSizeAsKB << "k"; temp_image_command << " -srcfolder \"" << staging.str() << "\""; temp_image_command << " -volname \"" << cpack_dmg_volume_name << "\""; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=487ce279b6a1a4a326b13c0056d405466eb38164 commit 487ce279b6a1a4a326b13c0056d405466eb38164 Author: Robert Maynard AuthorDate: Mon Sep 29 08:43:47 2014 -0400 Commit: Adam Strzelecki CommitDate: Mon Nov 9 21:53:22 2015 +0100 DragNDropGenerator copies the background image after the dmg is created. This is required so that the permissions on the image are correct so that an apple script can set the background. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 59b29a2..5e06b2d 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -380,73 +380,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } } - // Optionally add a custom background image ... - // Make sure the background file type is the same as the custom image - // and that the file is hidden so it doesn't show up. - if(!cpack_dmg_background_image.empty()) - { - const std::string extension = - cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); - std::ostringstream package_background_source; - package_background_source << cpack_dmg_background_image; - - std::ostringstream package_background_destination; - package_background_destination << staging.str() - << "/.background/background" << extension; - - if(!this->CopyFile(package_background_source, - package_background_destination)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error copying disk volume background image. " - "Check the value of CPACK_DMG_BACKGROUND_IMAGE." - << std::endl); - - return 0; - } - } - - // Figure out if we have a .DS_Store to install or if we need to run - // an apple-script to generate a .DS_Store - if(!cpack_dmg_ds_store.empty()) - { - // Optionally add a custom .DS_Store file - // (e.g. for setting background/layout) ... - std::ostringstream package_settings_source; - package_settings_source << cpack_dmg_ds_store; - - std::ostringstream package_settings_destination; - package_settings_destination << staging.str() << "/.DS_Store"; - - if(!this->CopyFile(package_settings_source, package_settings_destination)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error copying disk volume settings file. " - "Check the value of CPACK_DMG_DS_STORE." - << std::endl); - - return 0; - } - } - else if(!cpack_dmg_ds_store_setup_script.empty()) - { - //If you don't have a custom .DS_Store file - //we can execute a custom apple script to generate the .DS_Store for - //the application - std::ostringstream setup_script_command; - setup_script_command << "osascript" - << " \"" << cpack_dmg_ds_store_setup_script << "\""; - std::string error; - if(!this->RunCommand(setup_script_command, &error)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error executing custom script on disk image." << std::endl - << error - << std::endl); - - return 0; - } - } // Create a temporary read-write disk image ... std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); @@ -471,10 +404,16 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - // Optionally set the custom icon flag for the image ... - if(!cpack_package_icon.empty()) + //mount the image and set the ds_store or custom icon flag + const bool remount_image = !cpack_dmg_background_image.empty() || + !cpack_dmg_ds_store.empty() || + !cpack_dmg_ds_store_setup_script.empty() || + !cpack_package_icon.empty(); + if(remount_image) { - std::ostringstream temp_mount; + //store that we have a failure so that we always unmount the image + //before we exit + bool had_error = false; std::ostringstream attach_command; attach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); @@ -490,25 +429,103 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - cmsys::RegularExpression mountpoint_regex(".*(/Volumes/[^\n]+)\n.*"); mountpoint_regex.find(attach_output.c_str()); + + std::ostringstream temp_mount; temp_mount << mountpoint_regex.match(1); - std::ostringstream setfile_command; - setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); - setfile_command << " -a C"; - setfile_command << " \"" << temp_mount.str() << "\""; + // Optionally add a custom background image ... + // Make sure the background file type is the same as the custom image + // and that the file is hidden so it doesn't show up. + if(!cpack_dmg_background_image.empty()) + { + const std::string extension = + cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); + std::ostringstream package_background_source; + package_background_source << cpack_dmg_background_image; - if(!this->RunCommand(setfile_command)) + std::ostringstream package_background_destination; + package_background_destination << temp_mount.str() + << "/.background/background" << extension; + + if(!this->CopyFile(package_background_source, + package_background_destination)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error copying disk volume background image. " + "Check the value of CPACK_DMG_BACKGROUND_IMAGE." + << std::endl); + + had_error = true; + } + } + + // Figure out if we have a .DS_Store to install or if we need to run + // an apple-script to generate a .DS_Store + if(!cpack_dmg_ds_store.empty()) { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error assigning custom icon to temporary disk image." - << std::endl); + // Optionally add a custom .DS_Store file + // (e.g. for setting background/layout) ... + std::ostringstream package_settings_source; + package_settings_source << cpack_dmg_ds_store; - return 0; + std::ostringstream package_settings_destination; + package_settings_destination << temp_mount.str() << "/.DS_Store"; + + if(!this->CopyFile(package_settings_source, + package_settings_destination)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error copying disk volume settings file. " + "Check the value of CPACK_DMG_DS_STORE." + << std::endl); + + had_error = true; + } + } + else if(!cpack_dmg_ds_store_setup_script.empty()) + { + //If you don't have a custom .DS_Store file + //we can execute a custom apple script to generate the .DS_Store for + //the application. We pass in as arguments to the apple script + //the location of the disk image + std::ostringstream setup_script_command; + + setup_script_command << "osascript" + << " \"" << cpack_dmg_ds_store_setup_script << "\"" + << " \"" << cpack_dmg_volume_name << "\""; + + std::string error; + if(!this->RunCommand(setup_script_command, &error)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error executing custom script on disk image." << std::endl + << error + << std::endl); + + had_error = true; + } + } + + if(!cpack_package_icon.empty()) + { + std::ostringstream setfile_command; + setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); + setfile_command << " -a C"; + setfile_command << " \"" << temp_mount.str() << "\""; + + if(!this->RunCommand(setfile_command)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error assigning custom icon to temporary disk image." + << std::endl); + + had_error = true; + } } + //finish by detaching the package std::ostringstream detach_command; detach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); detach_command << " detach"; @@ -520,6 +537,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, "Error detaching temporary disk image." << std::endl); + had_error = true; + } + + if(had_error) + { return 0; } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0f054a775aaaae2183d07b43a69a099d76613dda commit 0f054a775aaaae2183d07b43a69a099d76613dda Author: Robert Maynard AuthorDate: Fri Sep 26 14:38:38 2014 -0400 Commit: Adam Strzelecki CommitDate: Mon Nov 9 21:52:00 2015 +0100 DragNDropGenerator now can run an apple script when making a package. While the DragNDropGenerator supports custom DS_Store and backgrounds, it is still very hard to automatically setup nice looking packages. The primary issue is that the DS_Store embeds the name of the volume in the path to backgrounds, which means that if a package embeds the version in its volume name a new DS_Store must generated for each release. Instead you now can use applescript to setup your DS_Store. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index eff302c..59b29a2 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -331,6 +331,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, this->GetOption("CPACK_DMG_LANGUAGES") ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; + const std::string cpack_dmg_ds_store_setup_script = + this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") + ? this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") : ""; + // only put license on dmg if is user provided if(!cpack_license_file.empty() && cpack_license_file.find("CPack.GenericLicense.txt") != std::string::npos) @@ -376,11 +380,38 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } } + // Optionally add a custom background image ... + // Make sure the background file type is the same as the custom image + // and that the file is hidden so it doesn't show up. + if(!cpack_dmg_background_image.empty()) + { + const std::string extension = + cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); + std::ostringstream package_background_source; + package_background_source << cpack_dmg_background_image; + + std::ostringstream package_background_destination; + package_background_destination << staging.str() + << "/.background/background" << extension; + + if(!this->CopyFile(package_background_source, + package_background_destination)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error copying disk volume background image. " + "Check the value of CPACK_DMG_BACKGROUND_IMAGE." + << std::endl); + + return 0; + } + } - // Optionally add a custom .DS_Store file - // (e.g. for setting background/layout) ... + // Figure out if we have a .DS_Store to install or if we need to run + // an apple-script to generate a .DS_Store if(!cpack_dmg_ds_store.empty()) { + // Optionally add a custom .DS_Store file + // (e.g. for setting background/layout) ... std::ostringstream package_settings_source; package_settings_source << cpack_dmg_ds_store; @@ -397,27 +428,20 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } } - - // Optionally add a custom background image ... - // Make sure the background file type is the same as the custom image - // and that the file is hidden so it doesn't show up. - if(!cpack_dmg_background_image.empty()) + else if(!cpack_dmg_ds_store_setup_script.empty()) { - const std::string extension = - cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); - std::ostringstream package_background_source; - package_background_source << cpack_dmg_background_image; - - std::ostringstream package_background_destination; - package_background_destination << staging.str() - << "/.background/background" << extension; - - if(!this->CopyFile(package_background_source, - package_background_destination)) + //If you don't have a custom .DS_Store file + //we can execute a custom apple script to generate the .DS_Store for + //the application + std::ostringstream setup_script_command; + setup_script_command << "osascript" + << " \"" << cpack_dmg_ds_store_setup_script << "\""; + std::string error; + if(!this->RunCommand(setup_script_command, &error)) { cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error copying disk volume background image. " - "Check the value of CPACK_DMG_BACKGROUND_IMAGE." + "Error executing custom script on disk image." << std::endl + << error << std::endl); return 0; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d6d873fbd7af072e10362e2a4767185117068c5b commit d6d873fbd7af072e10362e2a4767185117068c5b Author: Robert Maynard AuthorDate: Thu Sep 18 13:59:57 2014 -0400 Commit: Adam Strzelecki CommitDate: Mon Nov 9 16:21:53 2015 +0100 DragNDropGenerator now places the background image file in a hidden folder. by using a hidden folder we avoid the need to mark the file as hidden from finder, and it makes it easier for future work to refer to the background image file. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 3d1e4ea..eff302c 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -400,6 +400,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // Optionally add a custom background image ... // Make sure the background file type is the same as the custom image + // and that the file is hidden so it doesn't show up. if(!cpack_dmg_background_image.empty()) { const std::string extension = @@ -409,7 +410,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, std::ostringstream package_background_destination; package_background_destination << staging.str() - << "/background" << extension; + << "/.background/background" << extension; if(!this->CopyFile(package_background_source, package_background_destination)) @@ -421,21 +422,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - - std::ostringstream temp_background_hiding_command; - temp_background_hiding_command << this->GetOption("CPACK_COMMAND_SETFILE"); - temp_background_hiding_command << " -a V \""; - temp_background_hiding_command << package_background_destination.str(); - temp_background_hiding_command << "\""; - - if(!this->RunCommand(temp_background_hiding_command)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error setting attributes on disk volume background image." - << std::endl); - - return 0; - } } // Create a temporary read-write disk image ... https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c43b4f8fdc9a2f1072509ed4eaa7d4cc1a6cf234 commit c43b4f8fdc9a2f1072509ed4eaa7d4cc1a6cf234 Author: Robert Maynard AuthorDate: Thu Sep 18 13:59:40 2014 -0400 Commit: Adam Strzelecki CommitDate: Mon Nov 9 16:21:53 2015 +0100 DragNDropGenerator background image now uses source file extension. Instead of blindly copying the CPACK_DMG_BACKGROUND_IMAGE file to background.png, we instead use the same file extension as the source image. This is needed for proper support of multi resolution tif backgrounds. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 208a64c..3d1e4ea 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -399,13 +399,17 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } // Optionally add a custom background image ... + // Make sure the background file type is the same as the custom image if(!cpack_dmg_background_image.empty()) { + const std::string extension = + cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); std::ostringstream package_background_source; package_background_source << cpack_dmg_background_image; std::ostringstream package_background_destination; - package_background_destination << staging.str() << "/background.png"; + package_background_destination << staging.str() + << "/background" << extension; if(!this->CopyFile(package_background_source, package_background_destination)) ----------------------------------------------------------------------- Summary of changes: CMakeCPackOptions.cmake.in | 7 + Help/release/dev/better-looking-mac-packages.rst | 8 + Modules/CPackDMG.cmake | 20 +- Packaging/CMakeDMGBackground.tif | Bin 0 -> 95690 bytes Packaging/CMakeDMGSetup.scpt | 42 ++++ Source/CPack/cmCPackDragNDropGenerator.cxx | 240 ++++++++++++++++------ 6 files changed, 244 insertions(+), 73 deletions(-) create mode 100644 Help/release/dev/better-looking-mac-packages.rst create mode 100644 Packaging/CMakeDMGBackground.tif create mode 100644 Packaging/CMakeDMGSetup.scpt hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 10 11:06:07 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 10 Nov 2015 11:06:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1307-g64f4259 Message-ID: <20151110160607.175FAC3F0A@public.kitware.com> 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 64f4259b199f471715c484663bd08e288a74bafa (commit) via c872423dc917a91b61c91eabcf1648413bc88210 (commit) via 9dc34452ef78b67c7b33bf198ccbc3fd06721f74 (commit) from 9c7a7154ef26d6dbcb10b36b0a2e599daf79b5ba (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=64f4259b199f471715c484663bd08e288a74bafa commit 64f4259b199f471715c484663bd08e288a74bafa Merge: 9c7a715 c872423 Author: Brad King AuthorDate: Tue Nov 10 11:06:06 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 10 11:06:06 2015 -0500 Merge topic 'better_looking_mac_package' into next c872423d CMake DragNDrop release now uses a custom background and script 9dc34452 DragNDropGenerator Updated Documentation to include new variables. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c872423dc917a91b61c91eabcf1648413bc88210 commit c872423dc917a91b61c91eabcf1648413bc88210 Author: Adam Strzelecki AuthorDate: Mon Sep 29 08:42:49 2014 -0400 Commit: Brad King CommitDate: Tue Nov 10 11:05:50 2015 -0500 CMake DragNDrop release now uses a custom background and script diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index b6013ef..ae00653 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -183,6 +183,13 @@ if("${CPACK_GENERATOR}" STREQUAL "PackageMaker") endif() endif() +if("${CPACK_GENERATOR}" STREQUAL "DragNDrop") + set(CPACK_DMG_BACKGROUND_IMAGE + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGBackground.tif") + set(CPACK_DMG_DS_STORE_SETUP_SCRIPT + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGSetup.scpt") +endif() + if("${CPACK_GENERATOR}" STREQUAL "WIX") # Reset CPACK_PACKAGE_VERSION to deal with WiX restriction. # But the file names still use the full CMake_VERSION value: diff --git a/Packaging/CMakeDMGBackground.tif b/Packaging/CMakeDMGBackground.tif new file mode 100644 index 0000000..91c4b13 Binary files /dev/null and b/Packaging/CMakeDMGBackground.tif differ diff --git a/Packaging/CMakeDMGSetup.scpt b/Packaging/CMakeDMGSetup.scpt new file mode 100644 index 0000000..c7ddcfb --- /dev/null +++ b/Packaging/CMakeDMGSetup.scpt @@ -0,0 +1,42 @@ +on run argv + set image_name to item 1 of argv + + tell application "Finder" + tell disk image_name + + -- open the image the first time and save a DS_Store with just + -- background and icon setup + open + set current view of container window to icon view + set theViewOptions to the icon view options of container window + set background picture of theViewOptions to file ".background:background.tif" + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 128 + delay 1 + close + + -- next setup the position of the app and Applications symlink + -- plus hide all the window decoration + open + update without registering applications + tell container window + set sidebar width to 0 + set statusbar visible to false + set toolbar visible to false + set the bounds to { 400, 100, 900, 465 } + set position of item "CMake.app" to { 133, 200 } + set position of item "Applications" to { 378, 200 } + end tell + update without registering applications + delay 1 + close + + -- one last open and close so you can see everything looks correct + open + delay 5 + close + + end tell + delay 1 +end tell +end run https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9dc34452ef78b67c7b33bf198ccbc3fd06721f74 commit 9dc34452ef78b67c7b33bf198ccbc3fd06721f74 Author: Robert Maynard AuthorDate: Thu Dec 18 14:56:37 2014 -0500 Commit: Brad King CommitDate: Tue Nov 10 11:05:50 2015 -0500 DragNDropGenerator Updated Documentation to include new variables. The DragNDropGenerator documentation now covers the new behavior of CPACK_DMG_BACKGROUND_IMAGE and what the purpose of CPACK_DMG_DS_STORE_SETUP_SCRIPT is. diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst new file mode 100644 index 0000000..ef1b8e8 --- /dev/null +++ b/Help/release/dev/better-looking-mac-packages.rst @@ -0,0 +1,8 @@ +better-looking-mac-packages +--------------------------- + +* The :module:`CPackDMG` module learned new variable to specify AppleScript + file run to customize appearance of ``DragNDrop`` installer folder, + including background image setting using supplied PNG or multi-resolution + TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and + :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index 37d7352..6b5af7e 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -26,15 +26,25 @@ # Path to a custom DS_Store file. This .DS_Store file e.g. can be used to # specify the Finder window position/geometry and layout (such as hidden # toolbars, placement of the icons etc.). This file has to be generated by -# the Finder (either manually or through OSA-script) using a normal folder +# the Finder (either manually or through AppleScript) using a normal folder # from which the .DS_Store file can then be extracted. # +# .. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT +# +# Path to a custom AppleScript file. This AppleScript is used to generate +# a .DS_Store file which specifies the Finder window position/geometry and +# layout (such as hidden toolbars, placement of the icons etc.). +# By specifying a custom AppleScript there is no need to use +# CPACK_DMG_DS_STORE, as the .DS_Store that is generated by the AppleScript +# will be packaged. +# # .. variable:: CPACK_DMG_BACKGROUND_IMAGE # -# Path to a background image file. This file will be used as the background -# for the Finder Window when the disk image is opened. By default no -# background image is set. The background image is applied after applying the -# custom .DS_Store file. +# Path to an image file to be used as the background. This file will be +# copied to .background/background., where ext is the original image file +# extension. The background image is installed into the image before +# CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is +# installed. By default no background image is set. # # .. variable:: CPACK_DMG_SLA_DIR # ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 10 15:58:46 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 10 Nov 2015 15:58:46 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1309-g3ac9224 Message-ID: <20151110205846.211C5C3E9D@public.kitware.com> 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 3ac922460dbb6221d1fe0702b4eb305c84dc478e (commit) via 542875b07de07a9ce2289a02cc576976898f3df1 (commit) from 64f4259b199f471715c484663bd08e288a74bafa (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=3ac922460dbb6221d1fe0702b4eb305c84dc478e commit 3ac922460dbb6221d1fe0702b4eb305c84dc478e Merge: 64f4259 542875b Author: Brad King AuthorDate: Tue Nov 10 15:58:44 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 10 15:58:44 2015 -0500 Merge topic 'better_looking_mac_package' into next 542875b0 fixup! DragNDropGenerator now manually computes the size of the temp dmg https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=542875b07de07a9ce2289a02cc576976898f3df1 commit 542875b07de07a9ce2289a02cc576976898f3df1 Author: Brad King AuthorDate: Tue Nov 10 15:57:46 2015 -0500 Commit: Brad King CommitDate: Tue Nov 10 15:57:46 2015 -0500 fixup! DragNDropGenerator now manually computes the size of the temp dmg diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 9a75b25..3b46c1f 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -442,12 +442,12 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, { dmgSize += cmSystemTools::FileLength(cpack_dmg_background_image.c_str()); } - dmgSize += 8388608; //add 8MB for the DS_Store and buffer + dmgSize += 8569344; //add ~8MB for the DS_Store and buffer //now that we have computed the size of the disk image we need to convert //it to kb. The reason for this is that the hdiutil doesn't have a byte //size specifier. - const unsigned long dmgSizeAsKB = dmgSize / 1024; + const unsigned long dmgSizeAsKB = (dmgSize + 1023) / 1024; std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); temp_image += "/temp.dmg"; ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackDragNDropGenerator.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Nov 11 00:01:10 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 11 Nov 2015 00:01:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-507-g54153fb Message-ID: <20151111050110.3E7E4C4203@public.kitware.com> 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, master has been updated via 54153fb98dfe6b91ed162e7c195005bf35fcd352 (commit) from 3cb726371f27948149f668d43aa58cd2a5e9be4c (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=54153fb98dfe6b91ed162e7c195005bf35fcd352 commit 54153fb98dfe6b91ed162e7c195005bf35fcd352 Author: Kitware Robot AuthorDate: Wed Nov 11 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Wed Nov 11 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 6d1038c..1ca5fde 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151110) +set(CMake_VERSION_PATCH 20151111) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 11 14:59:32 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 11 Nov 2015 14:59:32 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1311-gc226294 Message-ID: <20151111195932.42069C46D2@public.kitware.com> 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 c2262942c2a24f088f22b9089e37a2e256d85d7c (commit) via 93a4cb7f76b162ad29b4d796660395d621b23223 (commit) from 3ac922460dbb6221d1fe0702b4eb305c84dc478e (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=c2262942c2a24f088f22b9089e37a2e256d85d7c commit c2262942c2a24f088f22b9089e37a2e256d85d7c Merge: 3ac9224 93a4cb7 Author: Brad King AuthorDate: Wed Nov 11 14:59:31 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 11 14:59:31 2015 -0500 Merge topic 'better_looking_mac_package' into next 93a4cb7f fixup! DragNDropGenerator now manually computes the size of the temp dmg https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=93a4cb7f76b162ad29b4d796660395d621b23223 commit 93a4cb7f76b162ad29b4d796660395d621b23223 Author: Brad King AuthorDate: Wed Nov 11 14:55:53 2015 -0500 Commit: Brad King CommitDate: Wed Nov 11 14:55:53 2015 -0500 fixup! DragNDropGenerator now manually computes the size of the temp dmg diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 3b46c1f..6e7093c 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -440,6 +440,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, unsigned long dmgSize = compute_folder_content_size( staging_path ); if (!cpack_dmg_background_image.empty()) { + dmgSize += 4096; // extra 4k per entry as in compute_folder_content_size dmgSize += cmSystemTools::FileLength(cpack_dmg_background_image.c_str()); } dmgSize += 8569344; //add ~8MB for the DS_Store and buffer ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackDragNDropGenerator.cxx | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 11 16:28:41 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 11 Nov 2015 16:28:41 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1314-g5c42e29 Message-ID: <20151111212841.DCCABC4366@public.kitware.com> 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 5c42e29bd532d48299354950ee8c3a62e0e7f94f (commit) via 710d8bab7ea045216f904798f0df4d21bc94a66c (commit) via 54153fb98dfe6b91ed162e7c195005bf35fcd352 (commit) from c2262942c2a24f088f22b9089e37a2e256d85d7c (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=5c42e29bd532d48299354950ee8c3a62e0e7f94f commit 5c42e29bd532d48299354950ee8c3a62e0e7f94f Merge: c226294 710d8ba Author: Brad King AuthorDate: Wed Nov 11 16:28:41 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 11 16:28:41 2015 -0500 Merge topic 'fix-clang-Wdouble-promotion' into next 710d8bab Fix trivial clang -Wdouble-promotion warnings 54153fb9 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=710d8bab7ea045216f904798f0df4d21bc94a66c commit 710d8bab7ea045216f904798f0df4d21bc94a66c Author: Sean McBride AuthorDate: Wed Nov 11 16:24:51 2015 -0500 Commit: Brad King CommitDate: Wed Nov 11 16:27:24 2015 -0500 Fix trivial clang -Wdouble-promotion warnings diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 20807c8..09902a1 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -2287,7 +2287,7 @@ int cmCTestCoverageHandler::RunBullseyeSourceSummary( { cper /= 2.0f; } - percent_coverage += cper; + percent_coverage += static_cast(cper); float cmet = static_cast(percentFunction + percentBranch); if(totalBranches > 0) { diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index fa3b416..a8f983f 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -579,7 +579,7 @@ int cmCTestTestHandler::ProcessHandler() } cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl - << static_cast(percent + .5) << "% tests passed, " + << static_cast(percent + .5f) << "% tests passed, " << failed.size() << " tests failed out of " << total << std::endl); if(this->CTest->GetLabelSummary()) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 2 +- Source/CTest/cmCTestTestHandler.cxx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Nov 12 00:01:12 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 12 Nov 2015 00:01:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-508-g48182af Message-ID: <20151112050112.7850CC3FA1@public.kitware.com> 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, master has been updated via 48182afd3d04cc659fc5d86ab65b403d8a2b8eff (commit) from 54153fb98dfe6b91ed162e7c195005bf35fcd352 (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=48182afd3d04cc659fc5d86ab65b403d8a2b8eff commit 48182afd3d04cc659fc5d86ab65b403d8a2b8eff Author: Kitware Robot AuthorDate: Thu Nov 12 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Thu Nov 12 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1ca5fde..325b7f6 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151111) +set(CMake_VERSION_PATCH 20151112) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 08:48:14 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 08:48:14 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-510-g8f8f9e2 Message-ID: <20151112134814.D9E76C445F@public.kitware.com> 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, master has been updated via 8f8f9e216eea962f9b7c978ccd37f3c87fbe09e2 (commit) via 710d8bab7ea045216f904798f0df4d21bc94a66c (commit) from 48182afd3d04cc659fc5d86ab65b403d8a2b8eff (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=8f8f9e216eea962f9b7c978ccd37f3c87fbe09e2 commit 8f8f9e216eea962f9b7c978ccd37f3c87fbe09e2 Merge: 48182af 710d8ba Author: Brad King AuthorDate: Thu Nov 12 08:48:12 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 12 08:48:12 2015 -0500 Merge topic 'fix-clang-Wdouble-promotion' 710d8bab Fix trivial clang -Wdouble-promotion warnings ----------------------------------------------------------------------- Summary of changes: Source/CTest/cmCTestCoverageHandler.cxx | 2 +- Source/CTest/cmCTestTestHandler.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 08:48:33 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 08:48:33 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1317-g8813a3a Message-ID: <20151112134833.19548C4492@public.kitware.com> 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 8813a3a6913690eaad76fe7486efc1819b5ba113 (commit) via 8f8f9e216eea962f9b7c978ccd37f3c87fbe09e2 (commit) via 48182afd3d04cc659fc5d86ab65b403d8a2b8eff (commit) from 5c42e29bd532d48299354950ee8c3a62e0e7f94f (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=8813a3a6913690eaad76fe7486efc1819b5ba113 commit 8813a3a6913690eaad76fe7486efc1819b5ba113 Merge: 5c42e29 8f8f9e2 Author: Brad King AuthorDate: Thu Nov 12 08:48:22 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 08:48:22 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 09:07:55 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 09:07:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-512-g16efed6 Message-ID: <20151112140755.57763C49A1@public.kitware.com> 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, master has been updated via 16efed6af970796a3a7d4071e8a802f223ae7034 (commit) via bab8f83cac33df3f48da178076fe3668dd222648 (commit) from 8f8f9e216eea962f9b7c978ccd37f3c87fbe09e2 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 09:07:55 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 09:07:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1320-g9274cfb Message-ID: <20151112140755.8485EC49A2@public.kitware.com> 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 9274cfb8630c96c2aacebc6252d5c7d7596ca35b (commit) via 16efed6af970796a3a7d4071e8a802f223ae7034 (commit) via bab8f83cac33df3f48da178076fe3668dd222648 (commit) from 8813a3a6913690eaad76fe7486efc1819b5ba113 (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=9274cfb8630c96c2aacebc6252d5c7d7596ca35b commit 9274cfb8630c96c2aacebc6252d5c7d7596ca35b Merge: 8813a3a 16efed6 Author: Brad King AuthorDate: Thu Nov 12 09:07:22 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 09:07:22 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 09:07:55 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 09:07:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-rc3-2-gbab8f83 Message-ID: <20151112140755.9AF92C49A2@public.kitware.com> 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, release has been updated via bab8f83cac33df3f48da178076fe3668dd222648 (commit) via 9103d8ace327d34a6bc5085e0ec91abc6e8053f1 (commit) from bc4b6aa68dd48ffd567ae7a24abd8911a689c38a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/cmInstallCommand.cxx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 09:10:31 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 09:10:31 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1323-gf8a917d Message-ID: <20151112141031.9C7CCC3246@public.kitware.com> 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 f8a917d886a41d5fbc2c734db8b078eebce1f33d (commit) via 937d3d667d624fc430c9040213c6d179620a0168 (commit) via b4a2ada297214119647b26df8abe394cd73ca53a (commit) from 9274cfb8630c96c2aacebc6252d5c7d7596ca35b (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=f8a917d886a41d5fbc2c734db8b078eebce1f33d commit f8a917d886a41d5fbc2c734db8b078eebce1f33d Merge: 9274cfb 937d3d6 Author: Brad King AuthorDate: Thu Nov 12 09:10:30 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 12 09:10:30 2015 -0500 Merge topic 'test-release' into next 937d3d66 Merge branch 'release' into test-release b4a2ada2 CMake 3.4.0 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=937d3d667d624fc430c9040213c6d179620a0168 commit 937d3d667d624fc430c9040213c6d179620a0168 Merge: 16efed6 b4a2ada Author: Brad King AuthorDate: Thu Nov 12 09:10:00 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 09:10:00 2015 -0500 Merge branch 'release' into test-release https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b4a2ada297214119647b26df8abe394cd73ca53a commit b4a2ada297214119647b26df8abe394cd73ca53a Author: Brad King AuthorDate: Thu Nov 12 09:09:08 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 09:09:08 2015 -0500 CMake 3.4.0 diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 93a1928..0ce1696 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,4 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_RC 3) +#set(CMake_VERSION_RC 0) ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 10:59:35 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 10:59:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1325-g0110ad2 Message-ID: <20151112155935.5C926C466B@public.kitware.com> 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 0110ad290e5796cc8c511f48939b9f79f67cc653 (commit) via 09f754f040f3e817cd69337adea2c73cb61d53da (commit) from f8a917d886a41d5fbc2c734db8b078eebce1f33d (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=0110ad290e5796cc8c511f48939b9f79f67cc653 commit 0110ad290e5796cc8c511f48939b9f79f67cc653 Merge: f8a917d 09f754f Author: Brad King AuthorDate: Thu Nov 12 10:59:34 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 12 10:59:34 2015 -0500 Merge topic 'cray-fortran-version' into next 09f754f0 Cray: Implement Fortran compiler version detection (#15845) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09f754f040f3e817cd69337adea2c73cb61d53da commit 09f754f040f3e817cd69337adea2c73cb61d53da Author: Brad King AuthorDate: Thu Nov 12 10:55:11 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 10:56:23 2015 -0500 Cray: Implement Fortran compiler version detection (#15845) We already recognize the Cray Fortran compiler id. Extract the version number using the same predefined macros we already use for Cray C and C++ compilers. diff --git a/Modules/CMakeFortranCompilerId.F.in b/Modules/CMakeFortranCompilerId.F.in index 2533d3f..8c4c1e2 100644 --- a/Modules/CMakeFortranCompilerId.F.in +++ b/Modules/CMakeFortranCompilerId.F.in @@ -45,6 +45,8 @@ # define COMPILER_VERSION_PATCH HEX(__SUNPRO_F90 & 0xF) #elif defined(_CRAYFTN) PRINT *, 'INFO:compiler[Cray]' +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) #elif defined(__G95__) PRINT *, 'INFO:compiler[G95]' # define COMPILER_VERSION_MAJOR DEC(__G95__) ----------------------------------------------------------------------- Summary of changes: Modules/CMakeFortranCompilerId.F.in | 2 ++ 1 file changed, 2 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 13:20:44 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 13:20:44 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-rc3-3-gb4a2ada Message-ID: <20151112182044.78C4FC46D3@public.kitware.com> 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, release has been updated via b4a2ada297214119647b26df8abe394cd73ca53a (commit) from bab8f83cac33df3f48da178076fe3668dd222648 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 13:21:10 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 13:21:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-rc3-514-g7387f06 Message-ID: <20151112182110.8F510C357E@public.kitware.com> 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, master has been updated via 7387f06586f0b01dd3c1c4f66339c89f2e985e82 (commit) via b4a2ada297214119647b26df8abe394cd73ca53a (commit) from 16efed6af970796a3a7d4071e8a802f223ae7034 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 13:21:10 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 13:21:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1327-g9df32d6 Message-ID: <20151112182110.BBA58C3592@public.kitware.com> 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 9df32d6e8dc0075d6c80ae344bac6ac7b26d9ee4 (commit) via 7387f06586f0b01dd3c1c4f66339c89f2e985e82 (commit) from 0110ad290e5796cc8c511f48939b9f79f67cc653 (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=9df32d6e8dc0075d6c80ae344bac6ac7b26d9ee4 commit 9df32d6e8dc0075d6c80ae344bac6ac7b26d9ee4 Merge: 0110ad2 7387f06 Author: Brad King AuthorDate: Thu Nov 12 13:21:01 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 13:21:01 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From robert.maynard at kitware.com Thu Nov 12 13:55:36 2015 From: robert.maynard at kitware.com (Robert Maynard) Date: Thu, 12 Nov 2015 13:55:36 -0500 (EST) Subject: [Cmake-commits] CMake annotated tag, v3.4.0, created. v3.4.0 Message-ID: <20151112185536.41E76C4597@public.kitware.com> 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 annotated tag, v3.4.0 has been created at f6d18315c0033a3438e5b1c6ccee87f4d0128d30 (tag) tagging b4a2ada297214119647b26df8abe394cd73ca53a (commit) replaces v3.4.0-rc3 tagged by Brad King on Thu Nov 12 13:21:30 2015 -0500 - Log ----------------------------------------------------------------- CMake 3.4.0 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWRNiqAAoJEC0s7xA0khaELOQQAJ7/akoyFIONF5rkn6QnkSmV GrR+Pv4c594tpxSpNd5B0m3k6TrB4KHef+YYooSzGw7RCAoS/CeD3fOqhyDRHySH SHoM6o5EbvDXNjdaRNYSh1U04LFWZGY3v+z0j2TkZSl0j8+NkgK4DdC2xhzEKEzi kA1zYMFyu6G8xglI7LAdtPqOdv4uy1hLLxJAfocCuUPEcLvdYlpPIA/xx6d8g5xT fVWrHyELwaw8LCZoujwQMOVyujCuQE1bn4CF119VCBo0O6mHXGnkwRoXbeV0cd2g qTJr8GIJo0fq7kaOLZGJvZGxUEgDFCVyi+jGwPzu1j+ksdEyIwgw7pjtG7kchiSK X5zWxno02BXmjIGqJQILphKzvXPCwcSRD+grGdW3E0HvhjOcJKfoUJm2K1d8pVUA GP2OY9D7va97G9XT2HgWXSwHu/LGMqZUNTX0qWwJGB+cjXt6SnWqa8X5dHx8lqYj 2BKXfTlW7b8HKclwPK5WUpXMls+rISkLGVtEX2s6XcvUc14r4aYnALL2QYEmvAZ8 8q2PiPDtlWeyYY+85n9/A3Qxxo4wcbf1RmKWejpdnhbnhZEExoU3CEubjM3TmZoF 28IW1YYw5qUL3c0X4sRs1nfSEUplvGSkzHnnZLY5xIyEFo8iak2P9QKq6P+UKSR6 tIfHZcdw0RrN7LhVutFf =WtBE -----END PGP SIGNATURE----- Brad King (2): Merge branch 'fix-install-rules' into release CMake 3.4.0 Stephen Kelly (1): Install: Move SetHaveInstallRule to a more-obvious place ----------------------------------------------------------------------- hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 14:45:15 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 14:45:15 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1326-gf3deee3 Message-ID: <20151112194515.A3A20C4132@public.kitware.com> 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 f3deee39e482cbc898f78d52c261ff9e1137ee7a (commit) via 521b470688cf71f0c798e8fb515f8dcd4d62a60f (commit) from 9df32d6e8dc0075d6c80ae344bac6ac7b26d9ee4 (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=f3deee39e482cbc898f78d52c261ff9e1137ee7a commit f3deee39e482cbc898f78d52c261ff9e1137ee7a Merge: 9df32d6 521b470 Author: Brad King AuthorDate: Thu Nov 12 14:45:14 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 12 14:45:14 2015 -0500 Merge topic 'revert-better_looking_mac_package' into next 521b4706 Revert topic 'better_looking_mac_package' https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=521b470688cf71f0c798e8fb515f8dcd4d62a60f commit 521b470688cf71f0c798e8fb515f8dcd4d62a60f Author: Brad King AuthorDate: Thu Nov 12 14:44:20 2015 -0500 Commit: Brad King CommitDate: Thu Nov 12 14:44:20 2015 -0500 Revert topic 'better_looking_mac_package' Make room for a revised version. diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index ae00653..b6013ef 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -183,13 +183,6 @@ if("${CPACK_GENERATOR}" STREQUAL "PackageMaker") endif() endif() -if("${CPACK_GENERATOR}" STREQUAL "DragNDrop") - set(CPACK_DMG_BACKGROUND_IMAGE - "@CMake_SOURCE_DIR@/Packaging/CMakeDMGBackground.tif") - set(CPACK_DMG_DS_STORE_SETUP_SCRIPT - "@CMake_SOURCE_DIR@/Packaging/CMakeDMGSetup.scpt") -endif() - if("${CPACK_GENERATOR}" STREQUAL "WIX") # Reset CPACK_PACKAGE_VERSION to deal with WiX restriction. # But the file names still use the full CMake_VERSION value: diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst deleted file mode 100644 index ef1b8e8..0000000 --- a/Help/release/dev/better-looking-mac-packages.rst +++ /dev/null @@ -1,8 +0,0 @@ -better-looking-mac-packages ---------------------------- - -* The :module:`CPackDMG` module learned new variable to specify AppleScript - file run to customize appearance of ``DragNDrop`` installer folder, - including background image setting using supplied PNG or multi-resolution - TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and - :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index 6b5af7e..37d7352 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -26,25 +26,15 @@ # Path to a custom DS_Store file. This .DS_Store file e.g. can be used to # specify the Finder window position/geometry and layout (such as hidden # toolbars, placement of the icons etc.). This file has to be generated by -# the Finder (either manually or through AppleScript) using a normal folder +# the Finder (either manually or through OSA-script) using a normal folder # from which the .DS_Store file can then be extracted. # -# .. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT -# -# Path to a custom AppleScript file. This AppleScript is used to generate -# a .DS_Store file which specifies the Finder window position/geometry and -# layout (such as hidden toolbars, placement of the icons etc.). -# By specifying a custom AppleScript there is no need to use -# CPACK_DMG_DS_STORE, as the .DS_Store that is generated by the AppleScript -# will be packaged. -# # .. variable:: CPACK_DMG_BACKGROUND_IMAGE # -# Path to an image file to be used as the background. This file will be -# copied to .background/background., where ext is the original image file -# extension. The background image is installed into the image before -# CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is -# installed. By default no background image is set. +# Path to a background image file. This file will be used as the background +# for the Finder Window when the disk image is opened. By default no +# background image is set. The background image is applied after applying the +# custom .DS_Store file. # # .. variable:: CPACK_DMG_SLA_DIR # diff --git a/Packaging/CMakeDMGBackground.tif b/Packaging/CMakeDMGBackground.tif deleted file mode 100644 index 91c4b13..0000000 Binary files a/Packaging/CMakeDMGBackground.tif and /dev/null differ diff --git a/Packaging/CMakeDMGSetup.scpt b/Packaging/CMakeDMGSetup.scpt deleted file mode 100644 index c7ddcfb..0000000 --- a/Packaging/CMakeDMGSetup.scpt +++ /dev/null @@ -1,42 +0,0 @@ -on run argv - set image_name to item 1 of argv - - tell application "Finder" - tell disk image_name - - -- open the image the first time and save a DS_Store with just - -- background and icon setup - open - set current view of container window to icon view - set theViewOptions to the icon view options of container window - set background picture of theViewOptions to file ".background:background.tif" - set arrangement of theViewOptions to not arranged - set icon size of theViewOptions to 128 - delay 1 - close - - -- next setup the position of the app and Applications symlink - -- plus hide all the window decoration - open - update without registering applications - tell container window - set sidebar width to 0 - set statusbar visible to false - set toolbar visible to false - set the bounds to { 400, 100, 900, 465 } - set position of item "CMake.app" to { 133, 200 } - set position of item "Applications" to { 378, 200 } - end tell - update without registering applications - delay 1 - close - - -- one last open and close so you can see everything looks correct - open - delay 5 - close - - end tell - delay 1 -end tell -end run diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 6e7093c..208a64c 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -15,10 +15,8 @@ #include "cmSystemTools.h" #include "cmGeneratedFileStream.h" -#include -#include #include -#include +#include #include @@ -69,53 +67,6 @@ static const char* SLASTREnglish = "};\n" "\n"; - -namespace -{ - //computes the size of all items in a given folder. - //will not traverse symlinked folders - unsigned long compute_folder_content_size( const std::string& path ) - { - unsigned long sum = 0; //total size in bytes - cmsys::Directory dir; - dir.Load(path.c_str()); - for (unsigned long fileNum = 0; fileNum < dir.GetNumberOfFiles(); ++fileNum) - { - const std::string fileName(dir.GetFile(fileNum)); - const bool is_not_dot_file = fileName != std::string(".") && - fileName != std::string(".."); - if ( is_not_dot_file ) - { - std::string fullPath = path; - fullPath += "/"; - fullPath += fileName; - - const bool is_folder = - cmSystemTools::FileIsDirectory(fullPath.c_str()); - const bool is_file = - !is_folder; - const bool is_symlink = - cmSystemTools::FileIsSymlink(fullPath.c_str()); - - //add extra 4K for each entry, simulating extra file-system space needed - //to hold entry. - sum += 4096; - - if( is_folder && !is_symlink) - { - sum += cmSystemTools::FileLength(fullPath.c_str()); - sum += compute_folder_content_size(fullPath); - } - else if( is_file ) - { - sum += cmSystemTools::FileLength(fullPath.c_str()); - } - } - } - return sum; - } -} - //---------------------------------------------------------------------- cmCPackDragNDropGenerator::cmCPackDragNDropGenerator() { @@ -380,10 +331,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, this->GetOption("CPACK_DMG_LANGUAGES") ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; - const std::string cpack_dmg_ds_store_setup_script = - this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") - ? this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") : ""; - // only put license on dmg if is user provided if(!cpack_license_file.empty() && cpack_license_file.find("CPack.GenericLicense.txt") != std::string::npos) @@ -430,26 +377,64 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } } - // Create a temporary read-write disk image. If we are adding a DS_Store, - // Background or running a script we need to allocate some buffer space - // in the image, otherwise we won't have enough room - - //first compute the size of the staging_path which requires us to - //iterate over - const std::string staging_path = staging.str(); - unsigned long dmgSize = compute_folder_content_size( staging_path ); - if (!cpack_dmg_background_image.empty()) + // Optionally add a custom .DS_Store file + // (e.g. for setting background/layout) ... + if(!cpack_dmg_ds_store.empty()) { - dmgSize += 4096; // extra 4k per entry as in compute_folder_content_size - dmgSize += cmSystemTools::FileLength(cpack_dmg_background_image.c_str()); + std::ostringstream package_settings_source; + package_settings_source << cpack_dmg_ds_store; + + std::ostringstream package_settings_destination; + package_settings_destination << staging.str() << "/.DS_Store"; + + if(!this->CopyFile(package_settings_source, package_settings_destination)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error copying disk volume settings file. " + "Check the value of CPACK_DMG_DS_STORE." + << std::endl); + + return 0; + } } - dmgSize += 8569344; //add ~8MB for the DS_Store and buffer - //now that we have computed the size of the disk image we need to convert - //it to kb. The reason for this is that the hdiutil doesn't have a byte - //size specifier. - const unsigned long dmgSizeAsKB = (dmgSize + 1023) / 1024; + // Optionally add a custom background image ... + if(!cpack_dmg_background_image.empty()) + { + std::ostringstream package_background_source; + package_background_source << cpack_dmg_background_image; + + std::ostringstream package_background_destination; + package_background_destination << staging.str() << "/background.png"; + + if(!this->CopyFile(package_background_source, + package_background_destination)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error copying disk volume background image. " + "Check the value of CPACK_DMG_BACKGROUND_IMAGE." + << std::endl); + + return 0; + } + + std::ostringstream temp_background_hiding_command; + temp_background_hiding_command << this->GetOption("CPACK_COMMAND_SETFILE"); + temp_background_hiding_command << " -a V \""; + temp_background_hiding_command << package_background_destination.str(); + temp_background_hiding_command << "\""; + + if(!this->RunCommand(temp_background_hiding_command)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error setting attributes on disk volume background image." + << std::endl); + + return 0; + } + } + // Create a temporary read-write disk image ... std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); temp_image += "/temp.dmg"; @@ -457,7 +442,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, temp_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); temp_image_command << " create"; temp_image_command << " -ov"; - temp_image_command << " -size " << dmgSizeAsKB << "k"; temp_image_command << " -srcfolder \"" << staging.str() << "\""; temp_image_command << " -volname \"" << cpack_dmg_volume_name << "\""; @@ -473,16 +457,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - //mount the image and set the ds_store or custom icon flag - const bool remount_image = !cpack_dmg_background_image.empty() || - !cpack_dmg_ds_store.empty() || - !cpack_dmg_ds_store_setup_script.empty() || - !cpack_package_icon.empty(); - if(remount_image) + // Optionally set the custom icon flag for the image ... + if(!cpack_package_icon.empty()) { - //store that we have a failure so that we always unmount the image - //before we exit - bool had_error = false; + std::ostringstream temp_mount; std::ostringstream attach_command; attach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); @@ -498,103 +476,25 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } + cmsys::RegularExpression mountpoint_regex(".*(/Volumes/[^\n]+)\n.*"); mountpoint_regex.find(attach_output.c_str()); - - std::ostringstream temp_mount; temp_mount << mountpoint_regex.match(1); - // Optionally add a custom background image ... - // Make sure the background file type is the same as the custom image - // and that the file is hidden so it doesn't show up. - if(!cpack_dmg_background_image.empty()) - { - const std::string extension = - cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); - std::ostringstream package_background_source; - package_background_source << cpack_dmg_background_image; - - std::ostringstream package_background_destination; - package_background_destination << temp_mount.str() - << "/.background/background" << extension; - - if(!this->CopyFile(package_background_source, - package_background_destination)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error copying disk volume background image. " - "Check the value of CPACK_DMG_BACKGROUND_IMAGE." - << std::endl); - - had_error = true; - } - } - - // Figure out if we have a .DS_Store to install or if we need to run - // an apple-script to generate a .DS_Store - if(!cpack_dmg_ds_store.empty()) - { - // Optionally add a custom .DS_Store file - // (e.g. for setting background/layout) ... - std::ostringstream package_settings_source; - package_settings_source << cpack_dmg_ds_store; - - std::ostringstream package_settings_destination; - package_settings_destination << temp_mount.str() << "/.DS_Store"; - - if(!this->CopyFile(package_settings_source, - package_settings_destination)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error copying disk volume settings file. " - "Check the value of CPACK_DMG_DS_STORE." - << std::endl); - - had_error = true; - } - } - else if(!cpack_dmg_ds_store_setup_script.empty()) - { - //If you don't have a custom .DS_Store file - //we can execute a custom apple script to generate the .DS_Store for - //the application. We pass in as arguments to the apple script - //the location of the disk image - std::ostringstream setup_script_command; - - setup_script_command << "osascript" - << " \"" << cpack_dmg_ds_store_setup_script << "\"" - << " \"" << cpack_dmg_volume_name << "\""; - - std::string error; - if(!this->RunCommand(setup_script_command, &error)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error executing custom script on disk image." << std::endl - << error - << std::endl); + std::ostringstream setfile_command; + setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); + setfile_command << " -a C"; + setfile_command << " \"" << temp_mount.str() << "\""; - had_error = true; - } - } - - if(!cpack_package_icon.empty()) + if(!this->RunCommand(setfile_command)) { - std::ostringstream setfile_command; - setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); - setfile_command << " -a C"; - setfile_command << " \"" << temp_mount.str() << "\""; - - if(!this->RunCommand(setfile_command)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error assigning custom icon to temporary disk image." - << std::endl); + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error assigning custom icon to temporary disk image." + << std::endl); - had_error = true; - } + return 0; } - //finish by detaching the package std::ostringstream detach_command; detach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); detach_command << " detach"; @@ -606,11 +506,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, "Error detaching temporary disk image." << std::endl); - had_error = true; - } - - if(had_error) - { return 0; } } ----------------------------------------------------------------------- Summary of changes: CMakeCPackOptions.cmake.in | 7 - Help/release/dev/better-looking-mac-packages.rst | 8 - Modules/CPackDMG.cmake | 20 +- Packaging/CMakeDMGBackground.tif | Bin 95690 -> 0 bytes Packaging/CMakeDMGSetup.scpt | 42 ---- Source/CPack/cmCPackDragNDropGenerator.cxx | 241 ++++++---------------- 6 files changed, 73 insertions(+), 245 deletions(-) delete mode 100644 Help/release/dev/better-looking-mac-packages.rst delete mode 100644 Packaging/CMakeDMGBackground.tif delete mode 100644 Packaging/CMakeDMGSetup.scpt hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 12 15:12:45 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 12 Nov 2015 15:12:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1332-g3597b37 Message-ID: <20151112201245.C64B9C3EBD@public.kitware.com> 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 3597b371f980b961baaec9990c70902ec27d0dea (commit) via 34b00442235ef7f0073908b7b5be5a09d8b4a00c (commit) via 498165092f3cb117e381f833c0faeb03c82209fb (commit) via 7dacb71df22e5cb6c4f32cc4b6347d4bcf2c9c56 (commit) via dc756e35d35e14175db0a91040fd587ba2cf8582 (commit) via 3887c55e5e1b23bffb960f797c25dcbf343c7e84 (commit) from f3deee39e482cbc898f78d52c261ff9e1137ee7a (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=3597b371f980b961baaec9990c70902ec27d0dea commit 3597b371f980b961baaec9990c70902ec27d0dea Merge: f3deee3 34b0044 Author: Brad King AuthorDate: Thu Nov 12 15:12:43 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 12 15:12:43 2015 -0500 Merge topic 'better_looking_mac_package' into next 34b00442 CMake DragNDrop release now uses a custom background and script 49816509 DragNDropGenerator Updated Documentation to include new variables. 7dacb71d DragNDropGenerator now can run an apple script when making a package. dc756e35 DragNDropGenerator now places the background image file in a hidden folder. 3887c55e DragNDropGenerator background image now uses source file extension. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=34b00442235ef7f0073908b7b5be5a09d8b4a00c commit 34b00442235ef7f0073908b7b5be5a09d8b4a00c Author: Adam Strzelecki AuthorDate: Mon Sep 29 08:42:49 2014 -0400 Commit: Brad King CommitDate: Thu Nov 12 15:12:06 2015 -0500 CMake DragNDrop release now uses a custom background and script diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index b6013ef..ae00653 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -183,6 +183,13 @@ if("${CPACK_GENERATOR}" STREQUAL "PackageMaker") endif() endif() +if("${CPACK_GENERATOR}" STREQUAL "DragNDrop") + set(CPACK_DMG_BACKGROUND_IMAGE + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGBackground.tif") + set(CPACK_DMG_DS_STORE_SETUP_SCRIPT + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGSetup.scpt") +endif() + if("${CPACK_GENERATOR}" STREQUAL "WIX") # Reset CPACK_PACKAGE_VERSION to deal with WiX restriction. # But the file names still use the full CMake_VERSION value: diff --git a/Packaging/CMakeDMGBackground.tif b/Packaging/CMakeDMGBackground.tif new file mode 100644 index 0000000..91c4b13 Binary files /dev/null and b/Packaging/CMakeDMGBackground.tif differ diff --git a/Packaging/CMakeDMGSetup.scpt b/Packaging/CMakeDMGSetup.scpt new file mode 100644 index 0000000..c7ddcfb --- /dev/null +++ b/Packaging/CMakeDMGSetup.scpt @@ -0,0 +1,42 @@ +on run argv + set image_name to item 1 of argv + + tell application "Finder" + tell disk image_name + + -- open the image the first time and save a DS_Store with just + -- background and icon setup + open + set current view of container window to icon view + set theViewOptions to the icon view options of container window + set background picture of theViewOptions to file ".background:background.tif" + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 128 + delay 1 + close + + -- next setup the position of the app and Applications symlink + -- plus hide all the window decoration + open + update without registering applications + tell container window + set sidebar width to 0 + set statusbar visible to false + set toolbar visible to false + set the bounds to { 400, 100, 900, 465 } + set position of item "CMake.app" to { 133, 200 } + set position of item "Applications" to { 378, 200 } + end tell + update without registering applications + delay 1 + close + + -- one last open and close so you can see everything looks correct + open + delay 5 + close + + end tell + delay 1 +end tell +end run https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=498165092f3cb117e381f833c0faeb03c82209fb commit 498165092f3cb117e381f833c0faeb03c82209fb Author: Robert Maynard AuthorDate: Thu Dec 18 14:56:37 2014 -0500 Commit: Brad King CommitDate: Thu Nov 12 15:12:06 2015 -0500 DragNDropGenerator Updated Documentation to include new variables. The DragNDropGenerator documentation now covers the new behavior of CPACK_DMG_BACKGROUND_IMAGE and what the purpose of CPACK_DMG_DS_STORE_SETUP_SCRIPT is. diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst new file mode 100644 index 0000000..ef1b8e8 --- /dev/null +++ b/Help/release/dev/better-looking-mac-packages.rst @@ -0,0 +1,8 @@ +better-looking-mac-packages +--------------------------- + +* The :module:`CPackDMG` module learned new variable to specify AppleScript + file run to customize appearance of ``DragNDrop`` installer folder, + including background image setting using supplied PNG or multi-resolution + TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and + :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index 37d7352..6b5af7e 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -26,15 +26,25 @@ # Path to a custom DS_Store file. This .DS_Store file e.g. can be used to # specify the Finder window position/geometry and layout (such as hidden # toolbars, placement of the icons etc.). This file has to be generated by -# the Finder (either manually or through OSA-script) using a normal folder +# the Finder (either manually or through AppleScript) using a normal folder # from which the .DS_Store file can then be extracted. # +# .. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT +# +# Path to a custom AppleScript file. This AppleScript is used to generate +# a .DS_Store file which specifies the Finder window position/geometry and +# layout (such as hidden toolbars, placement of the icons etc.). +# By specifying a custom AppleScript there is no need to use +# CPACK_DMG_DS_STORE, as the .DS_Store that is generated by the AppleScript +# will be packaged. +# # .. variable:: CPACK_DMG_BACKGROUND_IMAGE # -# Path to a background image file. This file will be used as the background -# for the Finder Window when the disk image is opened. By default no -# background image is set. The background image is applied after applying the -# custom .DS_Store file. +# Path to an image file to be used as the background. This file will be +# copied to .background/background., where ext is the original image file +# extension. The background image is installed into the image before +# CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is +# installed. By default no background image is set. # # .. variable:: CPACK_DMG_SLA_DIR # https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7dacb71df22e5cb6c4f32cc4b6347d4bcf2c9c56 commit 7dacb71df22e5cb6c4f32cc4b6347d4bcf2c9c56 Author: Robert Maynard AuthorDate: Fri Sep 26 14:38:38 2014 -0400 Commit: Brad King CommitDate: Thu Nov 12 15:12:06 2015 -0500 DragNDropGenerator now can run an apple script when making a package. While the DragNDropGenerator supports custom DS_Store and backgrounds, it is still very hard to automatically setup nice looking packages. The primary issue is that the DS_Store embeds the name of the volume in the path to backgrounds, which means that if a package embeds the version in its volume name a new DS_Store must generated for each release. Instead you now can use applescript to setup your DS_Store. This change also ensures that temporary RW image has enough space for these changes, creating 1 MB dummy padding file, that is later removed from the image. Co-Author: Adam Strzelecki diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index eff302c..7a93fc6 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -271,6 +271,28 @@ bool cmCPackDragNDropGenerator::CopyFile(std::ostringstream& source, } //---------------------------------------------------------------------- +bool cmCPackDragNDropGenerator::CreateEmptyFile(std::ostringstream& target, + size_t size) +{ + cmsys::ofstream fout(target.str().c_str(), + std::ios::out | std::ios::binary); + if(!fout) + { + return false; + } + else + { + // Seek to desired size - 1 byte + fout.seekp(size - 1, std::ios_base::beg); + char byte = 0; + // Write one byte to ensure file grows + fout.write(&byte, 1); + } + + return true; +} + +//---------------------------------------------------------------------- bool cmCPackDragNDropGenerator::RunCommand(std::ostringstream& command, std::string* output) { @@ -331,6 +353,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, this->GetOption("CPACK_DMG_LANGUAGES") ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; + const std::string cpack_dmg_ds_store_setup_script = + this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") + ? this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") : ""; + // only put license on dmg if is user provided if(!cpack_license_file.empty() && cpack_license_file.find("CPack.GenericLicense.txt") != std::string::npos) @@ -424,6 +450,25 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } } + bool remount_image = !cpack_package_icon.empty() || + !cpack_dmg_ds_store_setup_script.empty(); + + // Create 1 MB dummy padding file in staging area when we need to remount + // image, so we have enough space for storing changes ... + if(remount_image) + { + std::ostringstream dummy_padding; + dummy_padding << staging.str() << "/.dummy-padding-file"; + if(!this->CreateEmptyFile(dummy_padding, 1048576)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error creating dummy padding file." + << std::endl); + + return 0; + } + } + // Create a temporary read-write disk image ... std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); temp_image += "/temp.dmg"; @@ -447,10 +492,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - // Optionally set the custom icon flag for the image ... - if(!cpack_package_icon.empty()) + if(remount_image) { - std::ostringstream temp_mount; + // Store that we have a failure so that we always unmount the image + // before we exit. + bool had_error = false; std::ostringstream attach_command; attach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); @@ -469,20 +515,57 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, cmsys::RegularExpression mountpoint_regex(".*(/Volumes/[^\n]+)\n.*"); mountpoint_regex.find(attach_output.c_str()); + std::ostringstream temp_mount; temp_mount << mountpoint_regex.match(1); - std::ostringstream setfile_command; - setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); - setfile_command << " -a C"; - setfile_command << " \"" << temp_mount.str() << "\""; - - if(!this->RunCommand(setfile_command)) + // Remove dummy padding file so we have enough space on RW image ... + std::ostringstream dummy_padding; + dummy_padding << temp_mount.str() << "/.dummy-padding-file"; + if(!cmSystemTools::RemoveFile(dummy_padding.str())) { cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error assigning custom icon to temporary disk image." + "Error removing dummy padding file." << std::endl); - return 0; + had_error = true; + } + + // Optionally set the custom icon flag for the image ... + if(!had_error && !cpack_package_icon.empty()) + { + std::ostringstream setfile_command; + setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); + setfile_command << " -a C"; + setfile_command << " \"" << temp_mount.str() << "\""; + + if(!this->RunCommand(setfile_command)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error assigning custom icon to temporary disk image." + << std::endl); + + had_error = true; + } + } + + // Optionally we can execute a custom apple script to generate + // the .DS_Store for the volume folder ... + if(!had_error && !cpack_dmg_ds_store_setup_script.empty()) + { + std::ostringstream setup_script_command; + setup_script_command << "osascript" + << " \"" << cpack_dmg_ds_store_setup_script << "\"" + << " \"" << cpack_dmg_volume_name << "\""; + std::string error; + if(!this->RunCommand(setup_script_command, &error)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error executing custom script on disk image." << std::endl + << error + << std::endl); + + had_error = true; + } } std::ostringstream detach_command; @@ -498,6 +581,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } + + if(had_error) + { + return 0; + } } if(!cpack_license_file.empty() || !slaDirectory.empty()) diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 12db469..53d38c4 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -36,6 +36,7 @@ protected: bool CopyFile(std::ostringstream& source, std::ostringstream& target); + bool CreateEmptyFile(std::ostringstream& target, size_t size); bool RunCommand(std::ostringstream& command, std::string* output = 0); std::string https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dc756e35d35e14175db0a91040fd587ba2cf8582 commit dc756e35d35e14175db0a91040fd587ba2cf8582 Author: Robert Maynard AuthorDate: Thu Sep 18 13:59:57 2014 -0400 Commit: Adam Strzelecki CommitDate: Thu Nov 12 19:39:27 2015 +0100 DragNDropGenerator now places the background image file in a hidden folder. by using a hidden folder we avoid the need to mark the file as hidden from finder, and it makes it easier for future work to refer to the background image file. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 3d1e4ea..eff302c 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -400,6 +400,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // Optionally add a custom background image ... // Make sure the background file type is the same as the custom image + // and that the file is hidden so it doesn't show up. if(!cpack_dmg_background_image.empty()) { const std::string extension = @@ -409,7 +410,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, std::ostringstream package_background_destination; package_background_destination << staging.str() - << "/background" << extension; + << "/.background/background" << extension; if(!this->CopyFile(package_background_source, package_background_destination)) @@ -421,21 +422,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - - std::ostringstream temp_background_hiding_command; - temp_background_hiding_command << this->GetOption("CPACK_COMMAND_SETFILE"); - temp_background_hiding_command << " -a V \""; - temp_background_hiding_command << package_background_destination.str(); - temp_background_hiding_command << "\""; - - if(!this->RunCommand(temp_background_hiding_command)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error setting attributes on disk volume background image." - << std::endl); - - return 0; - } } // Create a temporary read-write disk image ... https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3887c55e5e1b23bffb960f797c25dcbf343c7e84 commit 3887c55e5e1b23bffb960f797c25dcbf343c7e84 Author: Robert Maynard AuthorDate: Thu Sep 18 13:59:40 2014 -0400 Commit: Adam Strzelecki CommitDate: Thu Nov 12 19:39:27 2015 +0100 DragNDropGenerator background image now uses source file extension. Instead of blindly copying the CPACK_DMG_BACKGROUND_IMAGE file to background.png, we instead use the same file extension as the source image. This is needed for proper support of multi resolution tif backgrounds. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 208a64c..3d1e4ea 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -399,13 +399,17 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } // Optionally add a custom background image ... + // Make sure the background file type is the same as the custom image if(!cpack_dmg_background_image.empty()) { + const std::string extension = + cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); std::ostringstream package_background_source; package_background_source << cpack_dmg_background_image; std::ostringstream package_background_destination; - package_background_destination << staging.str() << "/background.png"; + package_background_destination << staging.str() + << "/background" << extension; if(!this->CopyFile(package_background_source, package_background_destination)) ----------------------------------------------------------------------- Summary of changes: CMakeCPackOptions.cmake.in | 7 ++ Help/release/dev/better-looking-mac-packages.rst | 8 ++ Modules/CPackDMG.cmake | 20 +++- Packaging/CMakeDMGBackground.tif | Bin 0 -> 95690 bytes Packaging/CMakeDMGSetup.scpt | 42 ++++++++ Source/CPack/cmCPackDragNDropGenerator.cxx | 120 ++++++++++++++++++---- Source/CPack/cmCPackDragNDropGenerator.h | 1 + 7 files changed, 172 insertions(+), 26 deletions(-) create mode 100644 Help/release/dev/better-looking-mac-packages.rst create mode 100644 Packaging/CMakeDMGBackground.tif create mode 100644 Packaging/CMakeDMGSetup.scpt hooks/post-receive -- CMake From kwrobot at kitware.com Fri Nov 13 00:01:11 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 13 Nov 2015 00:01:11 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-512-g415863e Message-ID: <20151113050111.643B4C4630@public.kitware.com> 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, master has been updated via 415863e6d40f3c09d43b41ef16e0a7ffa0006063 (commit) from 7387f06586f0b01dd3c1c4f66339c89f2e985e82 (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=415863e6d40f3c09d43b41ef16e0a7ffa0006063 commit 415863e6d40f3c09d43b41ef16e0a7ffa0006063 Author: Kitware Robot AuthorDate: Fri Nov 13 00:01:08 2015 -0500 Commit: Kitware Robot CommitDate: Fri Nov 13 00:01:08 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 325b7f6..c38c61e 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151112) +set(CMake_VERSION_PATCH 20151113) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From gjasny at googlemail.com Fri Nov 13 08:02:44 2015 From: gjasny at googlemail.com (Gregor Jasny) Date: Fri, 13 Nov 2015 08:02:44 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1336-gfaf5e0e Message-ID: <20151113130244.D355BC47F5@public.kitware.com> 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 faf5e0ebdae22a8bac15d4b3fd1239e645d70ffe (commit) via f6f03ed4cc4271384ec934fd5867ccbce4e798f2 (commit) via 9f053763d769780385fbc8e3e936f1c996d2e00a (commit) via 415863e6d40f3c09d43b41ef16e0a7ffa0006063 (commit) from 3597b371f980b961baaec9990c70902ec27d0dea (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=faf5e0ebdae22a8bac15d4b3fd1239e645d70ffe commit faf5e0ebdae22a8bac15d4b3fd1239e645d70ffe Merge: 3597b37 f6f03ed Author: Gregor Jasny AuthorDate: Fri Nov 13 08:02:43 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 08:02:43 2015 -0500 Merge topic 'non-xcode-framework-layout' into next f6f03ed4 Add test for OSX/iOS Framework directory structure (#15833) 9f053763 Fix iOS Framework directory structure (#15833) 415863e6 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f6f03ed4cc4271384ec934fd5867ccbce4e798f2 commit f6f03ed4cc4271384ec934fd5867ccbce4e798f2 Author: Gregor Jasny AuthorDate: Fri Nov 13 12:59:18 2015 +0100 Commit: Gregor Jasny CommitDate: Fri Nov 13 13:58:53 2015 +0100 Add test for OSX/iOS Framework directory structure (#15833) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 1a0019f..a6cbf86 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -239,6 +239,12 @@ if(XCODE_VERSION AND NOT "${XCODE_VERSION}" VERSION_LESS 3) add_RunCMake_test(XcodeProject -DXCODE_VERSION=${XCODE_VERSION}) endif() +if(NOT XCODE + AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang" + AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.0) + add_RunCMake_test(Framework) +endif() + add_RunCMake_test(File_Generate) add_RunCMake_test(ExportWithoutLanguage) add_RunCMake_test(target_link_libraries) diff --git a/Tests/RunCMake/Framework/CMakeLists.txt b/Tests/RunCMake/Framework/CMakeLists.txt new file mode 100644 index 0000000..6dd8cdf --- /dev/null +++ b/Tests/RunCMake/Framework/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.4) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/Framework/FrameworkLayout.cmake b/Tests/RunCMake/Framework/FrameworkLayout.cmake new file mode 100644 index 0000000..107afdf --- /dev/null +++ b/Tests/RunCMake/Framework/FrameworkLayout.cmake @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.4) +enable_language(C) + +add_library(Framework SHARED foo.c) +set_target_properties(Framework PROPERTIES FRAMEWORK TRUE) diff --git a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake new file mode 100644 index 0000000..27d10d8 --- /dev/null +++ b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake @@ -0,0 +1,20 @@ +set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") +set(plist-file "${framework-dir}/Resources/Info.plist") +set(framework-library "${framework-dir}/Framework") +set(framework-versions "${framework-dir}/Versions") + +if(NOT IS_DIRECTORY ${framework-dir}) + message(SEND_ERROR "Framework not found at ${framework-dir}") +endif() + +if(NOT EXISTS ${plist-file}) + message(SEND_ERROR "plist file not found at ${plist-file}") +endif() + +if(NOT EXISTS ${framework-library}) + message(SEND_ERROR "Framework library not found at ${framework-library}") +endif() + +if(NOT EXISTS ${framework-versions}) + message(SEND_ERROR "Framework versions not found at ${framework-versions}") +endif() diff --git a/Tests/RunCMake/Framework/RunCMakeTest.cmake b/Tests/RunCMake/Framework/RunCMakeTest.cmake new file mode 100644 index 0000000..d810283 --- /dev/null +++ b/Tests/RunCMake/Framework/RunCMakeTest.cmake @@ -0,0 +1,33 @@ +include(RunCMake) + +# iOS + +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/iOSFrameworkLayout-build) +set(RunCMake_TEST_NO_CLEAN 1) +set(RunCMake_TEST_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/ios.cmake") + +file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") +file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + +run_cmake(FrameworkLayout) +run_cmake_command(iOSFrameworkLayout-build ${CMAKE_COMMAND} --build .) + +unset(RunCMake_TEST_BINARY_DIR) +unset(RunCMake_TEST_NO_CLEAN) +unset(RunCMake_TEST_OPTIONS) + +# OSX + +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/OSXFrameworkLayout-build) +set(RunCMake_TEST_NO_CLEAN 1) +set(RunCMake_TEST_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/OSX.cmake") + +file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") +file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + +run_cmake(FrameworkLayout) +run_cmake_command(OSXFrameworkLayout-build ${CMAKE_COMMAND} --build .) + +unset(RunCMake_TEST_BINARY_DIR) +unset(RunCMake_TEST_NO_CLEAN) +unset(RunCMake_TEST_OPTIONS) diff --git a/Tests/RunCMake/Framework/foo.c b/Tests/RunCMake/Framework/foo.c new file mode 100644 index 0000000..bf7759e --- /dev/null +++ b/Tests/RunCMake/Framework/foo.c @@ -0,0 +1 @@ +int foo() { return 42; } diff --git a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake new file mode 100644 index 0000000..373baad --- /dev/null +++ b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake @@ -0,0 +1,20 @@ +set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") +set(plist-file "${framework-dir}/Info.plist") +set(framework-library "${framework-dir}/Framework") +set(framework-versions "${framework-dir}/Versions") + +if(NOT IS_DIRECTORY ${framework-dir}) + message(SEND_ERROR "Framework not found at ${framework-dir}") +endif() + +if(NOT EXISTS ${plist-file}) + message(SEND_ERROR "plist file not found at ${plist-file}") +endif() + +if(NOT EXISTS ${framework-library}) + message(SEND_ERROR "Framework library not found at ${framework-library}") +endif() + +if(EXISTS ${framework-versions}) + message(SEND_ERROR "Framework versions found at ${framework-versions}") +endif() diff --git a/Tests/RunCMake/Framework/ios.cmake b/Tests/RunCMake/Framework/ios.cmake new file mode 100644 index 0000000..209a50d --- /dev/null +++ b/Tests/RunCMake/Framework/ios.cmake @@ -0,0 +1,25 @@ +set(CMAKE_SYSTEM_NAME Darwin) +set(CMAKE_SYSTEM_VERSION 1) +set(UNIX True) +set(APPLE True) + +set(CMAKE_MACOSX_BUNDLE TRUE) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_CROSSCOMPILING TRUE) +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") +set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") + +find_program(XCRUN_EXECUTABLE xcrun) +if(NOT XCRUN_EXECUTABLE) + message(FATAL_ERROR "xcrun not found") +endif() + +execute_process( + COMMAND ${XCRUN_EXECUTABLE} --sdk iphoneos --show-sdk-path + OUTPUT_VARIABLE IOS_SDK_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE) + +set(CMAKE_OSX_SYSROOT ${IOS_SDK_PATH} CACHE PATH "Sysroot used for iOS support") +set(CMAKE_OSX_ARCHITECTURES "armv7" CACHE STRING "Architectures to build for") +set(CMAKE_FIND_ROOT_PATH ${IOS_SDK_PATH} CACHE PATH "Find search path root") diff --git a/Tests/RunCMake/Framework/osx.cmake b/Tests/RunCMake/Framework/osx.cmake new file mode 100644 index 0000000..e021fcd --- /dev/null +++ b/Tests/RunCMake/Framework/osx.cmake @@ -0,0 +1,18 @@ +set(CMAKE_SYSTEM_NAME Darwin) +set(CMAKE_SYSTEM_VERSION 1) +set(UNIX True) +set(APPLE True) + +find_program(XCRUN_EXECUTABLE xcrun) +if(NOT XCRUN_EXECUTABLE) + message(FATAL_ERROR "xcrun not found") +endif() + +execute_process( + COMMAND ${XCRUN_EXECUTABLE} --sdk macosx --show-sdk-path + OUTPUT_VARIABLE OSX_SDK_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE) + +set(CMAKE_OSX_SYSROOT ${OSX_SDK_PATH} CACHE PATH "Sysroot used for OSX support") + +set(CMAKE_FIND_ROOT_PATH ${OSX_SDK_PATH} CACHE PATH "Find search path root") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9f053763d769780385fbc8e3e936f1c996d2e00a commit 9f053763d769780385fbc8e3e936f1c996d2e00a Author: Bartosz Kosiorek AuthorDate: Thu Nov 12 08:44:07 2015 +0100 Commit: Gregor Jasny CommitDate: Fri Nov 13 11:51:08 2015 +0100 Fix iOS Framework directory structure (#15833) Signed-off-by: Gregor Jasny diff --git a/Source/cmOSXBundleGenerator.cxx b/Source/cmOSXBundleGenerator.cxx index 3c4aa00..934e198 100644 --- a/Source/cmOSXBundleGenerator.cxx +++ b/Source/cmOSXBundleGenerator.cxx @@ -85,15 +85,24 @@ void cmOSXBundleGenerator::CreateFramework( std::string frameworkVersion = this->GT->GetFrameworkVersion(); - // Configure the Info.plist file into the Resources directory. - this->MacContentFolders->insert("Resources"); + // Configure the Info.plist file std::string plist = newoutpath; - plist += "/Resources/Info.plist"; + if (!this->Makefile->PlatformIsAppleIos()) + { + // Put the Info.plist file into the Resources directory. + this->MacContentFolders->insert("Resources"); + plist += "/Resources"; + } + plist += "/Info.plist"; std::string name = cmSystemTools::GetFilenameName(targetName); this->LocalGenerator->GenerateFrameworkInfoPList(this->GT, name, plist.c_str()); + // Generate Versions directory only for MacOSX frameworks + if (this->Makefile->PlatformIsAppleIos()) + return; + // TODO: Use the cmMakefileTargetGenerator::ExtraFiles vector to // drive rules to create these files at build time. std::string oldName; ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- Source/cmOSXBundleGenerator.cxx | 15 +++++++-- Tests/RunCMake/CMakeLists.txt | 6 ++++ .../{AutoExportDll => Framework}/CMakeLists.txt | 2 +- Tests/RunCMake/Framework/FrameworkLayout.cmake | 5 +++ .../Framework/OSXFrameworkLayout-build-check.cmake | 20 ++++++++++++ Tests/RunCMake/Framework/RunCMakeTest.cmake | 33 ++++++++++++++++++++ Tests/RunCMake/Framework/foo.c | 1 + .../Framework/iOSFrameworkLayout-build-check.cmake | 20 ++++++++++++ Tests/RunCMake/Framework/ios.cmake | 25 +++++++++++++++ .../RunCMake/{XcodeProject => Framework}/osx.cmake | 0 11 files changed, 124 insertions(+), 5 deletions(-) copy Tests/RunCMake/{AutoExportDll => Framework}/CMakeLists.txt (63%) create mode 100644 Tests/RunCMake/Framework/FrameworkLayout.cmake create mode 100644 Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake create mode 100644 Tests/RunCMake/Framework/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/Framework/foo.c create mode 100644 Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake create mode 100644 Tests/RunCMake/Framework/ios.cmake copy Tests/RunCMake/{XcodeProject => Framework}/osx.cmake (100%) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 13 08:51:21 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 13 Nov 2015 08:51:21 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1342-g7e4a0d8 Message-ID: <20151113135121.1508AC453B@public.kitware.com> 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 7e4a0d873f746d1cbe7b421795f6c1b0d1a7af21 (commit) via 4bca9401269878d2f3b0465377f0fb8bce87c734 (commit) via c4b9ee1878c62a272d38ae057e0a76409be54e8f (commit) via 167a465565cda9bb33d2e919509c23a761ea45e9 (commit) via 9c1dfbfd600819a751d4c5058fd939650ee6d6b4 (commit) via 47302038c1021f0b6b0d9977f5bccaa795045805 (commit) from faf5e0ebdae22a8bac15d4b3fd1239e645d70ffe (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=7e4a0d873f746d1cbe7b421795f6c1b0d1a7af21 commit 7e4a0d873f746d1cbe7b421795f6c1b0d1a7af21 Merge: faf5e0e 4bca940 Author: Brad King AuthorDate: Fri Nov 13 08:51:20 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 08:51:20 2015 -0500 Merge topic 'better_looking_mac_package' into next 4bca9401 Improve appearance of CMake .dmg package on OS X c4b9ee18 CPack/DragNDrop: Update documentation to include new variables 167a4655 CPack/DragNDrop: Optionally run an AppleScript when making a package 9c1dfbfd CPack/DragNDrop: Place the background image file in a hidden folder 47302038 CPack/DragNDrop: Use source file extension for background image https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4bca9401269878d2f3b0465377f0fb8bce87c734 commit 4bca9401269878d2f3b0465377f0fb8bce87c734 Author: Adam Strzelecki AuthorDate: Mon Sep 29 08:42:49 2014 -0400 Commit: Brad King CommitDate: Fri Nov 13 08:46:54 2015 -0500 Improve appearance of CMake .dmg package on OS X Configure our use of the CPack DragNDrop generator to specify a custom background image and script. diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index b6013ef..ae00653 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -183,6 +183,13 @@ if("${CPACK_GENERATOR}" STREQUAL "PackageMaker") endif() endif() +if("${CPACK_GENERATOR}" STREQUAL "DragNDrop") + set(CPACK_DMG_BACKGROUND_IMAGE + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGBackground.tif") + set(CPACK_DMG_DS_STORE_SETUP_SCRIPT + "@CMake_SOURCE_DIR@/Packaging/CMakeDMGSetup.scpt") +endif() + if("${CPACK_GENERATOR}" STREQUAL "WIX") # Reset CPACK_PACKAGE_VERSION to deal with WiX restriction. # But the file names still use the full CMake_VERSION value: diff --git a/Packaging/CMakeDMGBackground.tif b/Packaging/CMakeDMGBackground.tif new file mode 100644 index 0000000..91c4b13 Binary files /dev/null and b/Packaging/CMakeDMGBackground.tif differ diff --git a/Packaging/CMakeDMGSetup.scpt b/Packaging/CMakeDMGSetup.scpt new file mode 100644 index 0000000..c7ddcfb --- /dev/null +++ b/Packaging/CMakeDMGSetup.scpt @@ -0,0 +1,42 @@ +on run argv + set image_name to item 1 of argv + + tell application "Finder" + tell disk image_name + + -- open the image the first time and save a DS_Store with just + -- background and icon setup + open + set current view of container window to icon view + set theViewOptions to the icon view options of container window + set background picture of theViewOptions to file ".background:background.tif" + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 128 + delay 1 + close + + -- next setup the position of the app and Applications symlink + -- plus hide all the window decoration + open + update without registering applications + tell container window + set sidebar width to 0 + set statusbar visible to false + set toolbar visible to false + set the bounds to { 400, 100, 900, 465 } + set position of item "CMake.app" to { 133, 200 } + set position of item "Applications" to { 378, 200 } + end tell + update without registering applications + delay 1 + close + + -- one last open and close so you can see everything looks correct + open + delay 5 + close + + end tell + delay 1 +end tell +end run https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c4b9ee1878c62a272d38ae057e0a76409be54e8f commit c4b9ee1878c62a272d38ae057e0a76409be54e8f Author: Robert Maynard AuthorDate: Thu Dec 18 14:56:37 2014 -0500 Commit: Brad King CommitDate: Fri Nov 13 08:45:59 2015 -0500 CPack/DragNDrop: Update documentation to include new variables Document the new behavior of `CPACK_DMG_BACKGROUND_IMAGE` and the purpose of `CPACK_DMG_DS_STORE_SETUP_SCRIPT`. diff --git a/Help/release/dev/better-looking-mac-packages.rst b/Help/release/dev/better-looking-mac-packages.rst new file mode 100644 index 0000000..ef1b8e8 --- /dev/null +++ b/Help/release/dev/better-looking-mac-packages.rst @@ -0,0 +1,8 @@ +better-looking-mac-packages +--------------------------- + +* The :module:`CPackDMG` module learned new variable to specify AppleScript + file run to customize appearance of ``DragNDrop`` installer folder, + including background image setting using supplied PNG or multi-resolution + TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and + :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index 37d7352..6b5af7e 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -26,15 +26,25 @@ # Path to a custom DS_Store file. This .DS_Store file e.g. can be used to # specify the Finder window position/geometry and layout (such as hidden # toolbars, placement of the icons etc.). This file has to be generated by -# the Finder (either manually or through OSA-script) using a normal folder +# the Finder (either manually or through AppleScript) using a normal folder # from which the .DS_Store file can then be extracted. # +# .. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT +# +# Path to a custom AppleScript file. This AppleScript is used to generate +# a .DS_Store file which specifies the Finder window position/geometry and +# layout (such as hidden toolbars, placement of the icons etc.). +# By specifying a custom AppleScript there is no need to use +# CPACK_DMG_DS_STORE, as the .DS_Store that is generated by the AppleScript +# will be packaged. +# # .. variable:: CPACK_DMG_BACKGROUND_IMAGE # -# Path to a background image file. This file will be used as the background -# for the Finder Window when the disk image is opened. By default no -# background image is set. The background image is applied after applying the -# custom .DS_Store file. +# Path to an image file to be used as the background. This file will be +# copied to .background/background., where ext is the original image file +# extension. The background image is installed into the image before +# CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is +# installed. By default no background image is set. # # .. variable:: CPACK_DMG_SLA_DIR # https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=167a465565cda9bb33d2e919509c23a761ea45e9 commit 167a465565cda9bb33d2e919509c23a761ea45e9 Author: Robert Maynard AuthorDate: Fri Sep 26 14:38:38 2014 -0400 Commit: Brad King CommitDate: Fri Nov 13 08:44:15 2015 -0500 CPack/DragNDrop: Optionally run an AppleScript when making a package While the DragNDropGenerator supports custom DS_Store and backgrounds, it is still very hard to automatically setup nice looking packages. The primary issue is that the DS_Store embeds the name of the volume in the path to backgrounds, which means that if a package embeds the version in its volume name a new DS_Store must generated for each release. Instead one now can use applescript to setup the DS_Store. This change also ensures that temporary RW image has enough space for these changes, creating 1 MB dummy padding file, that is later removed from the image. Co-Author: Adam Strzelecki diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index eff302c..7a93fc6 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -271,6 +271,28 @@ bool cmCPackDragNDropGenerator::CopyFile(std::ostringstream& source, } //---------------------------------------------------------------------- +bool cmCPackDragNDropGenerator::CreateEmptyFile(std::ostringstream& target, + size_t size) +{ + cmsys::ofstream fout(target.str().c_str(), + std::ios::out | std::ios::binary); + if(!fout) + { + return false; + } + else + { + // Seek to desired size - 1 byte + fout.seekp(size - 1, std::ios_base::beg); + char byte = 0; + // Write one byte to ensure file grows + fout.write(&byte, 1); + } + + return true; +} + +//---------------------------------------------------------------------- bool cmCPackDragNDropGenerator::RunCommand(std::ostringstream& command, std::string* output) { @@ -331,6 +353,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, this->GetOption("CPACK_DMG_LANGUAGES") ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; + const std::string cpack_dmg_ds_store_setup_script = + this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") + ? this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") : ""; + // only put license on dmg if is user provided if(!cpack_license_file.empty() && cpack_license_file.find("CPack.GenericLicense.txt") != std::string::npos) @@ -424,6 +450,25 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } } + bool remount_image = !cpack_package_icon.empty() || + !cpack_dmg_ds_store_setup_script.empty(); + + // Create 1 MB dummy padding file in staging area when we need to remount + // image, so we have enough space for storing changes ... + if(remount_image) + { + std::ostringstream dummy_padding; + dummy_padding << staging.str() << "/.dummy-padding-file"; + if(!this->CreateEmptyFile(dummy_padding, 1048576)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error creating dummy padding file." + << std::endl); + + return 0; + } + } + // Create a temporary read-write disk image ... std::string temp_image = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); temp_image += "/temp.dmg"; @@ -447,10 +492,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - // Optionally set the custom icon flag for the image ... - if(!cpack_package_icon.empty()) + if(remount_image) { - std::ostringstream temp_mount; + // Store that we have a failure so that we always unmount the image + // before we exit. + bool had_error = false; std::ostringstream attach_command; attach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); @@ -469,20 +515,57 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, cmsys::RegularExpression mountpoint_regex(".*(/Volumes/[^\n]+)\n.*"); mountpoint_regex.find(attach_output.c_str()); + std::ostringstream temp_mount; temp_mount << mountpoint_regex.match(1); - std::ostringstream setfile_command; - setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); - setfile_command << " -a C"; - setfile_command << " \"" << temp_mount.str() << "\""; - - if(!this->RunCommand(setfile_command)) + // Remove dummy padding file so we have enough space on RW image ... + std::ostringstream dummy_padding; + dummy_padding << temp_mount.str() << "/.dummy-padding-file"; + if(!cmSystemTools::RemoveFile(dummy_padding.str())) { cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error assigning custom icon to temporary disk image." + "Error removing dummy padding file." << std::endl); - return 0; + had_error = true; + } + + // Optionally set the custom icon flag for the image ... + if(!had_error && !cpack_package_icon.empty()) + { + std::ostringstream setfile_command; + setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); + setfile_command << " -a C"; + setfile_command << " \"" << temp_mount.str() << "\""; + + if(!this->RunCommand(setfile_command)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error assigning custom icon to temporary disk image." + << std::endl); + + had_error = true; + } + } + + // Optionally we can execute a custom apple script to generate + // the .DS_Store for the volume folder ... + if(!had_error && !cpack_dmg_ds_store_setup_script.empty()) + { + std::ostringstream setup_script_command; + setup_script_command << "osascript" + << " \"" << cpack_dmg_ds_store_setup_script << "\"" + << " \"" << cpack_dmg_volume_name << "\""; + std::string error; + if(!this->RunCommand(setup_script_command, &error)) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Error executing custom script on disk image." << std::endl + << error + << std::endl); + + had_error = true; + } } std::ostringstream detach_command; @@ -498,6 +581,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } + + if(had_error) + { + return 0; + } } if(!cpack_license_file.empty() || !slaDirectory.empty()) diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 12db469..53d38c4 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -36,6 +36,7 @@ protected: bool CopyFile(std::ostringstream& source, std::ostringstream& target); + bool CreateEmptyFile(std::ostringstream& target, size_t size); bool RunCommand(std::ostringstream& command, std::string* output = 0); std::string https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9c1dfbfd600819a751d4c5058fd939650ee6d6b4 commit 9c1dfbfd600819a751d4c5058fd939650ee6d6b4 Author: Robert Maynard AuthorDate: Thu Sep 18 13:59:57 2014 -0400 Commit: Brad King CommitDate: Fri Nov 13 08:43:50 2015 -0500 CPack/DragNDrop: Place the background image file in a hidden folder By using a hidden folder we avoid the need to mark the file as hidden from finder, and it makes it easier for future work to refer to the background image file. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 3d1e4ea..eff302c 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -400,6 +400,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // Optionally add a custom background image ... // Make sure the background file type is the same as the custom image + // and that the file is hidden so it doesn't show up. if(!cpack_dmg_background_image.empty()) { const std::string extension = @@ -409,7 +410,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, std::ostringstream package_background_destination; package_background_destination << staging.str() - << "/background" << extension; + << "/.background/background" << extension; if(!this->CopyFile(package_background_source, package_background_destination)) @@ -421,21 +422,6 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, return 0; } - - std::ostringstream temp_background_hiding_command; - temp_background_hiding_command << this->GetOption("CPACK_COMMAND_SETFILE"); - temp_background_hiding_command << " -a V \""; - temp_background_hiding_command << package_background_destination.str(); - temp_background_hiding_command << "\""; - - if(!this->RunCommand(temp_background_hiding_command)) - { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error setting attributes on disk volume background image." - << std::endl); - - return 0; - } } // Create a temporary read-write disk image ... https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47302038c1021f0b6b0d9977f5bccaa795045805 commit 47302038c1021f0b6b0d9977f5bccaa795045805 Author: Robert Maynard AuthorDate: Thu Sep 18 13:59:40 2014 -0400 Commit: Brad King CommitDate: Fri Nov 13 08:42:49 2015 -0500 CPack/DragNDrop: Use source file extension for background image Instead of blindly copying the `CPACK_DMG_BACKGROUND_IMAGE` file to `background.png`, we instead use the same file extension as the source image. This is needed for proper support of multi resolution `tif` backgrounds. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 208a64c..3d1e4ea 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -399,13 +399,17 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } // Optionally add a custom background image ... + // Make sure the background file type is the same as the custom image if(!cpack_dmg_background_image.empty()) { + const std::string extension = + cmSystemTools::GetFilenameLastExtension(cpack_dmg_background_image); std::ostringstream package_background_source; package_background_source << cpack_dmg_background_image; std::ostringstream package_background_destination; - package_background_destination << staging.str() << "/background.png"; + package_background_destination << staging.str() + << "/background" << extension; if(!this->CopyFile(package_background_source, package_background_destination)) ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 13 08:53:35 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 13 Nov 2015 08:53:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-514-gbbf1757 Message-ID: <20151113135339.4F5D2C45B5@public.kitware.com> 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, master has been updated via bbf1757dfa4804c0d8ac311e6645084982831a50 (commit) via 09f754f040f3e817cd69337adea2c73cb61d53da (commit) from 415863e6d40f3c09d43b41ef16e0a7ffa0006063 (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=bbf1757dfa4804c0d8ac311e6645084982831a50 commit bbf1757dfa4804c0d8ac311e6645084982831a50 Merge: 415863e 09f754f Author: Brad King AuthorDate: Fri Nov 13 08:53:32 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 08:53:32 2015 -0500 Merge topic 'cray-fortran-version' 09f754f0 Cray: Implement Fortran compiler version detection (#15845) ----------------------------------------------------------------------- Summary of changes: Modules/CMakeFortranCompilerId.F.in | 2 ++ 1 file changed, 2 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 13 08:53:42 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 13 Nov 2015 08:53:42 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-520-g9feb24e Message-ID: <20151113135342.639A7C45BC@public.kitware.com> 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, master has been updated via 9feb24e514f3c0f6b9a9705e17cf1917152df977 (commit) via 4bca9401269878d2f3b0465377f0fb8bce87c734 (commit) via c4b9ee1878c62a272d38ae057e0a76409be54e8f (commit) via 167a465565cda9bb33d2e919509c23a761ea45e9 (commit) via 9c1dfbfd600819a751d4c5058fd939650ee6d6b4 (commit) via 47302038c1021f0b6b0d9977f5bccaa795045805 (commit) from bbf1757dfa4804c0d8ac311e6645084982831a50 (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=9feb24e514f3c0f6b9a9705e17cf1917152df977 commit 9feb24e514f3c0f6b9a9705e17cf1917152df977 Merge: bbf1757 4bca940 Author: Brad King AuthorDate: Fri Nov 13 08:53:40 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 08:53:40 2015 -0500 Merge topic 'better_looking_mac_package' 4bca9401 Improve appearance of CMake .dmg package on OS X c4b9ee18 CPack/DragNDrop: Update documentation to include new variables 167a4655 CPack/DragNDrop: Optionally run an AppleScript when making a package 9c1dfbfd CPack/DragNDrop: Place the background image file in a hidden folder 47302038 CPack/DragNDrop: Use source file extension for background image ----------------------------------------------------------------------- Summary of changes: CMakeCPackOptions.cmake.in | 7 ++ Help/release/dev/better-looking-mac-packages.rst | 8 ++ Modules/CPackDMG.cmake | 20 +++- Packaging/CMakeDMGBackground.tif | Bin 0 -> 95690 bytes Packaging/CMakeDMGSetup.scpt | 42 ++++++++ Source/CPack/cmCPackDragNDropGenerator.cxx | 120 ++++++++++++++++++---- Source/CPack/cmCPackDragNDropGenerator.h | 1 + 7 files changed, 172 insertions(+), 26 deletions(-) create mode 100644 Help/release/dev/better-looking-mac-packages.rst create mode 100644 Packaging/CMakeDMGBackground.tif create mode 100644 Packaging/CMakeDMGSetup.scpt hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 13 08:53:58 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 13 Nov 2015 08:53:58 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1345-g48c73f5 Message-ID: <20151113135358.6050DC45D3@public.kitware.com> 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 48c73f5a01e840039b18d79adc788708d19ffb56 (commit) via 9feb24e514f3c0f6b9a9705e17cf1917152df977 (commit) via bbf1757dfa4804c0d8ac311e6645084982831a50 (commit) from 7e4a0d873f746d1cbe7b421795f6c1b0d1a7af21 (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=48c73f5a01e840039b18d79adc788708d19ffb56 commit 48c73f5a01e840039b18d79adc788708d19ffb56 Merge: 7e4a0d8 9feb24e Author: Brad King AuthorDate: Fri Nov 13 08:53:50 2015 -0500 Commit: Brad King CommitDate: Fri Nov 13 08:53:50 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From zack.galbreath at kitware.com Fri Nov 13 09:36:59 2015 From: zack.galbreath at kitware.com (Zack Galbreath) Date: Fri, 13 Nov 2015 09:36:59 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1347-g2acc0ab Message-ID: <20151113143659.71527C48E2@public.kitware.com> 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 2acc0abc0c34ab7ca49777c8e64ed455c48e8ce2 (commit) via 6f530c8dfbc217cf83b6e27e5c312b4661b2c8fb (commit) from 48c73f5a01e840039b18d79adc788708d19ffb56 (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=2acc0abc0c34ab7ca49777c8e64ed455c48e8ce2 commit 2acc0abc0c34ab7ca49777c8e64ed455c48e8ce2 Merge: 48c73f5 6f530c8 Author: Zack Galbreath AuthorDate: Fri Nov 13 09:36:58 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 09:36:58 2015 -0500 Merge topic 'jacoco_out_of_source' into next 6f530c8d Search for Jacoco files in the binary directory https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f530c8dfbc217cf83b6e27e5c312b4661b2c8fb commit 6f530c8dfbc217cf83b6e27e5c312b4661b2c8fb Author: Zack Galbreath AuthorDate: Thu Oct 29 16:08:10 2015 -0400 Commit: Zack Galbreath CommitDate: Thu Oct 29 16:08:10 2015 -0400 Search for Jacoco files in the binary directory Search for Jacoco coverage files in both the source directory and the binary directory. diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 20807c8..d358a93 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -913,16 +913,33 @@ int cmCTestCoverageHandler::HandleJacocoCoverage( { cmParseJacocoCoverage cov = cmParseJacocoCoverage(*cont, this->CTest); - cmsys::Glob g; + + // Search in the source directory. + cmsys::Glob g1; std::vector files; - g.SetRecurse(true); + g1.SetRecurse(true); std::string SourceDir = this->CTest->GetCTestConfiguration("SourceDirectory"); std::string coverageFile = SourceDir+ "/*jacoco.xml"; - g.FindFiles(coverageFile); - files=g.GetFiles(); + g1.FindFiles(coverageFile); + files = g1.GetFiles(); + + // ...and in the binary directory. + cmsys::Glob g2; + std::vector binFiles; + g2.SetRecurse(true); + std::string binaryDir + = this->CTest->GetCTestConfiguration("BuildDirectory"); + std::string binCoverageFile = binaryDir+ "/*jacoco.xml"; + g2.FindFiles(binCoverageFile); + binFiles = g2.GetFiles(); + if (!binFiles.empty()) + { + files.insert(files.end(), binFiles.begin(), binFiles.end()); + } + if (!files.empty()) { cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, ----------------------------------------------------------------------- Summary of changes: Source/CTest/cmCTestCoverageHandler.cxx | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 11:18:02 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 11:18:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1349-gfa843e7 Message-ID: <20151113161802.913B2C43D5@public.kitware.com> 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 fa843e7614ccf613e7709cefbcaa8935616d5900 (commit) via 973e97cd31edd3bbf6326a81f9dcb1712392b40e (commit) from 2acc0abc0c34ab7ca49777c8e64ed455c48e8ce2 (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=fa843e7614ccf613e7709cefbcaa8935616d5900 commit fa843e7614ccf613e7709cefbcaa8935616d5900 Merge: 2acc0ab 973e97c Author: Chuck Atkins AuthorDate: Fri Nov 13 11:18:01 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 11:18:01 2015 -0500 Merge topic 'add-cray-linux-platform' into next 973e97cd Cray: New platform file for Cray Linux Environment and PrgEnv https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=973e97cd31edd3bbf6326a81f9dcb1712392b40e commit 973e97cd31edd3bbf6326a81f9dcb1712392b40e Author: Chuck Atkins AuthorDate: Fri Nov 13 10:13:24 2015 -0600 Commit: Chuck Atkins CommitDate: Fri Nov 13 10:13:24 2015 -0600 Cray: New platform file for Cray Linux Environment and PrgEnv diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake new file mode 100644 index 0000000..b7be431 --- /dev/null +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -0,0 +1,111 @@ +# Compute Node Linux doesn't quite work the same as native Linux so all of this +# needs to be custom. We use the variables defined through Cray's environment +# modules to set up the right paths for things. + +# Guard against multiple inclusions +if(__CrayLinuxEnvironment) + return() +endif() +set(__CrayLinuxEnvironment 1) + +set(UNIX 1) + +if(DEFINED ENV{CRAYOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{CRAYOS_VERSION}") +elseif(DEFINED ENV{XTOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}") +else() + message(FATAL_ERROR "Neither the CRAYXC or CRAYXT CMake variables are defined. Thjis platform file should not be used directly but instead only from the CrayPrgEnv toolchain file") +endif() +message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}") + +# All cray systems are x86 CPUs and have been for quite some time +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +set(CMAKE_DL_LIBS dl) + +# Note: Much of this is pulled from UnixPaths.cmake but adjusted to the Cray +# environment accordingly + +# Get the install directory of the running cmake to the search directories +# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up +get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) +get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) + + +# Note: Some cray's have the SYSROOT_DIR variable defined, pointing to a copy +# of the NIDs userland. If so, then we'll use it. Otherwise, just assume +# the userland from the login node is ok + +# List common installation prefixes. These will be used for all +# search types. +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + $ENV{SYSROOT_DIR}/usr/local $ENV{SYSROOT_DIR}/usr $ENV{SYSROOT_DIR}/ + + # CMake install location + "${_CMAKE_INSTALL_DIR}" + ) +if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + ) + if(CMAKE_STAGING_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # User-supplied staging prefix. + "${CMAKE_STAGING_PREFIX}" + ) + endif() +endif() + +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH + $ENV{SYSROOT_DIR}/usr/include + $ENV{SYSROOT_DIR}/usr/include/X11 +) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) + +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) + +# Enable use of lib64 search path variants by default. +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) + +# Check to see if we're using the cray compiler wrapers and load accordingly if we are +# Make sure we have the appropriate environment loaded +if(DEFINED ENV{CRAYPE_DIR}) + set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") +elseif(DEFINED ENV{ASYNCPE_DIR}) + set(_CRAYPE_ROOT "$ENV{ASYNCPE_DIR}") +endif() +if(_CRAYPE_ROOT AND + ((CMAKE_C_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_CXX_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_Fortran_COMPILER MATCHES "${_CRAYPE_ROOT}"))) + include(Platform/CrayPrgEnv-ToolChain) +endif() diff --git a/Modules/Platform/CrayPrgEnv-ToolChain.cmake b/Modules/Platform/CrayPrgEnv-ToolChain.cmake new file mode 100644 index 0000000..a2fe598 --- /dev/null +++ b/Modules/Platform/CrayPrgEnv-ToolChain.cmake @@ -0,0 +1,114 @@ +# Guard against multiple inclusions +if(__CrayPrgEnv) + return() +endif() +set(__CrayPrgEnv 1) +if(DEFINED ENV{CRAYPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION}") +elseif(DEFINED ENV{ASYNCPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{ASYNCPE_VERSION}") +else() + message(STATUS "Cray Programming Environment") +endif() + +if(NOT __CrayLinuxEnvironment) + message(FATAL_ERROR "The CrayPrgEnv tolchain file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") +endif() + +# Flags for the Cray wrappers +foreach(_lang C CXX Fortran) + set(CMAKE_STATIC_LIBRARY_LINK_${_lang}_FLAGS "-static") + set(CMAKE_SHARED_LIBRARY_${_lang}_FLAGS "") + set(CMAKE_SHARED_LIBRARY_CREATE_${_lang}_FLAGS "-shared") + set(CMAKE_SHARED_LIBRARY_LINK_${_lang}_FLAGS "-dynamic") +endforeach() + +# If the link type is not explicitly specified in the environment then +# the Cray wrappers assume that the code will be built staticly +if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR + ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_LINK_SEARCH_START_STATIC TRUE) +endif() + +# Parse the implicit directories used by the wrappers +get_property(_LANGS GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(_lang IN LISTS _LANGS) + execute_process( + COMMAND ${CMAKE_${_lang}_COMPILER} -craype-verbose /dev/null + OUTPUT_VARIABLE _CRAY_FLAGS + ERROR_QUIET + ) + + # Parse include paths + string(REGEX MATCHALL " -I([^ ]+)" _CRAY_INCLUDE_FLAGS "${_CRAY_FLAGS}") + foreach(_flag IN LISTS _CRAY_INCLUDE_FLAGS) + string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -L([^ ]+)" _CRAY_LIBRARY_DIR_FLAGS "${_CRAY_FLAGS}") + foreach(_flag IN LISTS _CRAY_LIBRARY_DIR_FLAGS) + string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -l([^ ]+)" _CRAY_LIBRARY_FLAGS "${_CRAY_FLAGS}") + foreach(_flag IN LISTS _CRAY_LIBRARY_FLAGS) + string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${_lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) + endforeach() + if(CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${_lang}_IMPLICIT_LINK_LIBRARIES) + endif() +endforeach() + +# Compute the intersection of several lists +macro(__list_intersection L_OUT L0) + if(ARGC EQUAL 2) + list(APPEND ${L_OUT} ${${L0}}) + else() + foreach(I IN LISTS ${L0}) + set(__is_common 1) + foreach(L IN LISTS ARGN) + list(FIND ${L} "${I}" __idx) + if(__idx EQUAL -1) + set(__is_common 0) + break() + endif() + endforeach() + if(__is_common) + list(APPEND ${L_OUT} "${I}") + endif() + endforeach() + endif() + if(${L_OUT}) + list(REMOVE_DUPLICATES ${L_OUT}) + endif() +endmacro() + +# Determine the common directories between all languages and add them +# as system search paths +set(_CRAY_INCLUDE_PATH_VARS) +set(_CRAY_LIBRARY_PATH_VARS) +foreach(_lang IN LISTS _LANGS) + list(APPEND _CRAY_INCLUDE_PATH_VARS CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND _CRAY_LIBRARY_PATH_VARS CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) +endforeach() +if(_CRAY_INCLUDE_PATH_VARS) + __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${_CRAY_INCLUDE_PATH_VARS}) +endif() +if(_CRAY_LIBRARY_PATH_VARS) + __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${_CRAY_LIBRARY_PATH_VARS}) +endif() ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayLinuxEnvironment.cmake | 111 ++++++++++++++++++++++++++ Modules/Platform/CrayPrgEnv-ToolChain.cmake | 114 +++++++++++++++++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 Modules/Platform/CrayLinuxEnvironment.cmake create mode 100644 Modules/Platform/CrayPrgEnv-ToolChain.cmake hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 11:53:24 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 11:53:24 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1351-g1c2a51a Message-ID: <20151113165324.647D3C45DA@public.kitware.com> 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 1c2a51a800691344234f5500919c0b005f2196ec (commit) via 30b10c7d6d4d570855a01376295d3125d8fad6ea (commit) from fa843e7614ccf613e7709cefbcaa8935616d5900 (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=1c2a51a800691344234f5500919c0b005f2196ec commit 1c2a51a800691344234f5500919c0b005f2196ec Merge: fa843e7 30b10c7 Author: Chuck Atkins AuthorDate: Fri Nov 13 11:53:23 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 11:53:23 2015 -0500 Merge topic 'add-cray-linux-platform' into next 30b10c7d Cray: Make use of "_" consistent in private variable names https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=30b10c7d6d4d570855a01376295d3125d8fad6ea commit 30b10c7d6d4d570855a01376295d3125d8fad6ea Author: Chuck Atkins AuthorDate: Fri Nov 13 10:52:09 2015 -0600 Commit: Chuck Atkins CommitDate: Fri Nov 13 10:52:09 2015 -0600 Cray: Make use of "_" consistent in private variable names diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake index b7be431..404dad9 100644 --- a/Modules/Platform/CrayLinuxEnvironment.cmake +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -38,8 +38,8 @@ set(CMAKE_DL_LIBS dl) # Get the install directory of the running cmake to the search directories # CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up -get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) -get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) +get_filename_component(__cmake_install_dir "${CMAKE_ROOT}" PATH) +get_filename_component(__cmake_install_dir "${__cmake_install_dir}" PATH) # Note: Some cray's have the SYSROOT_DIR variable defined, pointing to a copy @@ -53,7 +53,7 @@ list(APPEND CMAKE_SYSTEM_PREFIX_PATH $ENV{SYSROOT_DIR}/usr/local $ENV{SYSROOT_DIR}/usr $ENV{SYSROOT_DIR}/ # CMake install location - "${_CMAKE_INSTALL_DIR}" + "${__cmake_install_dir}" ) if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) list(APPEND CMAKE_SYSTEM_PREFIX_PATH @@ -97,7 +97,6 @@ list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) # Check to see if we're using the cray compiler wrapers and load accordingly if we are -# Make sure we have the appropriate environment loaded if(DEFINED ENV{CRAYPE_DIR}) set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") elseif(DEFINED ENV{ASYNCPE_DIR}) diff --git a/Modules/Platform/CrayPrgEnv-ToolChain.cmake b/Modules/Platform/CrayPrgEnv-ToolChain.cmake index a2fe598..53c6490 100644 --- a/Modules/Platform/CrayPrgEnv-ToolChain.cmake +++ b/Modules/Platform/CrayPrgEnv-ToolChain.cmake @@ -5,8 +5,10 @@ endif() set(__CrayPrgEnv 1) if(DEFINED ENV{CRAYPE_VERSION}) message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION}") + set(__verbose_flag "-craype-verbose") elseif(DEFINED ENV{ASYNCPE_VERSION}) message(STATUS "Cray Programming Environment $ENV{ASYNCPE_VERSION}") + set(__verbose_flag "-v") else() message(STATUS "Cray Programming Environment") endif() @@ -16,11 +18,11 @@ if(NOT __CrayLinuxEnvironment) endif() # Flags for the Cray wrappers -foreach(_lang C CXX Fortran) - set(CMAKE_STATIC_LIBRARY_LINK_${_lang}_FLAGS "-static") - set(CMAKE_SHARED_LIBRARY_${_lang}_FLAGS "") - set(CMAKE_SHARED_LIBRARY_CREATE_${_lang}_FLAGS "-shared") - set(CMAKE_SHARED_LIBRARY_LINK_${_lang}_FLAGS "-dynamic") +foreach(__lang C CXX Fortran) + set(CMAKE_STATIC_LIBRARY_LINK_${__lang}_FLAGS "-static") + set(CMAKE_SHARED_LIBRARY_${__lang}_FLAGS "") + set(CMAKE_SHARED_LIBRARY_CREATE_${__lang}_FLAGS "-shared") + set(CMAKE_SHARED_LIBRARY_LINK_${__lang}_FLAGS "-dynamic") endforeach() # If the link type is not explicitly specified in the environment then @@ -35,42 +37,53 @@ if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR endif() # Parse the implicit directories used by the wrappers -get_property(_LANGS GLOBAL PROPERTY ENABLED_LANGUAGES) -foreach(_lang IN LISTS _LANGS) +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty_fname empty.c) + elseif(__lang STREQUAL CXX) + set(__empty_fname empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty_fname empty.f90) + else() + continue() + endif() + execute_process( - COMMAND ${CMAKE_${_lang}_COMPILER} -craype-verbose /dev/null - OUTPUT_VARIABLE _CRAY_FLAGS + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} + OUTPUT_VARIABLE __cray_output ERROR_QUIET ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") # Parse include paths - string(REGEX MATCHALL " -I([^ ]+)" _CRAY_INCLUDE_FLAGS "${_CRAY_FLAGS}") - foreach(_flag IN LISTS _CRAY_INCLUDE_FLAGS) + string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_include_flags) string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) endforeach() - if(CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) + if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) endif() # Parse library paths - string(REGEX MATCHALL " -L([^ ]+)" _CRAY_LIBRARY_DIR_FLAGS "${_CRAY_FLAGS}") - foreach(_flag IN LISTS _CRAY_LIBRARY_DIR_FLAGS) + string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_dir_flags) string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) endforeach() - if(CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) endif() # Parse library paths - string(REGEX MATCHALL " -l([^ ]+)" _CRAY_LIBRARY_FLAGS "${_CRAY_FLAGS}") - foreach(_flag IN LISTS _CRAY_LIBRARY_FLAGS) + string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_flags) string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${_lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) endforeach() - if(CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${_lang}_IMPLICIT_LINK_LIBRARIES) + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) endif() endforeach() @@ -100,15 +113,15 @@ endmacro() # Determine the common directories between all languages and add them # as system search paths -set(_CRAY_INCLUDE_PATH_VARS) -set(_CRAY_LIBRARY_PATH_VARS) -foreach(_lang IN LISTS _LANGS) - list(APPEND _CRAY_INCLUDE_PATH_VARS CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) - list(APPEND _CRAY_LIBRARY_PATH_VARS CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) +set(__cray_include_path_vars) +set(__cray_library_path_vars) +foreach(__lang IN LISTS __langs) + list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) endforeach() -if(_CRAY_INCLUDE_PATH_VARS) - __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${_CRAY_INCLUDE_PATH_VARS}) +if(__cray_include_path_vars) + __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) endif() -if(_CRAY_LIBRARY_PATH_VARS) - __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${_CRAY_LIBRARY_PATH_VARS}) +if(__cray_library_path_vars) + __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) endif() ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayLinuxEnvironment.cmake | 7 +-- Modules/Platform/CrayPrgEnv-ToolChain.cmake | 79 ++++++++++++++++----------- 2 files changed, 49 insertions(+), 37 deletions(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 11:54:06 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 11:54:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1353-g3be554f Message-ID: <20151113165406.55C45C4664@public.kitware.com> 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 3be554f2cbc3cfa45458df87d0f25e50927c6006 (commit) via b66c5e52b235e032fcc01773ae6e3e91cb0caa2d (commit) from 1c2a51a800691344234f5500919c0b005f2196ec (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=3be554f2cbc3cfa45458df87d0f25e50927c6006 commit 3be554f2cbc3cfa45458df87d0f25e50927c6006 Merge: 1c2a51a b66c5e5 Author: Chuck Atkins AuthorDate: Fri Nov 13 11:54:05 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 11:54:05 2015 -0500 Merge topic 'add-cray-linux-platform' into next b66c5e52 Cray: New platform file for Cray Linux Environment and PrgEnv https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b66c5e52b235e032fcc01773ae6e3e91cb0caa2d commit b66c5e52b235e032fcc01773ae6e3e91cb0caa2d Author: Chuck Atkins AuthorDate: Fri Nov 13 10:13:24 2015 -0600 Commit: Chuck Atkins CommitDate: Fri Nov 13 11:53:39 2015 -0500 Cray: New platform file for Cray Linux Environment and PrgEnv diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake new file mode 100644 index 0000000..404dad9 --- /dev/null +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -0,0 +1,110 @@ +# Compute Node Linux doesn't quite work the same as native Linux so all of this +# needs to be custom. We use the variables defined through Cray's environment +# modules to set up the right paths for things. + +# Guard against multiple inclusions +if(__CrayLinuxEnvironment) + return() +endif() +set(__CrayLinuxEnvironment 1) + +set(UNIX 1) + +if(DEFINED ENV{CRAYOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{CRAYOS_VERSION}") +elseif(DEFINED ENV{XTOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}") +else() + message(FATAL_ERROR "Neither the CRAYXC or CRAYXT CMake variables are defined. Thjis platform file should not be used directly but instead only from the CrayPrgEnv toolchain file") +endif() +message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}") + +# All cray systems are x86 CPUs and have been for quite some time +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +set(CMAKE_DL_LIBS dl) + +# Note: Much of this is pulled from UnixPaths.cmake but adjusted to the Cray +# environment accordingly + +# Get the install directory of the running cmake to the search directories +# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up +get_filename_component(__cmake_install_dir "${CMAKE_ROOT}" PATH) +get_filename_component(__cmake_install_dir "${__cmake_install_dir}" PATH) + + +# Note: Some cray's have the SYSROOT_DIR variable defined, pointing to a copy +# of the NIDs userland. If so, then we'll use it. Otherwise, just assume +# the userland from the login node is ok + +# List common installation prefixes. These will be used for all +# search types. +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + $ENV{SYSROOT_DIR}/usr/local $ENV{SYSROOT_DIR}/usr $ENV{SYSROOT_DIR}/ + + # CMake install location + "${__cmake_install_dir}" + ) +if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + ) + if(CMAKE_STAGING_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # User-supplied staging prefix. + "${CMAKE_STAGING_PREFIX}" + ) + endif() +endif() + +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH + $ENV{SYSROOT_DIR}/usr/include + $ENV{SYSROOT_DIR}/usr/include/X11 +) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) + +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) + +# Enable use of lib64 search path variants by default. +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) + +# Check to see if we're using the cray compiler wrapers and load accordingly if we are +if(DEFINED ENV{CRAYPE_DIR}) + set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") +elseif(DEFINED ENV{ASYNCPE_DIR}) + set(_CRAYPE_ROOT "$ENV{ASYNCPE_DIR}") +endif() +if(_CRAYPE_ROOT AND + ((CMAKE_C_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_CXX_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_Fortran_COMPILER MATCHES "${_CRAYPE_ROOT}"))) + include(Platform/CrayPrgEnv-ToolChain) +endif() diff --git a/Modules/Platform/CrayPrgEnv-ToolChain.cmake b/Modules/Platform/CrayPrgEnv-ToolChain.cmake new file mode 100644 index 0000000..53c6490 --- /dev/null +++ b/Modules/Platform/CrayPrgEnv-ToolChain.cmake @@ -0,0 +1,127 @@ +# Guard against multiple inclusions +if(__CrayPrgEnv) + return() +endif() +set(__CrayPrgEnv 1) +if(DEFINED ENV{CRAYPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION}") + set(__verbose_flag "-craype-verbose") +elseif(DEFINED ENV{ASYNCPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{ASYNCPE_VERSION}") + set(__verbose_flag "-v") +else() + message(STATUS "Cray Programming Environment") +endif() + +if(NOT __CrayLinuxEnvironment) + message(FATAL_ERROR "The CrayPrgEnv tolchain file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") +endif() + +# Flags for the Cray wrappers +foreach(__lang C CXX Fortran) + set(CMAKE_STATIC_LIBRARY_LINK_${__lang}_FLAGS "-static") + set(CMAKE_SHARED_LIBRARY_${__lang}_FLAGS "") + set(CMAKE_SHARED_LIBRARY_CREATE_${__lang}_FLAGS "-shared") + set(CMAKE_SHARED_LIBRARY_LINK_${__lang}_FLAGS "-dynamic") +endforeach() + +# If the link type is not explicitly specified in the environment then +# the Cray wrappers assume that the code will be built staticly +if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR + ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_LINK_SEARCH_START_STATIC TRUE) +endif() + +# Parse the implicit directories used by the wrappers +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty_fname empty.c) + elseif(__lang STREQUAL CXX) + set(__empty_fname empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty_fname empty.f90) + else() + continue() + endif() + + execute_process( + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} + OUTPUT_VARIABLE __cray_output + ERROR_QUIET + ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") + + # Parse include paths + string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_include_flags) + string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_dir_flags) + string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_flags) + string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) + endif() +endforeach() + +# Compute the intersection of several lists +macro(__list_intersection L_OUT L0) + if(ARGC EQUAL 2) + list(APPEND ${L_OUT} ${${L0}}) + else() + foreach(I IN LISTS ${L0}) + set(__is_common 1) + foreach(L IN LISTS ARGN) + list(FIND ${L} "${I}" __idx) + if(__idx EQUAL -1) + set(__is_common 0) + break() + endif() + endforeach() + if(__is_common) + list(APPEND ${L_OUT} "${I}") + endif() + endforeach() + endif() + if(${L_OUT}) + list(REMOVE_DUPLICATES ${L_OUT}) + endif() +endmacro() + +# Determine the common directories between all languages and add them +# as system search paths +set(__cray_include_path_vars) +set(__cray_library_path_vars) +foreach(__lang IN LISTS __langs) + list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) +endforeach() +if(__cray_include_path_vars) + __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) +endif() +if(__cray_library_path_vars) + __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) +endif() ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 14:39:59 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 14:39:59 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1356-gc3181e5 Message-ID: <20151113193959.33511C1BA8@public.kitware.com> 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 c3181e513d998593ac6c3d8a0baba5257302e32f (commit) via de6472a9aeb36c16414062f858fd34bb01efd652 (commit) via 66d8ec9dd1c936873ba89ac40cabe1b75b7230ed (commit) from 3be554f2cbc3cfa45458df87d0f25e50927c6006 (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=c3181e513d998593ac6c3d8a0baba5257302e32f commit c3181e513d998593ac6c3d8a0baba5257302e32f Merge: 3be554f de6472a Author: Chuck Atkins AuthorDate: Fri Nov 13 14:39:58 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 14:39:58 2015 -0500 Merge topic 'add-cray-linux-platform' into next de6472a9 Cray: Added documentation for cross compiling on a Cray 66d8ec9d Cray: Give better error messages https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=de6472a9aeb36c16414062f858fd34bb01efd652 commit de6472a9aeb36c16414062f858fd34bb01efd652 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:37:56 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:37:56 2015 -0500 Cray: Added documentation for cross compiling on a Cray diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 492fcac..3d1973e 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -151,6 +151,34 @@ target system prefixes, whereas executables which must be run as part of the bui should be found only on the host and not on the target. This is the purpose of the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables. +Cross Compiling for the Cray Linux Environment +---------------------------------------------- + +Cross compiling for compute nodes in the Cray Linux Environment can be done +without needing a seperate toolchain file. Specifying +``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake comamnd line will +ensure that the appropriate build settings and search paths are configured. +The platform will pull its configuration from the current environment +variables and will configure a project to use the compiler wrappers from the +Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded. + +The default configuration of the Cray Programming Environment is to only +support static libraries. This can be overridden and shared libraries +enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to +``dynamic``. + +Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will +run the configure step in host mode assuming a standard Linux environment. +If not overriden, the ``PrgEnv-*`` compiler wrappers will end up getting used, +which if targeting the either the login node or compute node, is likely not the +desired behavior. The exception to this would be if you are building directly +on a NID instead of cross-compiling from a login node. If trying to build +software for a login node, you will need to either first unload the +currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the +system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead +targeting a compute node is desired, just specify the +:variable:`CMAKE_SYSTEM_NAME` as mentioned above. + Cross Compiling using Clang --------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=66d8ec9dd1c936873ba89ac40cabe1b75b7230ed commit 66d8ec9dd1c936873ba89ac40cabe1b75b7230ed Author: Chuck Atkins AuthorDate: Fri Nov 13 14:09:01 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:09:01 2015 -0500 Cray: Give better error messages diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake index 404dad9..406b03a 100644 --- a/Modules/Platform/CrayLinuxEnvironment.cmake +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -15,11 +15,12 @@ if(DEFINED ENV{CRAYOS_VERSION}) elseif(DEFINED ENV{XTOS_VERSION}) set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}") else() - message(FATAL_ERROR "Neither the CRAYXC or CRAYXT CMake variables are defined. Thjis platform file should not be used directly but instead only from the CrayPrgEnv toolchain file") + message(FATAL_ERROR "Neither the CRAYOS_VERSION or XTOS_VERSION environment variables are defined. This platform file should be used inside the Cray Linux Environment for targeting compute nodes (NIDs)") endif() message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}") # All cray systems are x86 CPUs and have been for quite some time +# Note: this may need to change in the future with 64-bit ARM set(CMAKE_SYSTEM_PROCESSOR "x86_64") set(CMAKE_SHARED_LIBRARY_PREFIX "lib") @@ -42,7 +43,7 @@ get_filename_component(__cmake_install_dir "${CMAKE_ROOT}" PATH) get_filename_component(__cmake_install_dir "${__cmake_install_dir}" PATH) -# Note: Some cray's have the SYSROOT_DIR variable defined, pointing to a copy +# Note: Some Cray's have the SYSROOT_DIR variable defined, pointing to a copy # of the NIDs userland. If so, then we'll use it. Otherwise, just assume # the userland from the login node is ok @@ -106,5 +107,5 @@ if(_CRAYPE_ROOT AND ((CMAKE_C_COMPILER MATCHES "${_CRAYPE_ROOT}") OR (CMAKE_CXX_COMPILER MATCHES "${_CRAYPE_ROOT}") OR (CMAKE_Fortran_COMPILER MATCHES "${_CRAYPE_ROOT}"))) - include(Platform/CrayPrgEnv-ToolChain) + include(Platform/CrayPrgEnv) endif() diff --git a/Modules/Platform/CrayPrgEnv-ToolChain.cmake b/Modules/Platform/CrayPrgEnv.cmake similarity index 100% rename from Modules/Platform/CrayPrgEnv-ToolChain.cmake rename to Modules/Platform/CrayPrgEnv.cmake ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-toolchains.7.rst | 28 ++++++++++++++++++++ Modules/Platform/CrayLinuxEnvironment.cmake | 7 ++--- ...CrayPrgEnv-ToolChain.cmake => CrayPrgEnv.cmake} | 0 3 files changed, 32 insertions(+), 3 deletions(-) rename Modules/Platform/{CrayPrgEnv-ToolChain.cmake => CrayPrgEnv.cmake} (100%) hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 14:40:41 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 14:40:41 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1359-gcf94531 Message-ID: <20151113194041.B67CAC3CC0@public.kitware.com> 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 cf9453139841a31e07f5d5bbda87a08dc05e1a59 (commit) via da0ddf16cae7757380c898656f71936a67a4c2f1 (commit) via ae0f52aa32424dfa446d9449cd30a570c0ca4bec (commit) from c3181e513d998593ac6c3d8a0baba5257302e32f (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=cf9453139841a31e07f5d5bbda87a08dc05e1a59 commit cf9453139841a31e07f5d5bbda87a08dc05e1a59 Merge: c3181e5 da0ddf1 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:40:40 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 14:40:40 2015 -0500 Merge topic 'add-cray-linux-platform' into next da0ddf16 Cray: Added documentation for cross compiling on a Cray ae0f52aa Cray: New platform file for Cray Linux Environment and PrgEnv https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=da0ddf16cae7757380c898656f71936a67a4c2f1 commit da0ddf16cae7757380c898656f71936a67a4c2f1 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:37:56 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:40:28 2015 -0500 Cray: Added documentation for cross compiling on a Cray diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 492fcac..3d1973e 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -151,6 +151,34 @@ target system prefixes, whereas executables which must be run as part of the bui should be found only on the host and not on the target. This is the purpose of the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables. +Cross Compiling for the Cray Linux Environment +---------------------------------------------- + +Cross compiling for compute nodes in the Cray Linux Environment can be done +without needing a seperate toolchain file. Specifying +``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake comamnd line will +ensure that the appropriate build settings and search paths are configured. +The platform will pull its configuration from the current environment +variables and will configure a project to use the compiler wrappers from the +Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded. + +The default configuration of the Cray Programming Environment is to only +support static libraries. This can be overridden and shared libraries +enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to +``dynamic``. + +Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will +run the configure step in host mode assuming a standard Linux environment. +If not overriden, the ``PrgEnv-*`` compiler wrappers will end up getting used, +which if targeting the either the login node or compute node, is likely not the +desired behavior. The exception to this would be if you are building directly +on a NID instead of cross-compiling from a login node. If trying to build +software for a login node, you will need to either first unload the +currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the +system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead +targeting a compute node is desired, just specify the +:variable:`CMAKE_SYSTEM_NAME` as mentioned above. + Cross Compiling using Clang --------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ae0f52aa32424dfa446d9449cd30a570c0ca4bec commit ae0f52aa32424dfa446d9449cd30a570c0ca4bec Author: Chuck Atkins AuthorDate: Fri Nov 13 10:13:24 2015 -0600 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:40:17 2015 -0500 Cray: New platform file for Cray Linux Environment and PrgEnv diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake new file mode 100644 index 0000000..406b03a --- /dev/null +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -0,0 +1,111 @@ +# Compute Node Linux doesn't quite work the same as native Linux so all of this +# needs to be custom. We use the variables defined through Cray's environment +# modules to set up the right paths for things. + +# Guard against multiple inclusions +if(__CrayLinuxEnvironment) + return() +endif() +set(__CrayLinuxEnvironment 1) + +set(UNIX 1) + +if(DEFINED ENV{CRAYOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{CRAYOS_VERSION}") +elseif(DEFINED ENV{XTOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}") +else() + message(FATAL_ERROR "Neither the CRAYOS_VERSION or XTOS_VERSION environment variables are defined. This platform file should be used inside the Cray Linux Environment for targeting compute nodes (NIDs)") +endif() +message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}") + +# All cray systems are x86 CPUs and have been for quite some time +# Note: this may need to change in the future with 64-bit ARM +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +set(CMAKE_DL_LIBS dl) + +# Note: Much of this is pulled from UnixPaths.cmake but adjusted to the Cray +# environment accordingly + +# Get the install directory of the running cmake to the search directories +# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up +get_filename_component(__cmake_install_dir "${CMAKE_ROOT}" PATH) +get_filename_component(__cmake_install_dir "${__cmake_install_dir}" PATH) + + +# Note: Some Cray's have the SYSROOT_DIR variable defined, pointing to a copy +# of the NIDs userland. If so, then we'll use it. Otherwise, just assume +# the userland from the login node is ok + +# List common installation prefixes. These will be used for all +# search types. +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + $ENV{SYSROOT_DIR}/usr/local $ENV{SYSROOT_DIR}/usr $ENV{SYSROOT_DIR}/ + + # CMake install location + "${__cmake_install_dir}" + ) +if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + ) + if(CMAKE_STAGING_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # User-supplied staging prefix. + "${CMAKE_STAGING_PREFIX}" + ) + endif() +endif() + +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH + $ENV{SYSROOT_DIR}/usr/include + $ENV{SYSROOT_DIR}/usr/include/X11 +) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) + +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) + +# Enable use of lib64 search path variants by default. +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) + +# Check to see if we're using the cray compiler wrapers and load accordingly if we are +if(DEFINED ENV{CRAYPE_DIR}) + set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") +elseif(DEFINED ENV{ASYNCPE_DIR}) + set(_CRAYPE_ROOT "$ENV{ASYNCPE_DIR}") +endif() +if(_CRAYPE_ROOT AND + ((CMAKE_C_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_CXX_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_Fortran_COMPILER MATCHES "${_CRAYPE_ROOT}"))) + include(Platform/CrayPrgEnv) +endif() diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake new file mode 100644 index 0000000..53c6490 --- /dev/null +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -0,0 +1,127 @@ +# Guard against multiple inclusions +if(__CrayPrgEnv) + return() +endif() +set(__CrayPrgEnv 1) +if(DEFINED ENV{CRAYPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION}") + set(__verbose_flag "-craype-verbose") +elseif(DEFINED ENV{ASYNCPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{ASYNCPE_VERSION}") + set(__verbose_flag "-v") +else() + message(STATUS "Cray Programming Environment") +endif() + +if(NOT __CrayLinuxEnvironment) + message(FATAL_ERROR "The CrayPrgEnv tolchain file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") +endif() + +# Flags for the Cray wrappers +foreach(__lang C CXX Fortran) + set(CMAKE_STATIC_LIBRARY_LINK_${__lang}_FLAGS "-static") + set(CMAKE_SHARED_LIBRARY_${__lang}_FLAGS "") + set(CMAKE_SHARED_LIBRARY_CREATE_${__lang}_FLAGS "-shared") + set(CMAKE_SHARED_LIBRARY_LINK_${__lang}_FLAGS "-dynamic") +endforeach() + +# If the link type is not explicitly specified in the environment then +# the Cray wrappers assume that the code will be built staticly +if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR + ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_LINK_SEARCH_START_STATIC TRUE) +endif() + +# Parse the implicit directories used by the wrappers +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty_fname empty.c) + elseif(__lang STREQUAL CXX) + set(__empty_fname empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty_fname empty.f90) + else() + continue() + endif() + + execute_process( + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} + OUTPUT_VARIABLE __cray_output + ERROR_QUIET + ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") + + # Parse include paths + string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_include_flags) + string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_dir_flags) + string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_flags) + string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) + endif() +endforeach() + +# Compute the intersection of several lists +macro(__list_intersection L_OUT L0) + if(ARGC EQUAL 2) + list(APPEND ${L_OUT} ${${L0}}) + else() + foreach(I IN LISTS ${L0}) + set(__is_common 1) + foreach(L IN LISTS ARGN) + list(FIND ${L} "${I}" __idx) + if(__idx EQUAL -1) + set(__is_common 0) + break() + endif() + endforeach() + if(__is_common) + list(APPEND ${L_OUT} "${I}") + endif() + endforeach() + endif() + if(${L_OUT}) + list(REMOVE_DUPLICATES ${L_OUT}) + endif() +endmacro() + +# Determine the common directories between all languages and add them +# as system search paths +set(__cray_include_path_vars) +set(__cray_library_path_vars) +foreach(__lang IN LISTS __langs) + list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) +endforeach() +if(__cray_include_path_vars) + __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) +endif() +if(__cray_library_path_vars) + __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) +endif() ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 14:49:42 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 14:49:42 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1361-g1c2a640 Message-ID: <20151113194942.3D39EC4554@public.kitware.com> 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 1c2a6406a4311c59afeb3993982e74c7c8e38bdd (commit) via 137ba24f5d2fafefe812b592df2a96a5720c8304 (commit) from cf9453139841a31e07f5d5bbda87a08dc05e1a59 (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=1c2a6406a4311c59afeb3993982e74c7c8e38bdd commit 1c2a6406a4311c59afeb3993982e74c7c8e38bdd Merge: cf94531 137ba24 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:49:41 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 14:49:41 2015 -0500 Merge topic 'add-cray-linux-platform' into next 137ba24f Cray: Fix typo https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=137ba24f5d2fafefe812b592df2a96a5720c8304 commit 137ba24f5d2fafefe812b592df2a96a5720c8304 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:49:17 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:49:17 2015 -0500 Cray: Fix typo diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake index 53c6490..a78846d 100644 --- a/Modules/Platform/CrayPrgEnv.cmake +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -14,7 +14,7 @@ else() endif() if(NOT __CrayLinuxEnvironment) - message(FATAL_ERROR "The CrayPrgEnv tolchain file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") + message(FATAL_ERROR "The CrayPrgEnv platform file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") endif() # Flags for the Cray wrappers ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayPrgEnv.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 14:50:11 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 14:50:11 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1364-gf53fe86 Message-ID: <20151113195011.7BA76C456C@public.kitware.com> 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 f53fe86cef5a6ff342d8ac5b931e1998e5b7744c (commit) via d0c697e47f54fcb626f3ea9385c7664deb78c637 (commit) via 030ed07d4c22542422af9ae6e226ebec6300d36f (commit) from 1c2a6406a4311c59afeb3993982e74c7c8e38bdd (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=f53fe86cef5a6ff342d8ac5b931e1998e5b7744c commit f53fe86cef5a6ff342d8ac5b931e1998e5b7744c Merge: 1c2a640 d0c697e Author: Chuck Atkins AuthorDate: Fri Nov 13 14:50:10 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 14:50:10 2015 -0500 Merge topic 'add-cray-linux-platform' into next d0c697e4 Cray: Added documentation for cross compiling on a Cray 030ed07d Cray: New platform file for Cray Linux Environment and PrgEnv https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0c697e47f54fcb626f3ea9385c7664deb78c637 commit d0c697e47f54fcb626f3ea9385c7664deb78c637 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:37:56 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:50:00 2015 -0500 Cray: Added documentation for cross compiling on a Cray diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 492fcac..3d1973e 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -151,6 +151,34 @@ target system prefixes, whereas executables which must be run as part of the bui should be found only on the host and not on the target. This is the purpose of the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables. +Cross Compiling for the Cray Linux Environment +---------------------------------------------- + +Cross compiling for compute nodes in the Cray Linux Environment can be done +without needing a seperate toolchain file. Specifying +``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake comamnd line will +ensure that the appropriate build settings and search paths are configured. +The platform will pull its configuration from the current environment +variables and will configure a project to use the compiler wrappers from the +Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded. + +The default configuration of the Cray Programming Environment is to only +support static libraries. This can be overridden and shared libraries +enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to +``dynamic``. + +Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will +run the configure step in host mode assuming a standard Linux environment. +If not overriden, the ``PrgEnv-*`` compiler wrappers will end up getting used, +which if targeting the either the login node or compute node, is likely not the +desired behavior. The exception to this would be if you are building directly +on a NID instead of cross-compiling from a login node. If trying to build +software for a login node, you will need to either first unload the +currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the +system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead +targeting a compute node is desired, just specify the +:variable:`CMAKE_SYSTEM_NAME` as mentioned above. + Cross Compiling using Clang --------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=030ed07d4c22542422af9ae6e226ebec6300d36f commit 030ed07d4c22542422af9ae6e226ebec6300d36f Author: Chuck Atkins AuthorDate: Fri Nov 13 10:13:24 2015 -0600 Commit: Chuck Atkins CommitDate: Fri Nov 13 14:49:53 2015 -0500 Cray: New platform file for Cray Linux Environment and PrgEnv diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake new file mode 100644 index 0000000..406b03a --- /dev/null +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -0,0 +1,111 @@ +# Compute Node Linux doesn't quite work the same as native Linux so all of this +# needs to be custom. We use the variables defined through Cray's environment +# modules to set up the right paths for things. + +# Guard against multiple inclusions +if(__CrayLinuxEnvironment) + return() +endif() +set(__CrayLinuxEnvironment 1) + +set(UNIX 1) + +if(DEFINED ENV{CRAYOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{CRAYOS_VERSION}") +elseif(DEFINED ENV{XTOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}") +else() + message(FATAL_ERROR "Neither the CRAYOS_VERSION or XTOS_VERSION environment variables are defined. This platform file should be used inside the Cray Linux Environment for targeting compute nodes (NIDs)") +endif() +message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}") + +# All cray systems are x86 CPUs and have been for quite some time +# Note: this may need to change in the future with 64-bit ARM +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +set(CMAKE_DL_LIBS dl) + +# Note: Much of this is pulled from UnixPaths.cmake but adjusted to the Cray +# environment accordingly + +# Get the install directory of the running cmake to the search directories +# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up +get_filename_component(__cmake_install_dir "${CMAKE_ROOT}" PATH) +get_filename_component(__cmake_install_dir "${__cmake_install_dir}" PATH) + + +# Note: Some Cray's have the SYSROOT_DIR variable defined, pointing to a copy +# of the NIDs userland. If so, then we'll use it. Otherwise, just assume +# the userland from the login node is ok + +# List common installation prefixes. These will be used for all +# search types. +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + $ENV{SYSROOT_DIR}/usr/local $ENV{SYSROOT_DIR}/usr $ENV{SYSROOT_DIR}/ + + # CMake install location + "${__cmake_install_dir}" + ) +if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + ) + if(CMAKE_STAGING_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # User-supplied staging prefix. + "${CMAKE_STAGING_PREFIX}" + ) + endif() +endif() + +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH + $ENV{SYSROOT_DIR}/usr/include + $ENV{SYSROOT_DIR}/usr/include/X11 +) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) + +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) + +# Enable use of lib64 search path variants by default. +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) + +# Check to see if we're using the cray compiler wrapers and load accordingly if we are +if(DEFINED ENV{CRAYPE_DIR}) + set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") +elseif(DEFINED ENV{ASYNCPE_DIR}) + set(_CRAYPE_ROOT "$ENV{ASYNCPE_DIR}") +endif() +if(_CRAYPE_ROOT AND + ((CMAKE_C_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_CXX_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_Fortran_COMPILER MATCHES "${_CRAYPE_ROOT}"))) + include(Platform/CrayPrgEnv) +endif() diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake new file mode 100644 index 0000000..a78846d --- /dev/null +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -0,0 +1,127 @@ +# Guard against multiple inclusions +if(__CrayPrgEnv) + return() +endif() +set(__CrayPrgEnv 1) +if(DEFINED ENV{CRAYPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION}") + set(__verbose_flag "-craype-verbose") +elseif(DEFINED ENV{ASYNCPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{ASYNCPE_VERSION}") + set(__verbose_flag "-v") +else() + message(STATUS "Cray Programming Environment") +endif() + +if(NOT __CrayLinuxEnvironment) + message(FATAL_ERROR "The CrayPrgEnv platform file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") +endif() + +# Flags for the Cray wrappers +foreach(__lang C CXX Fortran) + set(CMAKE_STATIC_LIBRARY_LINK_${__lang}_FLAGS "-static") + set(CMAKE_SHARED_LIBRARY_${__lang}_FLAGS "") + set(CMAKE_SHARED_LIBRARY_CREATE_${__lang}_FLAGS "-shared") + set(CMAKE_SHARED_LIBRARY_LINK_${__lang}_FLAGS "-dynamic") +endforeach() + +# If the link type is not explicitly specified in the environment then +# the Cray wrappers assume that the code will be built staticly +if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR + ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_LINK_SEARCH_START_STATIC TRUE) +endif() + +# Parse the implicit directories used by the wrappers +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty_fname empty.c) + elseif(__lang STREQUAL CXX) + set(__empty_fname empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty_fname empty.f90) + else() + continue() + endif() + + execute_process( + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} + OUTPUT_VARIABLE __cray_output + ERROR_QUIET + ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") + + # Parse include paths + string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_include_flags) + string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_dir_flags) + string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_flags) + string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) + endif() +endforeach() + +# Compute the intersection of several lists +macro(__list_intersection L_OUT L0) + if(ARGC EQUAL 2) + list(APPEND ${L_OUT} ${${L0}}) + else() + foreach(I IN LISTS ${L0}) + set(__is_common 1) + foreach(L IN LISTS ARGN) + list(FIND ${L} "${I}" __idx) + if(__idx EQUAL -1) + set(__is_common 0) + break() + endif() + endforeach() + if(__is_common) + list(APPEND ${L_OUT} "${I}") + endif() + endforeach() + endif() + if(${L_OUT}) + list(REMOVE_DUPLICATES ${L_OUT}) + endif() +endmacro() + +# Determine the common directories between all languages and add them +# as system search paths +set(__cray_include_path_vars) +set(__cray_library_path_vars) +foreach(__lang IN LISTS __langs) + list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) +endforeach() +if(__cray_include_path_vars) + __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) +endif() +if(__cray_library_path_vars) + __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) +endif() ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 15:22:26 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 15:22:26 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1366-g9c71775 Message-ID: <20151113202226.A4828C442C@public.kitware.com> 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 9c717752e61305cfd522380ba7e9bcc40a95cdb9 (commit) via 92b23ad8c22e384736b165214f1dddbcab5040c1 (commit) from f53fe86cef5a6ff342d8ac5b931e1998e5b7744c (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=9c717752e61305cfd522380ba7e9bcc40a95cdb9 commit 9c717752e61305cfd522380ba7e9bcc40a95cdb9 Merge: f53fe86 92b23ad Author: Chuck Atkins AuthorDate: Fri Nov 13 15:22:25 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 15:22:25 2015 -0500 Merge topic 'add-cray-linux-platform' into next 92b23ad8 Cray: Added release notes https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92b23ad8c22e384736b165214f1dddbcab5040c1 commit 92b23ad8c22e384736b165214f1dddbcab5040c1 Author: Chuck Atkins AuthorDate: Fri Nov 13 15:21:50 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 15:21:50 2015 -0500 Cray: Added release notes diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 3d1973e..7b294a8 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -151,12 +151,14 @@ target system prefixes, whereas executables which must be run as part of the bui should be found only on the host and not on the target. This is the purpose of the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables. +.. _`Cray Cross-Compile`: + Cross Compiling for the Cray Linux Environment ---------------------------------------------- Cross compiling for compute nodes in the Cray Linux Environment can be done -without needing a seperate toolchain file. Specifying -``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake comamnd line will +without needing a separate toolchain file. Specifying +``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake command line will ensure that the appropriate build settings and search paths are configured. The platform will pull its configuration from the current environment variables and will configure a project to use the compiler wrappers from the @@ -169,7 +171,7 @@ enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will run the configure step in host mode assuming a standard Linux environment. -If not overriden, the ``PrgEnv-*`` compiler wrappers will end up getting used, +If not overridden, the ``PrgEnv-*`` compiler wrappers will end up getting used, which if targeting the either the login node or compute node, is likely not the desired behavior. The exception to this would be if you are building directly on a NID instead of cross-compiling from a login node. If trying to build diff --git a/Help/release/dev/add-cray-linux-platform.rst b/Help/release/dev/add-cray-linux-platform.rst new file mode 100644 index 0000000..7000382 --- /dev/null +++ b/Help/release/dev/add-cray-linux-platform.rst @@ -0,0 +1,7 @@ +add-cray-linux-platform +----------------------- + +* A new platform file for cross-compiling in the Cray Linux Environment to + target compute nodes was added. See + :ref:`Cross Compiling for the Cray Linux Environment ` + for usage details. ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-toolchains.7.rst | 8 +++++--- Help/release/dev/add-cray-linux-platform.rst | 7 +++++++ 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 Help/release/dev/add-cray-linux-platform.rst hooks/post-receive -- CMake From chuck.atkins at kitware.com Fri Nov 13 15:23:01 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Fri, 13 Nov 2015 15:23:01 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1368-g73a3b5a Message-ID: <20151113202301.28AF5C4471@public.kitware.com> 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 73a3b5a9c0288b5535e7d0b677b2a576dc2249e6 (commit) via 05d5d46051003f3b1d8fc89e21519ecbc7ca7ab2 (commit) from 9c717752e61305cfd522380ba7e9bcc40a95cdb9 (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=73a3b5a9c0288b5535e7d0b677b2a576dc2249e6 commit 73a3b5a9c0288b5535e7d0b677b2a576dc2249e6 Merge: 9c71775 05d5d46 Author: Chuck Atkins AuthorDate: Fri Nov 13 15:23:00 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 13 15:23:00 2015 -0500 Merge topic 'add-cray-linux-platform' into next 05d5d460 Cray: Added documentation for cross compiling on a Cray https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=05d5d46051003f3b1d8fc89e21519ecbc7ca7ab2 commit 05d5d46051003f3b1d8fc89e21519ecbc7ca7ab2 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:37:56 2015 -0500 Commit: Chuck Atkins CommitDate: Fri Nov 13 15:22:45 2015 -0500 Cray: Added documentation for cross compiling on a Cray diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 492fcac..7b294a8 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -151,6 +151,36 @@ target system prefixes, whereas executables which must be run as part of the bui should be found only on the host and not on the target. This is the purpose of the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables. +.. _`Cray Cross-Compile`: + +Cross Compiling for the Cray Linux Environment +---------------------------------------------- + +Cross compiling for compute nodes in the Cray Linux Environment can be done +without needing a separate toolchain file. Specifying +``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake command line will +ensure that the appropriate build settings and search paths are configured. +The platform will pull its configuration from the current environment +variables and will configure a project to use the compiler wrappers from the +Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded. + +The default configuration of the Cray Programming Environment is to only +support static libraries. This can be overridden and shared libraries +enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to +``dynamic``. + +Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will +run the configure step in host mode assuming a standard Linux environment. +If not overridden, the ``PrgEnv-*`` compiler wrappers will end up getting used, +which if targeting the either the login node or compute node, is likely not the +desired behavior. The exception to this would be if you are building directly +on a NID instead of cross-compiling from a login node. If trying to build +software for a login node, you will need to either first unload the +currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the +system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead +targeting a compute node is desired, just specify the +:variable:`CMAKE_SYSTEM_NAME` as mentioned above. + Cross Compiling using Clang --------------------------- diff --git a/Help/release/dev/add-cray-linux-platform.rst b/Help/release/dev/add-cray-linux-platform.rst new file mode 100644 index 0000000..7000382 --- /dev/null +++ b/Help/release/dev/add-cray-linux-platform.rst @@ -0,0 +1,7 @@ +add-cray-linux-platform +----------------------- + +* A new platform file for cross-compiling in the Cray Linux Environment to + target compute nodes was added. See + :ref:`Cross Compiling for the Cray Linux Environment ` + for usage details. ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Sat Nov 14 00:01:13 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 14 Nov 2015 00:01:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-521-g9b41415 Message-ID: <20151114050113.E40CDC4B88@public.kitware.com> 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, master has been updated via 9b41415bcdda480b2984c4a21b393738b4ccfcfc (commit) from 9feb24e514f3c0f6b9a9705e17cf1917152df977 (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=9b41415bcdda480b2984c4a21b393738b4ccfcfc commit 9b41415bcdda480b2984c4a21b393738b4ccfcfc Author: Kitware Robot AuthorDate: Sat Nov 14 00:01:09 2015 -0500 Commit: Kitware Robot CommitDate: Sat Nov 14 00:01:09 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index c38c61e..5ba8720 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151113) +set(CMake_VERSION_PATCH 20151114) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Sat Nov 14 11:34:09 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Sat, 14 Nov 2015 11:34:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1370-g9adc7f6 Message-ID: <20151114163409.0E55DC456C@public.kitware.com> 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 9adc7f65f8ed81258090695833177fd4cbf811c2 (commit) via 6458382373c381fa7a1c99a052b7c7c3e929dd8d (commit) from 73a3b5a9c0288b5535e7d0b677b2a576dc2249e6 (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=9adc7f65f8ed81258090695833177fd4cbf811c2 commit 9adc7f65f8ed81258090695833177fd4cbf811c2 Merge: 73a3b5a 6458382 Author: Chuck Atkins AuthorDate: Sat Nov 14 11:34:08 2015 -0500 Commit: CMake Topic Stage CommitDate: Sat Nov 14 11:34:08 2015 -0500 Merge topic 'add-cray-linux-platform' into next 64583823 Cray: fix typo https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6458382373c381fa7a1c99a052b7c7c3e929dd8d commit 6458382373c381fa7a1c99a052b7c7c3e929dd8d Author: Chuck Atkins AuthorDate: Sat Nov 14 11:33:24 2015 -0500 Commit: Chuck Atkins CommitDate: Sat Nov 14 11:33:24 2015 -0500 Cray: fix typo diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake index 406b03a..19a0f71 100644 --- a/Modules/Platform/CrayLinuxEnvironment.cmake +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -97,7 +97,8 @@ list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES # Enable use of lib64 search path variants by default. set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) -# Check to see if we're using the cray compiler wrapers and load accordingly if we are +# Check to see if we're using the cray compiler wrappers and load accordingly +# if we are if(DEFINED ENV{CRAYPE_DIR}) set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") elseif(DEFINED ENV{ASYNCPE_DIR}) ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayLinuxEnvironment.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Sat Nov 14 11:36:29 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Sat, 14 Nov 2015 11:36:29 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1373-geb7ca13 Message-ID: <20151114163629.365CCC45A6@public.kitware.com> 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 eb7ca13c574c9fbf5863adf3904a9f207e4b4d20 (commit) via 31d52139ca30f5c0fb814765da542d44531ca146 (commit) via c54a621b55dd09f212037cacb35b98b5129afd40 (commit) from 9adc7f65f8ed81258090695833177fd4cbf811c2 (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=eb7ca13c574c9fbf5863adf3904a9f207e4b4d20 commit eb7ca13c574c9fbf5863adf3904a9f207e4b4d20 Merge: 9adc7f6 31d5213 Author: Chuck Atkins AuthorDate: Sat Nov 14 11:36:28 2015 -0500 Commit: CMake Topic Stage CommitDate: Sat Nov 14 11:36:28 2015 -0500 Merge topic 'add-cray-linux-platform' into next 31d52139 Cray: Added documentation for cross compiling on a Cray c54a621b Cray: New platform file for Cray Linux Environment and PrgEnv https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=31d52139ca30f5c0fb814765da542d44531ca146 commit 31d52139ca30f5c0fb814765da542d44531ca146 Author: Chuck Atkins AuthorDate: Fri Nov 13 14:37:56 2015 -0500 Commit: Chuck Atkins CommitDate: Sat Nov 14 11:35:14 2015 -0500 Cray: Added documentation for cross compiling on a Cray diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 492fcac..7b294a8 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -151,6 +151,36 @@ target system prefixes, whereas executables which must be run as part of the bui should be found only on the host and not on the target. This is the purpose of the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables. +.. _`Cray Cross-Compile`: + +Cross Compiling for the Cray Linux Environment +---------------------------------------------- + +Cross compiling for compute nodes in the Cray Linux Environment can be done +without needing a separate toolchain file. Specifying +``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake command line will +ensure that the appropriate build settings and search paths are configured. +The platform will pull its configuration from the current environment +variables and will configure a project to use the compiler wrappers from the +Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded. + +The default configuration of the Cray Programming Environment is to only +support static libraries. This can be overridden and shared libraries +enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to +``dynamic``. + +Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will +run the configure step in host mode assuming a standard Linux environment. +If not overridden, the ``PrgEnv-*`` compiler wrappers will end up getting used, +which if targeting the either the login node or compute node, is likely not the +desired behavior. The exception to this would be if you are building directly +on a NID instead of cross-compiling from a login node. If trying to build +software for a login node, you will need to either first unload the +currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the +system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead +targeting a compute node is desired, just specify the +:variable:`CMAKE_SYSTEM_NAME` as mentioned above. + Cross Compiling using Clang --------------------------- diff --git a/Help/release/dev/add-cray-linux-platform.rst b/Help/release/dev/add-cray-linux-platform.rst new file mode 100644 index 0000000..7000382 --- /dev/null +++ b/Help/release/dev/add-cray-linux-platform.rst @@ -0,0 +1,7 @@ +add-cray-linux-platform +----------------------- + +* A new platform file for cross-compiling in the Cray Linux Environment to + target compute nodes was added. See + :ref:`Cross Compiling for the Cray Linux Environment ` + for usage details. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c54a621b55dd09f212037cacb35b98b5129afd40 commit c54a621b55dd09f212037cacb35b98b5129afd40 Author: Chuck Atkins AuthorDate: Fri Nov 13 10:13:24 2015 -0600 Commit: Chuck Atkins CommitDate: Sat Nov 14 11:34:32 2015 -0500 Cray: New platform file for Cray Linux Environment and PrgEnv diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake new file mode 100644 index 0000000..19a0f71 --- /dev/null +++ b/Modules/Platform/CrayLinuxEnvironment.cmake @@ -0,0 +1,112 @@ +# Compute Node Linux doesn't quite work the same as native Linux so all of this +# needs to be custom. We use the variables defined through Cray's environment +# modules to set up the right paths for things. + +# Guard against multiple inclusions +if(__CrayLinuxEnvironment) + return() +endif() +set(__CrayLinuxEnvironment 1) + +set(UNIX 1) + +if(DEFINED ENV{CRAYOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{CRAYOS_VERSION}") +elseif(DEFINED ENV{XTOS_VERSION}) + set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}") +else() + message(FATAL_ERROR "Neither the CRAYOS_VERSION or XTOS_VERSION environment variables are defined. This platform file should be used inside the Cray Linux Environment for targeting compute nodes (NIDs)") +endif() +message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}") + +# All cray systems are x86 CPUs and have been for quite some time +# Note: this may need to change in the future with 64-bit ARM +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + +set(CMAKE_DL_LIBS dl) + +# Note: Much of this is pulled from UnixPaths.cmake but adjusted to the Cray +# environment accordingly + +# Get the install directory of the running cmake to the search directories +# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up +get_filename_component(__cmake_install_dir "${CMAKE_ROOT}" PATH) +get_filename_component(__cmake_install_dir "${__cmake_install_dir}" PATH) + + +# Note: Some Cray's have the SYSROOT_DIR variable defined, pointing to a copy +# of the NIDs userland. If so, then we'll use it. Otherwise, just assume +# the userland from the login node is ok + +# List common installation prefixes. These will be used for all +# search types. +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Standard + $ENV{SYSROOT_DIR}/usr/local $ENV{SYSROOT_DIR}/usr $ENV{SYSROOT_DIR}/ + + # CMake install location + "${__cmake_install_dir}" + ) +if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" + ) + if(CMAKE_STAGING_PREFIX) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # User-supplied staging prefix. + "${CMAKE_STAGING_PREFIX}" + ) + endif() +endif() + +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH + $ENV{SYSROOT_DIR}/usr/include + $ENV{SYSROOT_DIR}/usr/include/X11 +) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) + +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/local/lib64 + $ENV{SYSROOT_DIR}/usr/lib64 + $ENV{SYSROOT_DIR}/lib64 +) +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) +list(APPEND CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + $ENV{SYSROOT_DIR}/usr/include +) + +# Enable use of lib64 search path variants by default. +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) + +# Check to see if we're using the cray compiler wrappers and load accordingly +# if we are +if(DEFINED ENV{CRAYPE_DIR}) + set(_CRAYPE_ROOT "$ENV{CRAYPE_DIR}") +elseif(DEFINED ENV{ASYNCPE_DIR}) + set(_CRAYPE_ROOT "$ENV{ASYNCPE_DIR}") +endif() +if(_CRAYPE_ROOT AND + ((CMAKE_C_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_CXX_COMPILER MATCHES "${_CRAYPE_ROOT}") OR + (CMAKE_Fortran_COMPILER MATCHES "${_CRAYPE_ROOT}"))) + include(Platform/CrayPrgEnv) +endif() diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake new file mode 100644 index 0000000..a78846d --- /dev/null +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -0,0 +1,127 @@ +# Guard against multiple inclusions +if(__CrayPrgEnv) + return() +endif() +set(__CrayPrgEnv 1) +if(DEFINED ENV{CRAYPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION}") + set(__verbose_flag "-craype-verbose") +elseif(DEFINED ENV{ASYNCPE_VERSION}) + message(STATUS "Cray Programming Environment $ENV{ASYNCPE_VERSION}") + set(__verbose_flag "-v") +else() + message(STATUS "Cray Programming Environment") +endif() + +if(NOT __CrayLinuxEnvironment) + message(FATAL_ERROR "The CrayPrgEnv platform file must not be used on its own and is intented to be included by the CrayLinuxEnvironment platform file") +endif() + +# Flags for the Cray wrappers +foreach(__lang C CXX Fortran) + set(CMAKE_STATIC_LIBRARY_LINK_${__lang}_FLAGS "-static") + set(CMAKE_SHARED_LIBRARY_${__lang}_FLAGS "") + set(CMAKE_SHARED_LIBRARY_CREATE_${__lang}_FLAGS "-shared") + set(CMAKE_SHARED_LIBRARY_LINK_${__lang}_FLAGS "-dynamic") +endforeach() + +# If the link type is not explicitly specified in the environment then +# the Cray wrappers assume that the code will be built staticly +if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR + ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + set(CMAKE_LINK_SEARCH_START_STATIC TRUE) +endif() + +# Parse the implicit directories used by the wrappers +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty_fname empty.c) + elseif(__lang STREQUAL CXX) + set(__empty_fname empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty_fname empty.f90) + else() + continue() + endif() + + execute_process( + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} + OUTPUT_VARIABLE __cray_output + ERROR_QUIET + ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") + + # Parse include paths + string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_include_flags) + string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_dir_flags) + string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + endif() + + # Parse library paths + string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") + foreach(_flag IN LISTS __cray_library_flags) + string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) + endforeach() + if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) + endif() +endforeach() + +# Compute the intersection of several lists +macro(__list_intersection L_OUT L0) + if(ARGC EQUAL 2) + list(APPEND ${L_OUT} ${${L0}}) + else() + foreach(I IN LISTS ${L0}) + set(__is_common 1) + foreach(L IN LISTS ARGN) + list(FIND ${L} "${I}" __idx) + if(__idx EQUAL -1) + set(__is_common 0) + break() + endif() + endforeach() + if(__is_common) + list(APPEND ${L_OUT} "${I}") + endif() + endforeach() + endif() + if(${L_OUT}) + list(REMOVE_DUPLICATES ${L_OUT}) + endif() +endmacro() + +# Determine the common directories between all languages and add them +# as system search paths +set(__cray_include_path_vars) +set(__cray_library_path_vars) +foreach(__lang IN LISTS __langs) + list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) +endforeach() +if(__cray_include_path_vars) + __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) +endif() +if(__cray_library_path_vars) + __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) +endif() ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Sun Nov 15 00:01:10 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 15 Nov 2015 00:01:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-522-gfaf9844 Message-ID: <20151115050112.3365DC45E5@public.kitware.com> 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, master has been updated via faf98444497201abe8a5b772dec5bda237f4aaf0 (commit) from 9b41415bcdda480b2984c4a21b393738b4ccfcfc (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=faf98444497201abe8a5b772dec5bda237f4aaf0 commit faf98444497201abe8a5b772dec5bda237f4aaf0 Author: Kitware Robot AuthorDate: Sun Nov 15 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Sun Nov 15 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 5ba8720..3aef8ba 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151114) +set(CMake_VERSION_PATCH 20151115) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Nov 16 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 16 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-523-g64b3df7 Message-ID: <20151116050108.AB2A0C488A@public.kitware.com> 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, master has been updated via 64b3df7d1eabbd7c8af5262e68b3b729fc43cb22 (commit) from faf98444497201abe8a5b772dec5bda237f4aaf0 (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=64b3df7d1eabbd7c8af5262e68b3b729fc43cb22 commit 64b3df7d1eabbd7c8af5262e68b3b729fc43cb22 Author: Kitware Robot AuthorDate: Mon Nov 16 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Mon Nov 16 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 3aef8ba..d706ef4 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151115) +set(CMake_VERSION_PATCH 20151116) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 16 09:18:02 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 16 Nov 2015 09:18:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1375-g4a67aba Message-ID: <20151116141802.E2137C44D2@public.kitware.com> 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 4a67aba1018f6f5e203cb02a32040145951077d8 (commit) via 1db32ffe98272ded29827b833f373ffa399429e9 (commit) from eb7ca13c574c9fbf5863adf3904a9f207e4b4d20 (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=4a67aba1018f6f5e203cb02a32040145951077d8 commit 4a67aba1018f6f5e203cb02a32040145951077d8 Merge: eb7ca13 1db32ff Author: Brad King AuthorDate: Mon Nov 16 09:18:02 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 09:18:02 2015 -0500 Merge topic 'jacoco_out_of_source' into next 1db32ffe ctest_coverage: Search for Jacoco files in the binary directory https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1db32ffe98272ded29827b833f373ffa399429e9 commit 1db32ffe98272ded29827b833f373ffa399429e9 Author: Zack Galbreath AuthorDate: Thu Oct 29 16:08:10 2015 -0400 Commit: Brad King CommitDate: Mon Nov 16 09:08:42 2015 -0500 ctest_coverage: Search for Jacoco files in the binary directory Search for Jacoco coverage files in both the source directory and the binary directory. diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 20807c8..d358a93 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -913,16 +913,33 @@ int cmCTestCoverageHandler::HandleJacocoCoverage( { cmParseJacocoCoverage cov = cmParseJacocoCoverage(*cont, this->CTest); - cmsys::Glob g; + + // Search in the source directory. + cmsys::Glob g1; std::vector files; - g.SetRecurse(true); + g1.SetRecurse(true); std::string SourceDir = this->CTest->GetCTestConfiguration("SourceDirectory"); std::string coverageFile = SourceDir+ "/*jacoco.xml"; - g.FindFiles(coverageFile); - files=g.GetFiles(); + g1.FindFiles(coverageFile); + files = g1.GetFiles(); + + // ...and in the binary directory. + cmsys::Glob g2; + std::vector binFiles; + g2.SetRecurse(true); + std::string binaryDir + = this->CTest->GetCTestConfiguration("BuildDirectory"); + std::string binCoverageFile = binaryDir+ "/*jacoco.xml"; + g2.FindFiles(binCoverageFile); + binFiles = g2.GetFiles(); + if (!binFiles.empty()) + { + files.insert(files.end(), binFiles.begin(), binFiles.end()); + } + if (!files.empty()) { cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 16 09:22:43 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 16 Nov 2015 09:22:43 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-525-g96be53a Message-ID: <20151116142243.1552CC465C@public.kitware.com> 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, master has been updated via 96be53aebd01e313634a0cf0c611c718fbccc1b6 (commit) via 1db32ffe98272ded29827b833f373ffa399429e9 (commit) from 64b3df7d1eabbd7c8af5262e68b3b729fc43cb22 (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=96be53aebd01e313634a0cf0c611c718fbccc1b6 commit 96be53aebd01e313634a0cf0c611c718fbccc1b6 Merge: 64b3df7 1db32ff Author: Brad King AuthorDate: Mon Nov 16 09:22:41 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 09:22:41 2015 -0500 Merge topic 'jacoco_out_of_source' 1db32ffe ctest_coverage: Search for Jacoco files in the binary directory ----------------------------------------------------------------------- Summary of changes: Source/CTest/cmCTestCoverageHandler.cxx | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 16 09:22:46 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 16 Nov 2015 09:22:46 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-528-g166a61c Message-ID: <20151116142246.1A703C4668@public.kitware.com> 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, master has been updated via 166a61c72986a45814c524f178857207f3cc113e (commit) via 31d52139ca30f5c0fb814765da542d44531ca146 (commit) via c54a621b55dd09f212037cacb35b98b5129afd40 (commit) from 96be53aebd01e313634a0cf0c611c718fbccc1b6 (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=166a61c72986a45814c524f178857207f3cc113e commit 166a61c72986a45814c524f178857207f3cc113e Merge: 96be53a 31d5213 Author: Brad King AuthorDate: Mon Nov 16 09:22:43 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 09:22:43 2015 -0500 Merge topic 'add-cray-linux-platform' 31d52139 Cray: Added documentation for cross compiling on a Cray c54a621b Cray: New platform file for Cray Linux Environment and PrgEnv ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-toolchains.7.rst | 30 ++++++ Help/release/dev/add-cray-linux-platform.rst | 7 ++ Modules/Platform/CrayLinuxEnvironment.cmake | 112 +++++++++++++++++++++++ Modules/Platform/CrayPrgEnv.cmake | 127 ++++++++++++++++++++++++++ 4 files changed, 276 insertions(+) create mode 100644 Help/release/dev/add-cray-linux-platform.rst create mode 100644 Modules/Platform/CrayLinuxEnvironment.cmake create mode 100644 Modules/Platform/CrayPrgEnv.cmake hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 16 09:22:48 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 16 Nov 2015 09:22:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-531-g30b0db7 Message-ID: <20151116142248.EEB81C4688@public.kitware.com> 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, master has been updated via 30b0db7bb5482258ccdb96d2f0b7aadb5d3b23ac (commit) via f6f03ed4cc4271384ec934fd5867ccbce4e798f2 (commit) via 9f053763d769780385fbc8e3e936f1c996d2e00a (commit) from 166a61c72986a45814c524f178857207f3cc113e (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=30b0db7bb5482258ccdb96d2f0b7aadb5d3b23ac commit 30b0db7bb5482258ccdb96d2f0b7aadb5d3b23ac Merge: 166a61c f6f03ed Author: Brad King AuthorDate: Mon Nov 16 09:22:46 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 09:22:46 2015 -0500 Merge topic 'non-xcode-framework-layout' f6f03ed4 Add test for OSX/iOS Framework directory structure (#15833) 9f053763 Fix iOS Framework directory structure (#15833) ----------------------------------------------------------------------- Summary of changes: Source/cmOSXBundleGenerator.cxx | 15 +++++++-- Tests/RunCMake/CMakeLists.txt | 6 ++++ .../{AutoExportDll => Framework}/CMakeLists.txt | 2 +- Tests/RunCMake/Framework/FrameworkLayout.cmake | 5 +++ .../Framework/OSXFrameworkLayout-build-check.cmake | 20 ++++++++++++ Tests/RunCMake/Framework/RunCMakeTest.cmake | 33 ++++++++++++++++++++ Tests/RunCMake/Framework/foo.c | 1 + .../Framework/iOSFrameworkLayout-build-check.cmake | 20 ++++++++++++ Tests/RunCMake/Framework/ios.cmake | 25 +++++++++++++++ .../RunCMake/{XcodeProject => Framework}/osx.cmake | 0 10 files changed, 123 insertions(+), 4 deletions(-) copy Tests/RunCMake/{AutoExportDll => Framework}/CMakeLists.txt (63%) create mode 100644 Tests/RunCMake/Framework/FrameworkLayout.cmake create mode 100644 Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake create mode 100644 Tests/RunCMake/Framework/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/Framework/foo.c create mode 100644 Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake create mode 100644 Tests/RunCMake/Framework/ios.cmake copy Tests/RunCMake/{XcodeProject => Framework}/osx.cmake (100%) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 16 09:23:15 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 16 Nov 2015 09:23:15 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1382-g60014e9 Message-ID: <20151116142315.D39B7C4691@public.kitware.com> 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 60014e9faf147fbdc6d7789627f02da3f176d5a7 (commit) via 30b0db7bb5482258ccdb96d2f0b7aadb5d3b23ac (commit) via 166a61c72986a45814c524f178857207f3cc113e (commit) via 96be53aebd01e313634a0cf0c611c718fbccc1b6 (commit) via 64b3df7d1eabbd7c8af5262e68b3b729fc43cb22 (commit) via faf98444497201abe8a5b772dec5bda237f4aaf0 (commit) via 9b41415bcdda480b2984c4a21b393738b4ccfcfc (commit) from 4a67aba1018f6f5e203cb02a32040145951077d8 (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=60014e9faf147fbdc6d7789627f02da3f176d5a7 commit 60014e9faf147fbdc6d7789627f02da3f176d5a7 Merge: 4a67aba 30b0db7 Author: Brad King AuthorDate: Mon Nov 16 09:23:04 2015 -0500 Commit: Brad King CommitDate: Mon Nov 16 09:23:04 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 16 10:41:38 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 16 Nov 2015 10:41:38 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1384-g58f54d3 Message-ID: <20151116154138.BA1CAC32B1@public.kitware.com> 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 58f54d3a0288d6210eac005f933cf1d7f5bade53 (commit) via 6772913fff10d59b38ccec6c1104008c8a21f7f7 (commit) from 60014e9faf147fbdc6d7789627f02da3f176d5a7 (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=58f54d3a0288d6210eac005f933cf1d7f5bade53 commit 58f54d3a0288d6210eac005f933cf1d7f5bade53 Merge: 60014e9 6772913 Author: Brad King AuthorDate: Mon Nov 16 10:41:37 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 10:41:37 2015 -0500 Merge topic 'oracle-implicit-link-dirs' into next 6772913f SunOS: Remove obsolete Studio compiler library directories https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6772913fff10d59b38ccec6c1104008c8a21f7f7 commit 6772913fff10d59b38ccec6c1104008c8a21f7f7 Author: April Chin AuthorDate: Fri Nov 13 11:35:58 2015 -0800 Commit: Brad King CommitDate: Mon Nov 16 10:41:10 2015 -0500 SunOS: Remove obsolete Studio compiler library directories Our CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES setting is no longer needed because CMAKE__IMPLICIT_LINK_DIRECTORIES is now populated with the actual implicit link directories for the current toolchain. The old values we hard-coded in CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES are not relevant to modern toolchains, so simply drop them. Co-Author: Shawn Walker-Salas diff --git a/Modules/Platform/SunOS.cmake b/Modules/Platform/SunOS.cmake index 77946f2..58398c0 100644 --- a/Modules/Platform/SunOS.cmake +++ b/Modules/Platform/SunOS.cmake @@ -9,12 +9,6 @@ endif() include(Platform/UnixPaths) -# Add the compiler's implicit link directories. -if("${CMAKE_C_COMPILER_ID} ${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro) - list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES - /opt/SUNWspro/lib /opt/SUNWspro/prod/lib /usr/ccs/lib) -endif() - # The Sun linker needs to find transitive shared library dependencies # in the -L path. set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) ----------------------------------------------------------------------- Summary of changes: Modules/Platform/SunOS.cmake | 6 ------ 1 file changed, 6 deletions(-) hooks/post-receive -- CMake From bill.hoffman at kitware.com Mon Nov 16 15:37:48 2015 From: bill.hoffman at kitware.com (Bill Hoffman) Date: Mon, 16 Nov 2015 15:37:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1386-gc8db8b9 Message-ID: <20151116203749.2618EC4801@public.kitware.com> 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 c8db8b97f9364a6c0677c698f7ce5bde1e4a9742 (commit) via 7f0ab8ed3696d106d2c0e678ccc614fbaf1ec71f (commit) from 58f54d3a0288d6210eac005f933cf1d7f5bade53 (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=c8db8b97f9364a6c0677c698f7ce5bde1e4a9742 commit c8db8b97f9364a6c0677c698f7ce5bde1e4a9742 Merge: 58f54d3 7f0ab8e Author: Bill Hoffman AuthorDate: Mon Nov 16 15:37:44 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 15:37:44 2015 -0500 Merge topic 'unique_def_symbols' into next 7f0ab8ed Make sure the .def files created by CMake contain only unique symbols. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7f0ab8ed3696d106d2c0e678ccc614fbaf1ec71f commit 7f0ab8ed3696d106d2c0e678ccc614fbaf1ec71f Author: Bill Hoffman AuthorDate: Mon Nov 16 15:31:10 2015 -0500 Commit: Bill Hoffman CommitDate: Mon Nov 16 15:31:10 2015 -0500 Make sure the .def files created by CMake contain only unique symbols. Prior to this change each .obj files symbols were dumped to the .def file. This change uses a set to make sure the symbol names are unique. diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index dc4db63..64621e0 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -70,7 +70,7 @@ * Author: Valery Fine 16/09/96 (E-mail: fine at vxcern.cern.ch) *---------------------------------------------------------------------- */ - +#include "bindexplib.h" #include #include #include @@ -173,15 +173,17 @@ public: */ DumpSymbols(ObjectHeaderType* ih, - FILE* fout, bool is64) { + std::set& symbols, + std::set& dataSymbols, + bool is64) + :Symbols(symbols), DataSymbols(dataSymbols) + { this->ObjectImageHeader = ih; this->SymbolTable = (SymbolTableType*) ((DWORD_PTR)this->ObjectImageHeader + this->ObjectImageHeader->PointerToSymbolTable); - this->FileOut = fout; this->SectionHeaders = GetSectionHeaderOffset(this->ObjectImageHeader); - this->ImportFlag = true; this->SymbolCount = this->ObjectImageHeader->NumberOfSymbols; this->Is64Bit = is64; } @@ -296,10 +298,6 @@ public: symbol.erase(0,1); } } - if (this->ImportFlag) { - this->ImportFlag = false; - fprintf(this->FileOut,"EXPORTS \n"); - } /* Check whether it is "Scalar deleting destructor" and "Vector deleting destructor" @@ -319,11 +317,11 @@ public: SectionHeaders[pSymbolTable->SectionNumber-1].Characteristics; if (!pSymbolTable->Type && (SectChar & IMAGE_SCN_MEM_WRITE)) { // Read only (i.e. constants) must be excluded - fprintf(this->FileOut, "\t%s \t DATA\n", symbol.c_str()); + this->DataSymbols.insert(symbol); } else { if ( pSymbolTable->Type || !(SectChar & IMAGE_SCN_MEM_READ)) { - fprintf(this->FileOut, "\t%s\n", symbol.c_str()); + this->Symbols.insert(symbol); } else { // printf(" strange symbol: %s \n",symbol.c_str()); } @@ -340,11 +338,7 @@ public: symbol = stringTable + pSymbolTable->N.Name.Long; while (isspace(symbol[0])) symbol.erase(0,1); if (symbol[0] == '_') symbol.erase(0,1); - if (!this->ImportFlag) { - this->ImportFlag = true; - fprintf(this->FileOut,"IMPORTS \n"); - } - fprintf(this->FileOut, "\t%s DATA \n", symbol.c_str()+1); + this->DataSymbols.insert(symbol); } } @@ -357,8 +351,8 @@ public: } } private: - bool ImportFlag; - FILE* FileOut; + std::set& Symbols; + std::set& DataSymbols; DWORD_PTR SymbolCount; PIMAGE_SECTION_HEADER SectionHeaders; ObjectHeaderType* ObjectImageHeader; @@ -367,7 +361,9 @@ private: }; bool -DumpFile(const char* filename, FILE *fout) +DumpFile(const char* filename, + std::set& symbols, + std::set& dataSymbols) { HANDLE hFile; HANDLE hFileMapping; @@ -415,7 +411,7 @@ DumpFile(const char* filename, FILE *fout) * and IMAGE_FILE_HEADER.SizeOfOptionalHeader == 0; */ DumpSymbols - symbolDumper((PIMAGE_FILE_HEADER) lpFileBase, fout, + symbolDumper((PIMAGE_FILE_HEADER) lpFileBase, symbols, dataSymbols, (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { @@ -424,7 +420,8 @@ DumpFile(const char* filename, FILE *fout) (cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase; if(h->Sig1 == 0x0 && h->Sig2 == 0xffff) { DumpSymbols - symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, fout, + symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, symbols, + dataSymbols, (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { @@ -437,3 +434,27 @@ DumpFile(const char* filename, FILE *fout) CloseHandle(hFile); return true; } + +bool bindexplib::AddObjectFile(const char* filename) +{ + if(!DumpFile(filename, this->Symbols, this->DataSymbols)) + { + return false; + } + return true; +} + +void bindexplib::WriteFile(FILE* file) +{ + fprintf(file,"EXPORTS \n"); + for(std::set::const_iterator i = this->DataSymbols.begin(); + i!= this->DataSymbols.end(); ++i) + { + fprintf(file, "\t%s \t DATA\n", i->c_str()); + } + for(std::set::const_iterator i = this->Symbols.begin(); + i!= this->Symbols.end(); ++i) + { + fprintf(file, "\t%s\n", i->c_str()); + } +} diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index be492ed..54a1590 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -35,8 +35,7 @@ #include // required for atoi #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) -// defined in binexplib.cxx -bool DumpFile(const char* filename, FILE *fout); +#include "bindexplib.h" #endif void CMakeCommandUsage(const char* program) @@ -240,13 +239,16 @@ int cmcmd::ExecuteCMakeCommand(std::vector& args) return 1; } std::string objfile; + bindexplib deffile; while(cmSystemTools::GetLineFromStream(fin, objfile)) { - if (!DumpFile(objfile.c_str(), fout)) + if( !deffile.AddObjectFile(objfile.c_str())) { return 1; } } + deffile.WriteFile(fout); + fclose(fout); return 0; } #endif ----------------------------------------------------------------------- Summary of changes: Source/bindexplib.cxx | 61 +++++++++++++++++++++++++++++++++---------------- Source/cmcmd.cxx | 8 ++++--- 2 files changed, 46 insertions(+), 23 deletions(-) hooks/post-receive -- CMake From bill.hoffman at kitware.com Mon Nov 16 16:37:58 2015 From: bill.hoffman at kitware.com (Bill Hoffman) Date: Mon, 16 Nov 2015 16:37:58 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1388-gad5e439 Message-ID: <20151116213758.9BE61C48DE@public.kitware.com> 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 ad5e439deac90094883bf6f050d5877379e22a2c (commit) via 295b83a84d068b7ad673c586e085901a0779baac (commit) from c8db8b97f9364a6c0677c698f7ce5bde1e4a9742 (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=ad5e439deac90094883bf6f050d5877379e22a2c commit ad5e439deac90094883bf6f050d5877379e22a2c Merge: c8db8b9 295b83a Author: Bill Hoffman AuthorDate: Mon Nov 16 16:37:57 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 16 16:37:57 2015 -0500 Merge topic 'unique_def_symbols' into next 295b83a8 add missing file. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=295b83a84d068b7ad673c586e085901a0779baac commit 295b83a84d068b7ad673c586e085901a0779baac Author: Bill Hoffman AuthorDate: Mon Nov 16 16:37:35 2015 -0500 Commit: Bill Hoffman CommitDate: Mon Nov 16 16:37:35 2015 -0500 add missing file. diff --git a/Source/bindexplib.h b/Source/bindexplib.h new file mode 100644 index 0000000..8661a4a --- /dev/null +++ b/Source/bindexplib.h @@ -0,0 +1,29 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef bindexplib_h +#define bindexplib_h + +#include "cmStandardIncludes.h" + + +class bindexplib +{ +public: + bindexplib() {} + bool AddObjectFile(const char* filename); + void WriteFile(FILE* file); +private: + std::set Symbols; + std::set DataSymbols; +}; +#endif ----------------------------------------------------------------------- Summary of changes: Source/{cmVersionMacros.h => bindexplib.h} | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) copy Source/{cmVersionMacros.h => bindexplib.h} (67%) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Nov 17 00:01:10 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 17 Nov 2015 00:01:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-532-geb6036a Message-ID: <20151117050110.BFE18C46E3@public.kitware.com> 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, master has been updated via eb6036a9a4b5c8c970dc384fb37c68c07505a255 (commit) from 30b0db7bb5482258ccdb96d2f0b7aadb5d3b23ac (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=eb6036a9a4b5c8c970dc384fb37c68c07505a255 commit eb6036a9a4b5c8c970dc384fb37c68c07505a255 Author: Kitware Robot AuthorDate: Tue Nov 17 00:01:07 2015 -0500 Commit: Kitware Robot CommitDate: Tue Nov 17 00:01:07 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index d706ef4..67f4d75 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151116) +set(CMake_VERSION_PATCH 20151117) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 17 10:24:39 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 17 Nov 2015 10:24:39 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1390-g03a3f24 Message-ID: <20151117152439.90436C47FE@public.kitware.com> 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 03a3f24612e30d9df30bc30227febeb0977bbd7f (commit) via 2b958a20275c1c73aee745c29ecf4d2de1377f7b (commit) from ad5e439deac90094883bf6f050d5877379e22a2c (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=03a3f24612e30d9df30bc30227febeb0977bbd7f commit 03a3f24612e30d9df30bc30227febeb0977bbd7f Merge: ad5e439 2b958a2 Author: Brad King AuthorDate: Tue Nov 17 10:24:37 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 17 10:24:37 2015 -0500 Merge topic 'cmake-gui-select-toolset' into next 2b958a20 cmake-gui: Add option to specify generator toolset https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2b958a20275c1c73aee745c29ecf4d2de1377f7b commit 2b958a20275c1c73aee745c29ecf4d2de1377f7b Author: Robert Dailey AuthorDate: Sun Feb 15 13:17:54 2015 -0600 Commit: Brad King CommitDate: Tue Nov 17 10:03:10 2015 -0500 cmake-gui: Add option to specify generator toolset The -T parameter to CMake may now be specified through cmake-gui via a new text field in the first-time configure wizard (below the generator chooser). The generator factories specify whether or not they support toolsets. This information is propagated to the Qt code and used to determine if the selected generator should also display the optional Toolset widgets. diff --git a/Help/release/dev/cmake-gui-select-toolset.rst b/Help/release/dev/cmake-gui-select-toolset.rst new file mode 100644 index 0000000..5186f91 --- /dev/null +++ b/Help/release/dev/cmake-gui-select-toolset.rst @@ -0,0 +1,6 @@ +cmake-gui-select-toolset +------------------------ + +* The :manual:`cmake-gui(1)` learned an option to set the toolset + to be used with VS IDE and Xcode generators, much like the + existing ``-T`` option to :manual:`cmake(1)`. diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index 03417f3..748dd7d 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx @@ -734,6 +734,7 @@ bool CMakeSetupDialog::setupFirstConfigure() { dialog.saveToSettings(); this->CMakeThread->cmakeInstance()->setGenerator(dialog.getGenerator()); + this->CMakeThread->cmakeInstance()->setToolset(dialog.getToolset()); QCMakeCacheModel* m = this->CacheValues->cacheModel(); diff --git a/Source/QtDialog/FirstConfigure.cxx b/Source/QtDialog/FirstConfigure.cxx index 6de9f00..61aad72 100644 --- a/Source/QtDialog/FirstConfigure.cxx +++ b/Source/QtDialog/FirstConfigure.cxx @@ -15,6 +15,11 @@ StartCompilerSetup::StartCompilerSetup(QWidget* p) l->addWidget(new QLabel(tr("Specify the generator for this project"))); this->GeneratorOptions = new QComboBox(this); l->addWidget(this->GeneratorOptions); + + // Add the ability to specify toolset (-T parameter) + ToolsetFrame = CreateToolsetWidgets(); + l->addWidget(ToolsetFrame); + l->addSpacing(6); this->CompilerSetupOptions[0] = new QRadioButton(tr("Use default native compilers"), this); @@ -36,17 +41,51 @@ StartCompilerSetup::StartCompilerSetup(QWidget* p) this, SLOT(onSelectionChanged(bool))); QObject::connect(this->CompilerSetupOptions[3], SIGNAL(toggled(bool)), this, SLOT(onSelectionChanged(bool))); + QObject::connect(GeneratorOptions, + SIGNAL(currentIndexChanged(QString const&)), + this, SLOT(onGeneratorChanged(QString const&))); +} + +QFrame* StartCompilerSetup::CreateToolsetWidgets() +{ + QFrame* frame = new QFrame(this); + QVBoxLayout* l = new QVBoxLayout(frame); + l->setContentsMargins(0, 0, 0, 0); + + ToolsetLabel = new QLabel(tr("Optional toolset to use (-T parameter)")); + l->addWidget(ToolsetLabel); + + Toolset = new QLineEdit(frame); + l->addWidget(Toolset); + + return frame; } StartCompilerSetup::~StartCompilerSetup() { } -void StartCompilerSetup::setGenerators(const QStringList& gens) +void StartCompilerSetup::setGenerators( + std::vector const& gens) { this->GeneratorOptions->clear(); - this->GeneratorOptions->addItems(gens); -}; + + QStringList generator_list; + + std::vector::const_iterator it; + for (it = gens.begin(); it != gens.end(); ++it) + { + generator_list.append(QString::fromLocal8Bit(it->name.c_str())); + + if (it->supportsToolset) + { + this->GeneratorsSupportingToolset.append( + QString::fromLocal8Bit(it->name.c_str())); + } + } + + this->GeneratorOptions->addItems(generator_list); +} void StartCompilerSetup::setCurrentGenerator(const QString& gen) { @@ -62,6 +101,11 @@ QString StartCompilerSetup::getGenerator() const return this->GeneratorOptions->currentText(); }; +QString StartCompilerSetup::getToolset() const +{ + return this->Toolset->text(); +}; + bool StartCompilerSetup::defaultSetup() const { return this->CompilerSetupOptions[0]->isChecked(); @@ -88,6 +132,18 @@ void StartCompilerSetup::onSelectionChanged(bool on) selectionChanged(); } +void StartCompilerSetup::onGeneratorChanged(QString const& name) +{ + if (GeneratorsSupportingToolset.contains(name)) + { + ToolsetFrame->show(); + } + else + { + ToolsetFrame->hide(); + } +} + int StartCompilerSetup::nextId() const { if(compilerSetup()) @@ -325,7 +381,8 @@ FirstConfigure::~FirstConfigure() { } -void FirstConfigure::setGenerators(const QStringList& gens) +void FirstConfigure::setGenerators( + std::vector const& gens) { this->mStartCompilerSetupPage->setGenerators(gens); } @@ -335,6 +392,11 @@ QString FirstConfigure::getGenerator() const return this->mStartCompilerSetupPage->getGenerator(); } +QString FirstConfigure::getToolset() const +{ + return this->mStartCompilerSetupPage->getToolset(); +} + void FirstConfigure::loadFromSettings() { QSettings settings; diff --git a/Source/QtDialog/FirstConfigure.h b/Source/QtDialog/FirstConfigure.h index be390b0..09952b6 100644 --- a/Source/QtDialog/FirstConfigure.h +++ b/Source/QtDialog/FirstConfigure.h @@ -4,6 +4,7 @@ #include #include +#include "cmake.h" #include "ui_Compilers.h" #include "ui_CrossCompiler.h" @@ -27,9 +28,10 @@ class StartCompilerSetup : public QWizardPage public: StartCompilerSetup(QWidget* p); ~StartCompilerSetup(); - void setGenerators(const QStringList& gens); + void setGenerators(std::vector const& gens); void setCurrentGenerator(const QString& gen); QString getGenerator() const; + QString getToolset() const; bool defaultSetup() const; bool compilerSetup() const; @@ -43,10 +45,18 @@ class StartCompilerSetup : public QWizardPage protected slots: void onSelectionChanged(bool); + void onGeneratorChanged(QString const& name); protected: QComboBox* GeneratorOptions; QRadioButton* CompilerSetupOptions[4]; + QFrame* ToolsetFrame; + QLineEdit* Toolset; + QLabel* ToolsetLabel; + QStringList GeneratorsSupportingToolset; + + private: + QFrame* CreateToolsetWidgets(); }; //! the page that gives basic options for native compilers @@ -140,8 +150,9 @@ public: FirstConfigure(); ~FirstConfigure(); - void setGenerators(const QStringList& gens); + void setGenerators(std::vector const& gens); QString getGenerator() const; + QString getToolset() const; bool defaultSetup() const; bool compilerSetup() const; diff --git a/Source/QtDialog/QCMake.cxx b/Source/QtDialog/QCMake.cxx index 9edbb20..1fcb676 100644 --- a/Source/QtDialog/QCMake.cxx +++ b/Source/QtDialog/QCMake.cxx @@ -15,7 +15,6 @@ #include #include -#include "cmake.h" #include "cmState.h" #include "cmSystemTools.h" #include "cmExternalMakefileProjectGenerator.h" @@ -46,21 +45,23 @@ QCMake::QCMake(QObject* p) cmSystemTools::SetInterruptCallback(QCMake::interruptCallback, this); - std::vector generators; + std::vector generators; this->CMakeInstance->GetRegisteredGenerators(generators); - std::vector::iterator iter; - for(iter = generators.begin(); iter != generators.end(); ++iter) + + std::vector::const_iterator it; + for(it = generators.begin(); it != generators.end(); ++it) { // Skip the generator "KDevelop3", since there is also // "KDevelop3 - Unix Makefiles", which is the full and official name. // The short name is actually only still there since this was the name // in CMake 2.4, to keep "command line argument compatibility", but // this is not necessary in the GUI. - if (*iter == "KDevelop3") + if (it->name == "KDevelop3") { continue; } - this->AvailableGenerators.append(QString::fromLocal8Bit(iter->c_str())); + + this->AvailableGenerators.push_back(*it); } } @@ -96,6 +97,7 @@ void QCMake::setBinaryDirectory(const QString& _dir) emit this->binaryDirChanged(this->BinaryDirectory); cmState* state = this->CMakeInstance->GetState(); this->setGenerator(QString()); + this->setToolset(QString()); if(!this->CMakeInstance->LoadCache( this->BinaryDirectory.toLocal8Bit().data())) { @@ -124,6 +126,12 @@ void QCMake::setBinaryDirectory(const QString& _dir) CreateFullGeneratorName(gen, extraGen? extraGen : ""); this->setGenerator(QString::fromLocal8Bit(curGen.c_str())); } + + const char* toolset = state->GetCacheEntryValue("CMAKE_GENERATOR_TOOLSET"); + if (toolset) + { + this->setToolset(QString::fromLocal8Bit(toolset)); + } } } @@ -137,6 +145,15 @@ void QCMake::setGenerator(const QString& gen) } } +void QCMake::setToolset(const QString& toolset) +{ + if(this->Toolset != toolset) + { + this->Toolset = toolset; + emit this->toolsetChanged(this->Toolset); + } +} + void QCMake::configure() { #ifdef Q_OS_WIN @@ -148,7 +165,7 @@ void QCMake::configure() this->CMakeInstance->SetGlobalGenerator( this->CMakeInstance->CreateGlobalGenerator(this->Generator.toLocal8Bit().data())); this->CMakeInstance->SetGeneratorPlatform(""); - this->CMakeInstance->SetGeneratorToolset(""); + this->CMakeInstance->SetGeneratorToolset(this->Toolset.toLocal8Bit().data()); this->CMakeInstance->LoadCache(); this->CMakeInstance->SetSuppressDevWarnings(this->SuppressDevWarnings); this->CMakeInstance->SetWarnUninitialized(this->WarnUninitializedMode); @@ -396,9 +413,9 @@ QString QCMake::generator() const return this->Generator; } -QStringList QCMake::availableGenerators() const +std::vector const& QCMake::availableGenerators() const { - return this->AvailableGenerators; + return AvailableGenerators; } void QCMake::deleteCache() @@ -409,6 +426,7 @@ void QCMake::deleteCache() this->CMakeInstance->LoadCache(this->BinaryDirectory.toLocal8Bit().data()); // emit no generator and no properties this->setGenerator(QString()); + this->setToolset(QString()); QCMakePropertyList props = this->properties(); emit this->propertiesChanged(props); } diff --git a/Source/QtDialog/QCMake.h b/Source/QtDialog/QCMake.h index d910eb7..2d45da9 100644 --- a/Source/QtDialog/QCMake.h +++ b/Source/QtDialog/QCMake.h @@ -17,6 +17,8 @@ #pragma warning ( disable : 4512 ) #endif +#include + #include #include #include @@ -25,7 +27,7 @@ #include #include -class cmake; +#include "cmake.h" /// struct to represent cmake properties in Qt /// Value is of type String or Bool @@ -73,6 +75,8 @@ public slots: void setBinaryDirectory(const QString& dir); /// set the desired generator to use void setGenerator(const QString& generator); + /// set the desired generator to use + void setToolset(const QString& toolset); /// do the configure step void configure(); /// generate the files @@ -104,7 +108,7 @@ public: /// get the current generator QString generator() const; /// get the available generators - QStringList availableGenerators() const; + std::vector const& availableGenerators() const; /// get whether to do debug output bool getDebugOutput() const; @@ -130,6 +134,8 @@ signals: void errorMessage(const QString& msg); /// signal when debug output changes void debugOutputChanged(bool); + /// signal when the toolset changes + void toolsetChanged(const QString& toolset); protected: cmake* CMakeInstance; @@ -147,7 +153,8 @@ protected: QString SourceDirectory; QString BinaryDirectory; QString Generator; - QStringList AvailableGenerators; + QString Toolset; + std::vector AvailableGenerators; QString CMakeExecutable; QAtomicInt InterruptFlag; }; diff --git a/Source/cmGlobalGeneratorFactory.h b/Source/cmGlobalGeneratorFactory.h index ebba599..18d4324 100644 --- a/Source/cmGlobalGeneratorFactory.h +++ b/Source/cmGlobalGeneratorFactory.h @@ -38,6 +38,9 @@ public: /** Get the names of the current registered generators */ virtual void GetGenerators(std::vector& names) const = 0; + + /** Determine whether or not this generator supports toolsets */ + virtual bool SupportsToolset() const = 0; }; template @@ -57,6 +60,9 @@ public: /** Get the names of the current registered generators */ virtual void GetGenerators(std::vector& names) const { names.push_back(T::GetActualName()); } + + /** Determine whether or not this generator supports toolsets */ + virtual bool SupportsToolset() const { return T::SupportsToolset(); } }; #endif diff --git a/Source/cmGlobalGhsMultiGenerator.h b/Source/cmGlobalGhsMultiGenerator.h index 480cd6a..6f86c5d 100644 --- a/Source/cmGlobalGhsMultiGenerator.h +++ b/Source/cmGlobalGhsMultiGenerator.h @@ -35,6 +35,7 @@ public: /// @return the name of this generator. static std::string GetActualName() { return "Green Hills MULTI"; } + ///! Get the name for this generator virtual std::string GetName() const { return this->GetActualName(); } @@ -42,6 +43,12 @@ public: static void GetDocumentation(cmDocumentationEntry &entry); /** + * Utilized by the generator factory to determine if this generator + * supports toolsets. + */ + static bool SupportsToolset() { return false; } + + /** * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 46bd588..c494d36 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -74,6 +74,12 @@ public: static void WriteComment(std::ostream& os, const std::string& comment); /** + * Utilized by the generator factory to determine if this generator + * supports toolsets. + */ + static bool SupportsToolset() { return false; } + + /** * Write a build statement to @a os with the @a comment using * the @a rule the list of @a outputs files and inputs. * It also writes the variables bound to this build statement. diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 54fdc0e..0591a5a 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -64,6 +64,12 @@ public: return cmGlobalUnixMakefileGenerator3::GetActualName();} static std::string GetActualName() {return "Unix Makefiles";} + /** + * Utilized by the generator factory to determine if this generator + * supports toolsets. + */ + static bool SupportsToolset() { return false; } + /** Get the documentation entry for this generator. */ static void GetDocumentation(cmDocumentationEntry& entry); diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index e568704..c49008d 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -81,6 +81,8 @@ public: names.push_back(vs10generatorName + std::string(" IA64")); names.push_back(vs10generatorName + std::string(" Win64")); } + + virtual bool SupportsToolset() const { return true; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx index b9b4fff..9522f6e 100644 --- a/Source/cmGlobalVisualStudio11Generator.cxx +++ b/Source/cmGlobalVisualStudio11Generator.cxx @@ -96,6 +96,8 @@ public: names.push_back(std::string(vs11generatorName) + " " + *i); } } + + virtual bool SupportsToolset() const { return true; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx index efa1133..568d4d7 100644 --- a/Source/cmGlobalVisualStudio12Generator.cxx +++ b/Source/cmGlobalVisualStudio12Generator.cxx @@ -76,6 +76,8 @@ public: names.push_back(vs12generatorName + std::string(" ARM")); names.push_back(vs12generatorName + std::string(" Win64")); } + + virtual bool SupportsToolset() const { return true; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio14Generator.cxx b/Source/cmGlobalVisualStudio14Generator.cxx index 41825fb..a05ac24 100644 --- a/Source/cmGlobalVisualStudio14Generator.cxx +++ b/Source/cmGlobalVisualStudio14Generator.cxx @@ -76,6 +76,8 @@ public: names.push_back(vs14generatorName + std::string(" ARM")); names.push_back(vs14generatorName + std::string(" Win64")); } + + virtual bool SupportsToolset() const { return true; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio6Generator.h b/Source/cmGlobalVisualStudio6Generator.h index 993a48f..ae2988e 100644 --- a/Source/cmGlobalVisualStudio6Generator.h +++ b/Source/cmGlobalVisualStudio6Generator.h @@ -36,6 +36,12 @@ public: /** Get the documentation entry for this generator. */ static void GetDocumentation(cmDocumentationEntry& entry); + /** + * Utilized by the generator factory to determine if this generator + * supports toolsets. + */ + static bool SupportsToolset() { return false; } + ///! Create a local generator appropriate to this Global Generator virtual cmLocalGenerator *CreateLocalGenerator(cmMakefile* mf); diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h index fe6db2e..de2d35e 100644 --- a/Source/cmGlobalVisualStudio7Generator.h +++ b/Source/cmGlobalVisualStudio7Generator.h @@ -53,6 +53,12 @@ public: static void GetDocumentation(cmDocumentationEntry& entry); /** + * Utilized by the generator factory to determine if this generator + * supports toolsets. + */ + static bool SupportsToolset() { return false; } + + /** * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx index 5e239b8..3abff6c 100644 --- a/Source/cmGlobalVisualStudio8Generator.cxx +++ b/Source/cmGlobalVisualStudio8Generator.cxx @@ -84,6 +84,8 @@ public: names.push_back("Visual Studio 8 2005 " + *i); } } + + virtual bool SupportsToolset() const { return false; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio9Generator.cxx b/Source/cmGlobalVisualStudio9Generator.cxx index d98793a..884f754 100644 --- a/Source/cmGlobalVisualStudio9Generator.cxx +++ b/Source/cmGlobalVisualStudio9Generator.cxx @@ -88,6 +88,8 @@ public: names.push_back("Visual Studio 9 2008 " + *i); } } + + virtual bool SupportsToolset() const { return false; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 2df07cb..475efa8 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -125,6 +125,8 @@ public: virtual void GetGenerators(std::vector& names) const { names.push_back(cmGlobalXCodeGenerator::GetActualName()); } + + virtual bool SupportsToolset() const { return true; } }; //---------------------------------------------------------------------------- diff --git a/Source/cmake.cxx b/Source/cmake.cxx index d5bc3d2..ee1e878 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -957,18 +957,32 @@ void cmake::AddDefaultExtraGenerators() //---------------------------------------------------------------------------- -void cmake::GetRegisteredGenerators(std::vector& names) +void cmake::GetRegisteredGenerators(std::vector& generators) { - for(RegisteredGeneratorsVector::const_iterator i = this->Generators.begin(); - i != this->Generators.end(); ++i) + for (RegisteredGeneratorsVector::const_iterator + i = this->Generators.begin(), e = this->Generators.end(); + i != e; ++i) { + std::vector names; (*i)->GetGenerators(names); + + for (size_t j = 0; j < names.size(); ++j) + { + GeneratorInfo info; + info.supportsToolset = (*i)->SupportsToolset(); + info.name = names[j]; + generators.push_back(info); + } } - for(RegisteredExtraGeneratorsMap::const_iterator - i = this->ExtraGenerators.begin(); - i != this->ExtraGenerators.end(); ++i) + + for (RegisteredExtraGeneratorsMap::const_iterator + i = this->ExtraGenerators.begin(), e = this->ExtraGenerators.end(); + i != e; ++i) { - names.push_back(i->first); + GeneratorInfo info; + info.name = i->first; + info.supportsToolset = false; + generators.push_back(info); } } diff --git a/Source/cmake.h b/Source/cmake.h index 6b0e83f..c584ad9 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -89,6 +89,13 @@ class cmake */ FIND_PACKAGE_MODE }; + + struct GeneratorInfo + { + std::string name; + bool supportsToolset; + }; + typedef std::map InstalledFilesMap; /// Default constructor @@ -161,7 +168,7 @@ class cmake void SetGlobalGenerator(cmGlobalGenerator *); ///! Get the names of the current registered generators - void GetRegisteredGenerators(std::vector& names); + void GetRegisteredGenerators(std::vector& generators); ///! Set the name of the selected generator-specific platform. void SetGeneratorPlatform(std::string const& ts) ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cmake-gui-select-toolset.rst | 6 +++ Source/QtDialog/CMakeSetupDialog.cxx | 1 + Source/QtDialog/FirstConfigure.cxx | 70 +++++++++++++++++++++++-- Source/QtDialog/FirstConfigure.h | 15 +++++- Source/QtDialog/QCMake.cxx | 36 +++++++++---- Source/QtDialog/QCMake.h | 13 +++-- Source/cmGlobalGeneratorFactory.h | 6 +++ Source/cmGlobalGhsMultiGenerator.h | 7 +++ Source/cmGlobalNinjaGenerator.h | 6 +++ Source/cmGlobalUnixMakefileGenerator3.h | 6 +++ Source/cmGlobalVisualStudio10Generator.cxx | 2 + Source/cmGlobalVisualStudio11Generator.cxx | 2 + Source/cmGlobalVisualStudio12Generator.cxx | 2 + Source/cmGlobalVisualStudio14Generator.cxx | 2 + Source/cmGlobalVisualStudio6Generator.h | 6 +++ Source/cmGlobalVisualStudio7Generator.h | 6 +++ Source/cmGlobalVisualStudio8Generator.cxx | 2 + Source/cmGlobalVisualStudio9Generator.cxx | 2 + Source/cmGlobalXCodeGenerator.cxx | 2 + Source/cmake.cxx | 28 +++++++--- Source/cmake.h | 9 +++- 21 files changed, 203 insertions(+), 26 deletions(-) create mode 100644 Help/release/dev/cmake-gui-select-toolset.rst hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 17 12:07:37 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 17 Nov 2015 12:07:37 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1392-g8913439 Message-ID: <20151117170737.7A341C4C8C@public.kitware.com> 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 8913439f0bd4fe8fb314ea86ea8fc6f48511609f (commit) via 716a09b913fa42eb50fe5039a39a26df58f70da7 (commit) from 03a3f24612e30d9df30bc30227febeb0977bbd7f (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=8913439f0bd4fe8fb314ea86ea8fc6f48511609f commit 8913439f0bd4fe8fb314ea86ea8fc6f48511609f Merge: 03a3f24 716a09b Author: Brad King AuthorDate: Tue Nov 17 12:07:36 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 17 12:07:36 2015 -0500 Merge topic 'fix-compute-default-dialect-lto' into next 716a09b9 Make C and C++ default dialect detection robust to advanced optimizations https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=716a09b913fa42eb50fe5039a39a26df58f70da7 commit 716a09b913fa42eb50fe5039a39a26df58f70da7 Author: Setze Post AuthorDate: Tue Nov 17 11:59:05 2015 -0500 Commit: Brad King CommitDate: Tue Nov 17 12:01:02 2015 -0500 Make C and C++ default dialect detection robust to advanced optimizations In commit v3.4.0-rc1~71^2 (Project: Determine default language dialect for the compiler, 2015-09-15) we added an "INFO:..." string to the compiler id detection binary. The value can be optimized out of the compiler id binary unless we force it to be included by making the program behavior depend on it at runtime. Add references to the value as we do for the other info strings already. diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in index b224007..63f8787 100644 --- a/Modules/CMakeCCompilerId.c.in +++ b/Modules/CMakeCCompilerId.c.in @@ -55,6 +55,7 @@ int main(int argc, char* argv[]) #ifdef SIMULATE_VERSION_MAJOR require += info_simulate_version[argc]; #endif + require += info_language_dialect_default[argc]; (void)argv; return require; } diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in index d467507..61cd790 100644 --- a/Modules/CMakeCXXCompilerId.cpp.in +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -49,6 +49,7 @@ int main(int argc, char* argv[]) #ifdef SIMULATE_VERSION_MAJOR require += info_simulate_version[argc]; #endif + require += info_language_dialect_default[argc]; (void)argv; return require; } ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompilerId.c.in | 1 + Modules/CMakeCXXCompilerId.cpp.in | 1 + 2 files changed, 2 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Nov 18 00:01:12 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 18 Nov 2015 00:01:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-533-g3379365 Message-ID: <20151118050112.9DACDC4824@public.kitware.com> 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, master has been updated via 3379365e6b3a4466b3e337c2e159125fb91ad447 (commit) from eb6036a9a4b5c8c970dc384fb37c68c07505a255 (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=3379365e6b3a4466b3e337c2e159125fb91ad447 commit 3379365e6b3a4466b3e337c2e159125fb91ad447 Author: Kitware Robot AuthorDate: Wed Nov 18 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Wed Nov 18 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 67f4d75..fe14462 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151117) +set(CMake_VERSION_PATCH 20151118) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 09:34:53 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 09:34:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1394-ge720b5f Message-ID: <20151118143453.80B15C4B8F@public.kitware.com> 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 e720b5f39b594f48e4c0f1b2133e071c63009431 (commit) via ca263d1d71d953630e31daa7771dde3c6835b9a2 (commit) from 8913439f0bd4fe8fb314ea86ea8fc6f48511609f (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=e720b5f39b594f48e4c0f1b2133e071c63009431 commit e720b5f39b594f48e4c0f1b2133e071c63009431 Merge: 8913439 ca263d1 Author: Brad King AuthorDate: Wed Nov 18 09:34:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 09:34:52 2015 -0500 Merge topic 'fix-ms-manifest-no-linker' into next ca263d1d MSVC: Fix linking with /MANIFEST:NO option https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ca263d1d71d953630e31daa7771dde3c6835b9a2 commit ca263d1d71d953630e31daa7771dde3c6835b9a2 Author: Brad King AuthorDate: Wed Nov 18 09:10:51 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 09:31:56 2015 -0500 MSVC: Fix linking with /MANIFEST:NO option Refactoring in commit v3.4.0-rc1~74^2~1 (MSVC: Rewrite manifest file handling with Makefile and Ninja, 2015-09-15) broke handling of this option. Fix it and add a test case. diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index f44c77d..a074444 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -1550,7 +1550,6 @@ bool cmVSLink::Parse(std::vector::const_iterator argBeg, // pass it to the link command. this->ManifestFileRC = intDir + "/manifest.rc"; this->ManifestFileRes = intDir + "/manifest.res"; - this->LinkCommand.push_back(this->ManifestFileRes); } else if (this->UserManifests.empty()) { @@ -1658,6 +1657,9 @@ int cmVSLink::LinkIncremental() return -1; } + // Tell the linker to use our manifest compiled into a resource. + this->LinkCommand.push_back(this->ManifestFileRes); + // Run the link command (possibly generates intermediate manifest). if (!RunCommand("LINK Pass 1", this->LinkCommand, this->Verbose)) { diff --git a/Tests/MSManifest/Subdir/CMakeLists.txt b/Tests/MSManifest/Subdir/CMakeLists.txt index a47cf00..11272bb 100644 --- a/Tests/MSManifest/Subdir/CMakeLists.txt +++ b/Tests/MSManifest/Subdir/CMakeLists.txt @@ -6,4 +6,6 @@ if(MSVC AND NOT MSVC_VERSION LESS 1400) COMMAND ${CMAKE_COMMAND} -Dexe=$ -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake ) + add_executable(MSManifestNone main.c) + set_property(TARGET MSManifestNone PROPERTY LINK_FLAGS "/MANIFEST:NO") endif() ----------------------------------------------------------------------- Summary of changes: Source/cmcmd.cxx | 4 +++- Tests/MSManifest/Subdir/CMakeLists.txt | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:13:50 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:13:50 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1396-gc5c1a66 Message-ID: <20151118151350.5E25BC3993@public.kitware.com> 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 c5c1a6691e47b765755567023b930c0456019f90 (commit) via c3dc8935ee5fe9415d37ec138b6c087f85f15d43 (commit) from e720b5f39b594f48e4c0f1b2133e071c63009431 (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=c5c1a6691e47b765755567023b930c0456019f90 commit c5c1a6691e47b765755567023b930c0456019f90 Merge: e720b5f c3dc893 Author: Brad King AuthorDate: Wed Nov 18 10:13:49 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:13:49 2015 -0500 Merge topic 'fix-compute-default-dialect-lto' into next c3dc8935 Make C and C++ default dialect detection robust to advanced optimizations https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c3dc8935ee5fe9415d37ec138b6c087f85f15d43 commit c3dc8935ee5fe9415d37ec138b6c087f85f15d43 Author: Brad King AuthorDate: Wed Nov 18 10:12:25 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 10:12:25 2015 -0500 Make C and C++ default dialect detection robust to advanced optimizations In commit v3.4.0-rc1~71^2 (Project: Determine default language dialect for the compiler, 2015-09-15) we added an "INFO:..." string to the compiler id detection binary. The value can be optimized out of the compiler id binary unless we force it to be included by making the program behavior depend on it at runtime. Add references to the value as we do for the other info strings already. Gentoo-Issue: https://bugs.gentoo.org/show_bug.cgi?id=565744 diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in index b224007..63f8787 100644 --- a/Modules/CMakeCCompilerId.c.in +++ b/Modules/CMakeCCompilerId.c.in @@ -55,6 +55,7 @@ int main(int argc, char* argv[]) #ifdef SIMULATE_VERSION_MAJOR require += info_simulate_version[argc]; #endif + require += info_language_dialect_default[argc]; (void)argv; return require; } diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in index d467507..61cd790 100644 --- a/Modules/CMakeCXXCompilerId.cpp.in +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -49,6 +49,7 @@ int main(int argc, char* argv[]) #ifdef SIMULATE_VERSION_MAJOR require += info_simulate_version[argc]; #endif + require += info_language_dialect_default[argc]; (void)argv; return require; } ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:15:23 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:15:23 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-535-g4c66a90 Message-ID: <20151118151523.D887FC3F14@public.kitware.com> 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, master has been updated via 4c66a9011baf3c7b42c3b7fa613ce7883a8069d6 (commit) via 6772913fff10d59b38ccec6c1104008c8a21f7f7 (commit) from 3379365e6b3a4466b3e337c2e159125fb91ad447 (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=4c66a9011baf3c7b42c3b7fa613ce7883a8069d6 commit 4c66a9011baf3c7b42c3b7fa613ce7883a8069d6 Merge: 3379365 6772913 Author: Brad King AuthorDate: Wed Nov 18 10:15:22 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:15:22 2015 -0500 Merge topic 'oracle-implicit-link-dirs' 6772913f SunOS: Remove obsolete Studio compiler library directories ----------------------------------------------------------------------- Summary of changes: Modules/Platform/SunOS.cmake | 6 ------ 1 file changed, 6 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:15:26 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:15:26 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-537-gc1cdf60 Message-ID: <20151118151526.B4A9FC3F16@public.kitware.com> 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, master has been updated via c1cdf60a005ce1d9973fa7a3c7481ccab7b47e02 (commit) via c3dc8935ee5fe9415d37ec138b6c087f85f15d43 (commit) from 4c66a9011baf3c7b42c3b7fa613ce7883a8069d6 (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=c1cdf60a005ce1d9973fa7a3c7481ccab7b47e02 commit c1cdf60a005ce1d9973fa7a3c7481ccab7b47e02 Merge: 4c66a90 c3dc893 Author: Brad King AuthorDate: Wed Nov 18 10:15:25 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:15:25 2015 -0500 Merge topic 'fix-compute-default-dialect-lto' c3dc8935 Make C and C++ default dialect detection robust to advanced optimizations ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompilerId.c.in | 1 + Modules/CMakeCXXCompilerId.cpp.in | 1 + 2 files changed, 2 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:15:29 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:15:29 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-539-gd6c1860 Message-ID: <20151118151529.C075AC3F54@public.kitware.com> 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, master has been updated via d6c186046395991c1975c3173eaa8eec5f4b45f7 (commit) via 2b958a20275c1c73aee745c29ecf4d2de1377f7b (commit) from c1cdf60a005ce1d9973fa7a3c7481ccab7b47e02 (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=d6c186046395991c1975c3173eaa8eec5f4b45f7 commit d6c186046395991c1975c3173eaa8eec5f4b45f7 Merge: c1cdf60 2b958a2 Author: Brad King AuthorDate: Wed Nov 18 10:15:28 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:15:28 2015 -0500 Merge topic 'cmake-gui-select-toolset' 2b958a20 cmake-gui: Add option to specify generator toolset ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cmake-gui-select-toolset.rst | 6 +++ Source/QtDialog/CMakeSetupDialog.cxx | 1 + Source/QtDialog/FirstConfigure.cxx | 70 +++++++++++++++++++++++-- Source/QtDialog/FirstConfigure.h | 15 +++++- Source/QtDialog/QCMake.cxx | 36 +++++++++---- Source/QtDialog/QCMake.h | 13 +++-- Source/cmGlobalGeneratorFactory.h | 6 +++ Source/cmGlobalGhsMultiGenerator.h | 7 +++ Source/cmGlobalNinjaGenerator.h | 6 +++ Source/cmGlobalUnixMakefileGenerator3.h | 6 +++ Source/cmGlobalVisualStudio10Generator.cxx | 2 + Source/cmGlobalVisualStudio11Generator.cxx | 2 + Source/cmGlobalVisualStudio12Generator.cxx | 2 + Source/cmGlobalVisualStudio14Generator.cxx | 2 + Source/cmGlobalVisualStudio6Generator.h | 6 +++ Source/cmGlobalVisualStudio7Generator.h | 6 +++ Source/cmGlobalVisualStudio8Generator.cxx | 2 + Source/cmGlobalVisualStudio9Generator.cxx | 2 + Source/cmGlobalXCodeGenerator.cxx | 2 + Source/cmake.cxx | 28 +++++++--- Source/cmake.h | 9 +++- 21 files changed, 203 insertions(+), 26 deletions(-) create mode 100644 Help/release/dev/cmake-gui-select-toolset.rst hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:15:46 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:15:46 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1402-g4a6fde6 Message-ID: <20151118151546.201DCC3F5B@public.kitware.com> 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 4a6fde6ca620be16e621f6b4a224685730cd13a0 (commit) via d6c186046395991c1975c3173eaa8eec5f4b45f7 (commit) via c1cdf60a005ce1d9973fa7a3c7481ccab7b47e02 (commit) via 4c66a9011baf3c7b42c3b7fa613ce7883a8069d6 (commit) via 3379365e6b3a4466b3e337c2e159125fb91ad447 (commit) via eb6036a9a4b5c8c970dc384fb37c68c07505a255 (commit) from c5c1a6691e47b765755567023b930c0456019f90 (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=4a6fde6ca620be16e621f6b4a224685730cd13a0 commit 4a6fde6ca620be16e621f6b4a224685730cd13a0 Merge: c5c1a66 d6c1860 Author: Brad King AuthorDate: Wed Nov 18 10:15:34 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 10:15:34 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:18:22 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:18:22 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-542-g79cc142 Message-ID: <20151118151822.685A3C41A9@public.kitware.com> 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, master has been updated via 79cc14257a0736cccda6451346a30a51f2f390a2 (commit) via daa72b253a5d07b985653c4ce1d2a7a647129e43 (commit) via 60859b93db0787f1beb421de7e61a0d79d6dfd80 (commit) from d6c186046395991c1975c3173eaa8eec5f4b45f7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:18:22 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:18:22 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1406-g78a209f Message-ID: <20151118151822.8B30CC41AA@public.kitware.com> 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 78a209f9c233ee5cb6c246b0959d988718d88611 (commit) via 79cc14257a0736cccda6451346a30a51f2f390a2 (commit) via daa72b253a5d07b985653c4ce1d2a7a647129e43 (commit) via 60859b93db0787f1beb421de7e61a0d79d6dfd80 (commit) from 4a6fde6ca620be16e621f6b4a224685730cd13a0 (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=78a209f9c233ee5cb6c246b0959d988718d88611 commit 78a209f9c233ee5cb6c246b0959d988718d88611 Merge: 4a6fde6 79cc142 Author: Brad King AuthorDate: Wed Nov 18 10:18:01 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 10:18:01 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:18:22 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:18:22 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-4-gdaa72b2 Message-ID: <20151118151822.A3E3BC41B7@public.kitware.com> 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, release has been updated via daa72b253a5d07b985653c4ce1d2a7a647129e43 (commit) via c3dc8935ee5fe9415d37ec138b6c087f85f15d43 (commit) via 60859b93db0787f1beb421de7e61a0d79d6dfd80 (commit) via 09f754f040f3e817cd69337adea2c73cb61d53da (commit) from b4a2ada297214119647b26df8abe394cd73ca53a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompilerId.c.in | 1 + Modules/CMakeCXXCompilerId.cpp.in | 1 + Modules/CMakeFortranCompilerId.F.in | 2 ++ 3 files changed, 4 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:20:00 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:20:00 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1408-gf619480 Message-ID: <20151118152000.28CE4C42B3@public.kitware.com> 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 f619480da3071fb404124a3d042bf0769c450c93 (commit) via 1c1ace2db012919f23b6de5400ab192b9277dfc6 (commit) from 78a209f9c233ee5cb6c246b0959d988718d88611 (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=f619480da3071fb404124a3d042bf0769c450c93 commit f619480da3071fb404124a3d042bf0769c450c93 Merge: 78a209f 1c1ace2 Author: Brad King AuthorDate: Wed Nov 18 10:19:59 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:19:59 2015 -0500 Merge topic 'unique_def_symbols' into next 1c1ace2d De-duplicate symbols listed in generated module definition files https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c1ace2db012919f23b6de5400ab192b9277dfc6 commit 1c1ace2db012919f23b6de5400ab192b9277dfc6 Author: Bill Hoffman AuthorDate: Mon Nov 16 15:31:10 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 10:02:48 2015 -0500 De-duplicate symbols listed in generated module definition files MS tools have a limit on the number of symbols that can be listed in a `.def` file. If multiple `.obj` files provide a symbol then avoid listing it more than once in the generated `.def` file to avoid counting toward the limit. diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index dc4db63..64621e0 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -70,7 +70,7 @@ * Author: Valery Fine 16/09/96 (E-mail: fine at vxcern.cern.ch) *---------------------------------------------------------------------- */ - +#include "bindexplib.h" #include #include #include @@ -173,15 +173,17 @@ public: */ DumpSymbols(ObjectHeaderType* ih, - FILE* fout, bool is64) { + std::set& symbols, + std::set& dataSymbols, + bool is64) + :Symbols(symbols), DataSymbols(dataSymbols) + { this->ObjectImageHeader = ih; this->SymbolTable = (SymbolTableType*) ((DWORD_PTR)this->ObjectImageHeader + this->ObjectImageHeader->PointerToSymbolTable); - this->FileOut = fout; this->SectionHeaders = GetSectionHeaderOffset(this->ObjectImageHeader); - this->ImportFlag = true; this->SymbolCount = this->ObjectImageHeader->NumberOfSymbols; this->Is64Bit = is64; } @@ -296,10 +298,6 @@ public: symbol.erase(0,1); } } - if (this->ImportFlag) { - this->ImportFlag = false; - fprintf(this->FileOut,"EXPORTS \n"); - } /* Check whether it is "Scalar deleting destructor" and "Vector deleting destructor" @@ -319,11 +317,11 @@ public: SectionHeaders[pSymbolTable->SectionNumber-1].Characteristics; if (!pSymbolTable->Type && (SectChar & IMAGE_SCN_MEM_WRITE)) { // Read only (i.e. constants) must be excluded - fprintf(this->FileOut, "\t%s \t DATA\n", symbol.c_str()); + this->DataSymbols.insert(symbol); } else { if ( pSymbolTable->Type || !(SectChar & IMAGE_SCN_MEM_READ)) { - fprintf(this->FileOut, "\t%s\n", symbol.c_str()); + this->Symbols.insert(symbol); } else { // printf(" strange symbol: %s \n",symbol.c_str()); } @@ -340,11 +338,7 @@ public: symbol = stringTable + pSymbolTable->N.Name.Long; while (isspace(symbol[0])) symbol.erase(0,1); if (symbol[0] == '_') symbol.erase(0,1); - if (!this->ImportFlag) { - this->ImportFlag = true; - fprintf(this->FileOut,"IMPORTS \n"); - } - fprintf(this->FileOut, "\t%s DATA \n", symbol.c_str()+1); + this->DataSymbols.insert(symbol); } } @@ -357,8 +351,8 @@ public: } } private: - bool ImportFlag; - FILE* FileOut; + std::set& Symbols; + std::set& DataSymbols; DWORD_PTR SymbolCount; PIMAGE_SECTION_HEADER SectionHeaders; ObjectHeaderType* ObjectImageHeader; @@ -367,7 +361,9 @@ private: }; bool -DumpFile(const char* filename, FILE *fout) +DumpFile(const char* filename, + std::set& symbols, + std::set& dataSymbols) { HANDLE hFile; HANDLE hFileMapping; @@ -415,7 +411,7 @@ DumpFile(const char* filename, FILE *fout) * and IMAGE_FILE_HEADER.SizeOfOptionalHeader == 0; */ DumpSymbols - symbolDumper((PIMAGE_FILE_HEADER) lpFileBase, fout, + symbolDumper((PIMAGE_FILE_HEADER) lpFileBase, symbols, dataSymbols, (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { @@ -424,7 +420,8 @@ DumpFile(const char* filename, FILE *fout) (cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase; if(h->Sig1 == 0x0 && h->Sig2 == 0xffff) { DumpSymbols - symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, fout, + symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, symbols, + dataSymbols, (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { @@ -437,3 +434,27 @@ DumpFile(const char* filename, FILE *fout) CloseHandle(hFile); return true; } + +bool bindexplib::AddObjectFile(const char* filename) +{ + if(!DumpFile(filename, this->Symbols, this->DataSymbols)) + { + return false; + } + return true; +} + +void bindexplib::WriteFile(FILE* file) +{ + fprintf(file,"EXPORTS \n"); + for(std::set::const_iterator i = this->DataSymbols.begin(); + i!= this->DataSymbols.end(); ++i) + { + fprintf(file, "\t%s \t DATA\n", i->c_str()); + } + for(std::set::const_iterator i = this->Symbols.begin(); + i!= this->Symbols.end(); ++i) + { + fprintf(file, "\t%s\n", i->c_str()); + } +} diff --git a/Source/bindexplib.h b/Source/bindexplib.h new file mode 100644 index 0000000..8661a4a --- /dev/null +++ b/Source/bindexplib.h @@ -0,0 +1,29 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef bindexplib_h +#define bindexplib_h + +#include "cmStandardIncludes.h" + + +class bindexplib +{ +public: + bindexplib() {} + bool AddObjectFile(const char* filename); + void WriteFile(FILE* file); +private: + std::set Symbols; + std::set DataSymbols; +}; +#endif diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index be492ed..54a1590 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -35,8 +35,7 @@ #include // required for atoi #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) -// defined in binexplib.cxx -bool DumpFile(const char* filename, FILE *fout); +#include "bindexplib.h" #endif void CMakeCommandUsage(const char* program) @@ -240,13 +239,16 @@ int cmcmd::ExecuteCMakeCommand(std::vector& args) return 1; } std::string objfile; + bindexplib deffile; while(cmSystemTools::GetLineFromStream(fin, objfile)) { - if (!DumpFile(objfile.c_str(), fout)) + if( !deffile.AddObjectFile(objfile.c_str())) { return 1; } } + deffile.WriteFile(fout); + fclose(fout); return 0; } #endif ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:20:09 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:20:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-544-g96e4a79 Message-ID: <20151118152009.47187C42DA@public.kitware.com> 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, master has been updated via 96e4a79ab1236926ac5076a47bbbc013d32c6555 (commit) via 1c1ace2db012919f23b6de5400ab192b9277dfc6 (commit) from 79cc14257a0736cccda6451346a30a51f2f390a2 (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=96e4a79ab1236926ac5076a47bbbc013d32c6555 commit 96e4a79ab1236926ac5076a47bbbc013d32c6555 Merge: 79cc142 1c1ace2 Author: Brad King AuthorDate: Wed Nov 18 10:20:07 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:20:07 2015 -0500 Merge topic 'unique_def_symbols' 1c1ace2d De-duplicate symbols listed in generated module definition files ----------------------------------------------------------------------- Summary of changes: Source/bindexplib.cxx | 61 +++++++++++++++++++--------- Source/{cmVersionMacros.h => bindexplib.h} | 21 ++++++---- Source/cmcmd.cxx | 8 ++-- 3 files changed, 60 insertions(+), 30 deletions(-) copy Source/{cmVersionMacros.h => bindexplib.h} (67%) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:20:45 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:20:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1410-g4b07dbe Message-ID: <20151118152045.08AAEC435E@public.kitware.com> 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 4b07dbef44da7241224820e19fd74211cd84181b (commit) via 96e4a79ab1236926ac5076a47bbbc013d32c6555 (commit) from f619480da3071fb404124a3d042bf0769c450c93 (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=4b07dbef44da7241224820e19fd74211cd84181b commit 4b07dbef44da7241224820e19fd74211cd84181b Merge: f619480 96e4a79 Author: Brad King AuthorDate: Wed Nov 18 10:20:21 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 10:20:21 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 18 10:43:09 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 18 Nov 2015 10:43:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1412-g1835942 Message-ID: <20151118154309.D860FC3316@public.kitware.com> 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 1835942c915892d6a27a869f49f5583de0b34284 (commit) via b5e7b22defa353894ad999df83b90ae45f163d61 (commit) from 4b07dbef44da7241224820e19fd74211cd84181b (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=1835942c915892d6a27a869f49f5583de0b34284 commit 1835942c915892d6a27a869f49f5583de0b34284 Merge: 4b07dbe b5e7b22 Author: Brad King AuthorDate: Wed Nov 18 10:43:08 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 10:43:08 2015 -0500 Merge topic 'FindGTest-avoid-CMP0064' into next b5e7b22d FindGTest: Refactor test type checks to avoid cases triggering CMP0064 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b5e7b22defa353894ad999df83b90ae45f163d61 commit b5e7b22defa353894ad999df83b90ae45f163d61 Author: Brad King AuthorDate: Wed Nov 18 10:36:41 2015 -0500 Commit: Brad King CommitDate: Wed Nov 18 10:42:55 2015 -0500 FindGTest: Refactor test type checks to avoid cases triggering CMP0064 Update our if() conditions to avoid CMP0064 warnings when `${test_type}` is equal to `TEST`. Reported-by: David T. Chen diff --git a/Modules/FindGTest.cmake b/Modules/FindGTest.cmake index fccf877..eb7abfd 100644 --- a/Modules/FindGTest.cmake +++ b/Modules/FindGTest.cmake @@ -124,11 +124,11 @@ function(GTEST_ADD_TESTS executable extra_args) string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit}) # Parameterized tests have a different signature for the filter - if(${test_type} STREQUAL "TEST_P") + if("x${test_type}" STREQUAL "xTEST_P") string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" test_name ${hit}) - elseif(${test_type} STREQUAL "TEST_F" OR ${test_type} STREQUAL "TEST") + elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST") string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit}) - elseif(${test_type} STREQUAL "TYPED_TEST") + elseif("x${test_type}" STREQUAL "xTYPED_TEST") string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" test_name ${hit}) else() message(WARNING "Could not parse GTest ${hit} for adding to CTest.") ----------------------------------------------------------------------- Summary of changes: Modules/FindGTest.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Wed Nov 18 11:51:19 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Wed, 18 Nov 2015 11:51:19 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1414-g6ff8890 Message-ID: <20151118165119.AB788C47F5@public.kitware.com> 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 6ff8890fbd07e4aa93a2d232fec5d28321192672 (commit) via 9af8f411fa6df6268597a0ab744048a5e6bae341 (commit) from 1835942c915892d6a27a869f49f5583de0b34284 (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=6ff8890fbd07e4aa93a2d232fec5d28321192672 commit 6ff8890fbd07e4aa93a2d232fec5d28321192672 Merge: 1835942 9af8f41 Author: Chuck Atkins AuthorDate: Wed Nov 18 11:51:18 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 11:51:18 2015 -0500 Merge topic 'add-cray-linux-platform' into next 9af8f411 Cray: Fix static / dynamic detection logic and parse more driver flags https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9af8f411fa6df6268597a0ab744048a5e6bae341 commit 9af8f411fa6df6268597a0ab744048a5e6bae341 Author: Chuck Atkins AuthorDate: Wed Nov 18 10:24:56 2015 -0600 Commit: Chuck Atkins CommitDate: Wed Nov 18 10:24:56 2015 -0600 Cray: Fix static / dynamic detection logic and parse more driver flags diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake index a78846d..1652420 100644 --- a/Modules/Platform/CrayPrgEnv.cmake +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -26,73 +26,53 @@ foreach(__lang C CXX Fortran) endforeach() # If the link type is not explicitly specified in the environment then -# the Cray wrappers assume that the code will be built staticly -if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR - (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR - ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) +# the Cray wrappers assume that the code will be built staticly so +# we check the following condition(s) are NOT met +# Compiler flags are explicitly dynamic +# Env var is dynamic and compiler flags are not explicitly static +if(NOT (((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_CXX_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_Fortran_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )")) + OR + (("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic") AND + NOT ((CMAKE_C_FLAGS MATCHES "(^| )-static($| )") OR + (CMAKE_CXX_FLAGS MATCHES "(^| )-static($| )") OR + (CMAKE_Fortran_FLAGS MATCHES "(^| )-static($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-static($| )"))))) set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") set(CMAKE_LINK_SEARCH_START_STATIC TRUE) endif() -# Parse the implicit directories used by the wrappers -get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) -foreach(__lang IN LISTS __langs) - if(__lang STREQUAL "C") - set(__empty_fname empty.c) - elseif(__lang STREQUAL CXX) - set(__empty_fname empty.cxx) - elseif(__lang STREQUAL Fortran) - set(__empty_fname empty.f90) - else() - continue() - endif() - - execute_process( - COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} - OUTPUT_VARIABLE __cray_output - ERROR_QUIET - ) - string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") - - # Parse include paths - string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") - foreach(_flag IN LISTS __cray_include_flags) - string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) - endforeach() - if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - endif() - - # Parse library paths - string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") - foreach(_flag IN LISTS __cray_library_dir_flags) - string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) +function(__cray_parse_flags_with_sep OUTPUT FLAG_TAG SEP INPUT) + string(REGEX MATCHALL "${SEP}${FLAG_TAG}([^${SEP}]+)" FLAG_ARGS "${INPUT}") + foreach(FLAG_ARG IN LISTS FLAG_ARGS) + string(REGEX REPLACE + "^${SEP}${FLAG_TAG}([^${SEP}]+)" "\\1" FLAG_VALUE + "${FLAG_ARG}") + list(APPEND ${OUTPUT} ${FLAG_VALUE}) endforeach() - if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - endif() + set(${OUTPUT} ${${OUTPUT}} PARENT_SCOPE) +endfunction() +macro(__cray_parse_flags OUTPUT FLAG_TAG INPUT) + __cray_parse_flags_with_sep(${OUTPUT} ${FLAG_TAG} " " "${INPUT}") +endmacro() - # Parse library paths - string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") - foreach(_flag IN LISTS __cray_library_flags) - string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) - endforeach() - if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) +# Remove duplicates in a list +macro(__cray_list_remove_duplicates VAR) + if(${VAR}) + list(REMOVE_DUPLICATES ${VAR}) endif() -endforeach() +endmacro() # Compute the intersection of several lists -macro(__list_intersection L_OUT L0) +function(__cray_list_intersect OUTPUT INPUT0) if(ARGC EQUAL 2) - list(APPEND ${L_OUT} ${${L0}}) + list(APPEND ${OUTPUT} ${${INPUT0}}) else() - foreach(I IN LISTS ${L0}) + foreach(I IN LISTS ${INPUT0}) set(__is_common 1) foreach(L IN LISTS ARGN) list(FIND ${L} "${I}" __idx) @@ -102,26 +82,79 @@ macro(__list_intersection L_OUT L0) endif() endforeach() if(__is_common) - list(APPEND ${L_OUT} "${I}") + list(APPEND ${OUTPUT} "${I}") endif() endforeach() endif() - if(${L_OUT}) - list(REMOVE_DUPLICATES ${L_OUT}) - endif() + set(${OUTPUT} ${${OUTPUT}} PARENT_SCOPE) +endfunction() + +macro(__cray_debug_print_list VAR) + message("${VAR}:") + foreach(I IN LISTS ${VAR}) + message(" ${I}") + endforeach() endmacro() +# Parse the implicit directories used by the wrappers +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty empty.c) + elseif(__lang STREQUAL CXX) + set(__empty empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty empty.f90) + else() + continue() + endif() + + execute_process( + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty} + OUTPUT_VARIABLE __cmd_out + ERROR_QUIET + ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty}[^\n]*" __driver "${__cmd_out}") + + # Parse include paths + set(__cray_flag_args) + __cray_parse_flags(__cray_flag_args "-I" "${__driver}") + __cray_parse_flags(__cray_flag_args "-isystem " "${__driver}") + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${__cray_flag_args}) + __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + + # Parse library paths + set(__cray_flag_args) + __cray_parse_flags(__cray_flag_args "-L" "${__driver}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${__cray_flag_args}) + __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + + # Parse libraries + set(__cray_flag_args) + __cray_parse_flags(__cray_flag_args "-l" "${__driver}") + __cray_parse_flags(__cray_linker_flags "-Wl" "${__driver}") + foreach(F IN LISTS __cray_linker_flags) + __cray_parse_flags_with_sep(__cray_flag_args "-l" "," "${F}") + endforeach() + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${__cray_flag_args}) + __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) + + __cray_debug_print_list(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + __cray_debug_print_list(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + __cray_debug_print_list(CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) +endforeach() + # Determine the common directories between all languages and add them # as system search paths -set(__cray_include_path_vars) -set(__cray_library_path_vars) +set(__cray_inc_path_vars) +set(__cray_lib_path_vars) foreach(__lang IN LISTS __langs) - list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(APPEND __cray_inc_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_lib_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) endforeach() -if(__cray_include_path_vars) - __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) +if(__cray_inc_path_vars) + __cray_list_intersect(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_inc_path_vars}) endif() -if(__cray_library_path_vars) - __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) +if(__cray_lib_path_vars) + __cray_list_intersect(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_lib_path_vars}) endif() ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayPrgEnv.cmake | 165 ++++++++++++++++++++++--------------- 1 file changed, 99 insertions(+), 66 deletions(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Wed Nov 18 13:35:48 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Wed, 18 Nov 2015 13:35:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1416-ga03222b Message-ID: <20151118183548.7BD09C4CA6@public.kitware.com> 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 a03222b0b528e2598e835d69824a5160c70ee476 (commit) via 1a4b307c15e0bd5e0eca48648fd9815d32369ff7 (commit) from 6ff8890fbd07e4aa93a2d232fec5d28321192672 (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=a03222b0b528e2598e835d69824a5160c70ee476 commit a03222b0b528e2598e835d69824a5160c70ee476 Merge: 6ff8890 1a4b307 Author: Chuck Atkins AuthorDate: Wed Nov 18 13:35:47 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 13:35:47 2015 -0500 Merge topic 'add-cray-linux-platform' into next 1a4b307c Cray: Remove debug info https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1a4b307c15e0bd5e0eca48648fd9815d32369ff7 commit 1a4b307c15e0bd5e0eca48648fd9815d32369ff7 Author: Chuck Atkins AuthorDate: Wed Nov 18 13:35:18 2015 -0500 Commit: Chuck Atkins CommitDate: Wed Nov 18 13:35:18 2015 -0500 Cray: Remove debug info diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake index 1652420..d60266b 100644 --- a/Modules/Platform/CrayPrgEnv.cmake +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -89,13 +89,6 @@ function(__cray_list_intersect OUTPUT INPUT0) set(${OUTPUT} ${${OUTPUT}} PARENT_SCOPE) endfunction() -macro(__cray_debug_print_list VAR) - message("${VAR}:") - foreach(I IN LISTS ${VAR}) - message(" ${I}") - endforeach() -endmacro() - # Parse the implicit directories used by the wrappers get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) foreach(__lang IN LISTS __langs) @@ -138,10 +131,6 @@ foreach(__lang IN LISTS __langs) endforeach() list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${__cray_flag_args}) __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) - - __cray_debug_print_list(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - __cray_debug_print_list(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - __cray_debug_print_list(CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) endforeach() # Determine the common directories between all languages and add them ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayPrgEnv.cmake | 11 ----------- 1 file changed, 11 deletions(-) hooks/post-receive -- CMake From chuck.atkins at kitware.com Wed Nov 18 13:36:16 2015 From: chuck.atkins at kitware.com (Chuck Atkins) Date: Wed, 18 Nov 2015 13:36:16 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1418-gf639bae Message-ID: <20151118183616.39B63C4CB7@public.kitware.com> 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 f639bae9e50a9317798a2a583b08dddc24f85f4e (commit) via 743fcf1e89a5e5172d46a3202b123bc441ec42ba (commit) from a03222b0b528e2598e835d69824a5160c70ee476 (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=f639bae9e50a9317798a2a583b08dddc24f85f4e commit f639bae9e50a9317798a2a583b08dddc24f85f4e Merge: a03222b 743fcf1 Author: Chuck Atkins AuthorDate: Wed Nov 18 13:36:15 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 18 13:36:15 2015 -0500 Merge topic 'add-cray-linux-platform' into next 743fcf1e Cray: Fix static / dynamic detection logic and parse more driver flags https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=743fcf1e89a5e5172d46a3202b123bc441ec42ba commit 743fcf1e89a5e5172d46a3202b123bc441ec42ba Author: Chuck Atkins AuthorDate: Wed Nov 18 10:24:56 2015 -0600 Commit: Chuck Atkins CommitDate: Wed Nov 18 13:36:00 2015 -0500 Cray: Fix static / dynamic detection logic and parse more driver flags diff --git a/Modules/Platform/CrayPrgEnv.cmake b/Modules/Platform/CrayPrgEnv.cmake index a78846d..d60266b 100644 --- a/Modules/Platform/CrayPrgEnv.cmake +++ b/Modules/Platform/CrayPrgEnv.cmake @@ -26,73 +26,53 @@ foreach(__lang C CXX Fortran) endforeach() # If the link type is not explicitly specified in the environment then -# the Cray wrappers assume that the code will be built staticly -if(NOT ((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR - (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )") OR - ("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic"))) +# the Cray wrappers assume that the code will be built staticly so +# we check the following condition(s) are NOT met +# Compiler flags are explicitly dynamic +# Env var is dynamic and compiler flags are not explicitly static +if(NOT (((CMAKE_C_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_CXX_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_Fortran_FLAGS MATCHES "(^| )-dynamic($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )")) + OR + (("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic") AND + NOT ((CMAKE_C_FLAGS MATCHES "(^| )-static($| )") OR + (CMAKE_CXX_FLAGS MATCHES "(^| )-static($| )") OR + (CMAKE_Fortran_FLAGS MATCHES "(^| )-static($| )") OR + (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-static($| )"))))) set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) set(BUILD_SHARED_LIBS FALSE CACHE BOOL "") set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") set(CMAKE_LINK_SEARCH_START_STATIC TRUE) endif() -# Parse the implicit directories used by the wrappers -get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) -foreach(__lang IN LISTS __langs) - if(__lang STREQUAL "C") - set(__empty_fname empty.c) - elseif(__lang STREQUAL CXX) - set(__empty_fname empty.cxx) - elseif(__lang STREQUAL Fortran) - set(__empty_fname empty.f90) - else() - continue() - endif() - - execute_process( - COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty_fname} - OUTPUT_VARIABLE __cray_output - ERROR_QUIET - ) - string(REGEX MATCH "(^|\n)[^\n]*${__empty_fname}[^\n]*" __cray_driver_cmd "${__cray_output}") - - # Parse include paths - string(REGEX MATCHALL " -I([^ ]+)" __cray_include_flags "${__cray_driver_cmd}") - foreach(_flag IN LISTS __cray_include_flags) - string(REGEX REPLACE "^ -I([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_dir}) +function(__cray_parse_flags_with_sep OUTPUT FLAG_TAG SEP INPUT) + string(REGEX MATCHALL "${SEP}${FLAG_TAG}([^${SEP}]+)" FLAG_ARGS "${INPUT}") + foreach(FLAG_ARG IN LISTS FLAG_ARGS) + string(REGEX REPLACE + "^${SEP}${FLAG_TAG}([^${SEP}]+)" "\\1" FLAG_VALUE + "${FLAG_ARG}") + list(APPEND ${OUTPUT} ${FLAG_VALUE}) endforeach() - if(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - endif() - - # Parse library paths - string(REGEX MATCHALL " -L([^ ]+)" __cray_library_dir_flags "${__cray_driver_cmd}") - foreach(_flag IN LISTS __cray_library_dir_flags) - string(REGEX REPLACE "^ -L([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${_dir}) - endforeach() - if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - endif() + set(${OUTPUT} ${${OUTPUT}} PARENT_SCOPE) +endfunction() +macro(__cray_parse_flags OUTPUT FLAG_TAG INPUT) + __cray_parse_flags_with_sep(${OUTPUT} ${FLAG_TAG} " " "${INPUT}") +endmacro() - # Parse library paths - string(REGEX MATCHALL " -l([^ ]+)" __cray_library_flags "${__cray_driver_cmd}") - foreach(_flag IN LISTS __cray_library_flags) - string(REGEX REPLACE "^ -l([^ ]+)" "\\1" _dir "${_flag}") - list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${_dir}) - endforeach() - if(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) - list(REMOVE_DUPLICATES CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) +# Remove duplicates in a list +macro(__cray_list_remove_duplicates VAR) + if(${VAR}) + list(REMOVE_DUPLICATES ${VAR}) endif() -endforeach() +endmacro() # Compute the intersection of several lists -macro(__list_intersection L_OUT L0) +function(__cray_list_intersect OUTPUT INPUT0) if(ARGC EQUAL 2) - list(APPEND ${L_OUT} ${${L0}}) + list(APPEND ${OUTPUT} ${${INPUT0}}) else() - foreach(I IN LISTS ${L0}) + foreach(I IN LISTS ${INPUT0}) set(__is_common 1) foreach(L IN LISTS ARGN) list(FIND ${L} "${I}" __idx) @@ -102,26 +82,68 @@ macro(__list_intersection L_OUT L0) endif() endforeach() if(__is_common) - list(APPEND ${L_OUT} "${I}") + list(APPEND ${OUTPUT} "${I}") endif() endforeach() endif() - if(${L_OUT}) - list(REMOVE_DUPLICATES ${L_OUT}) + set(${OUTPUT} ${${OUTPUT}} PARENT_SCOPE) +endfunction() + +# Parse the implicit directories used by the wrappers +get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(__lang IN LISTS __langs) + if(__lang STREQUAL "C") + set(__empty empty.c) + elseif(__lang STREQUAL CXX) + set(__empty empty.cxx) + elseif(__lang STREQUAL Fortran) + set(__empty empty.f90) + else() + continue() endif() -endmacro() + + execute_process( + COMMAND ${CMAKE_${__lang}_COMPILER} ${__verbose_flag} ${__empty} + OUTPUT_VARIABLE __cmd_out + ERROR_QUIET + ) + string(REGEX MATCH "(^|\n)[^\n]*${__empty}[^\n]*" __driver "${__cmd_out}") + + # Parse include paths + set(__cray_flag_args) + __cray_parse_flags(__cray_flag_args "-I" "${__driver}") + __cray_parse_flags(__cray_flag_args "-isystem " "${__driver}") + list(APPEND CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES ${__cray_flag_args}) + __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + + # Parse library paths + set(__cray_flag_args) + __cray_parse_flags(__cray_flag_args "-L" "${__driver}") + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES ${__cray_flag_args}) + __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + + # Parse libraries + set(__cray_flag_args) + __cray_parse_flags(__cray_flag_args "-l" "${__driver}") + __cray_parse_flags(__cray_linker_flags "-Wl" "${__driver}") + foreach(F IN LISTS __cray_linker_flags) + __cray_parse_flags_with_sep(__cray_flag_args "-l" "," "${F}") + endforeach() + list(APPEND CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES ${__cray_flag_args}) + __cray_list_remove_duplicates(CMAKE_${__lang}_IMPLICIT_LINK_LIBRARIES) +endforeach() # Determine the common directories between all languages and add them # as system search paths -set(__cray_include_path_vars) -set(__cray_library_path_vars) +set(__cray_inc_path_vars) +set(__cray_lib_path_vars) foreach(__lang IN LISTS __langs) - list(APPEND __cray_include_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) - list(APPEND __cray_library_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) + list(APPEND __cray_inc_path_vars CMAKE_${__lang}_IMPLICIT_INCLUDE_DIRECTORIES) + list(APPEND __cray_lib_path_vars CMAKE_${__lang}_IMPLICIT_LINK_DIRECTORIES) endforeach() -if(__cray_include_path_vars) - __list_intersection(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_include_path_vars}) +if(__cray_inc_path_vars) + __cray_list_intersect(CMAKE_SYSTEM_INCLUDE_PATH ${__cray_inc_path_vars}) endif() -if(__cray_library_path_vars) - __list_intersection(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_library_path_vars}) +if(__cray_lib_path_vars) + __cray_list_intersect(CMAKE_SYSTEM_LIBRARY_PATH ${__cray_lib_path_vars}) endif() ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Nov 19 00:01:09 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 19 Nov 2015 00:01:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-545-g4e333e3 Message-ID: <20151119050109.A85C4C46E2@public.kitware.com> 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, master has been updated via 4e333e3b32ba2b19b5fb07b9764264add34984b7 (commit) from 96e4a79ab1236926ac5076a47bbbc013d32c6555 (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=4e333e3b32ba2b19b5fb07b9764264add34984b7 commit 4e333e3b32ba2b19b5fb07b9764264add34984b7 Author: Kitware Robot AuthorDate: Thu Nov 19 00:01:07 2015 -0500 Commit: Kitware Robot CommitDate: Thu Nov 19 00:01:07 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index fe14462..3eb6f2e 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151118) +set(CMake_VERSION_PATCH 20151119) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 08:55:19 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 08:55:19 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1423-gced9d8a Message-ID: <20151119135519.5E250C4909@public.kitware.com> 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 ced9d8ada2bc6bb3944cac9d4814a75bbce8aa62 (commit) via cdff176f7ee487d306af138fd3e1ede340d406df (commit) via 4ba760260b95a1d23b09130df6ec3e7736af7493 (commit) via 3aec561aa20847f1e968448f96723d228e520251 (commit) via 4e333e3b32ba2b19b5fb07b9764264add34984b7 (commit) from f639bae9e50a9317798a2a583b08dddc24f85f4e (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=ced9d8ada2bc6bb3944cac9d4814a75bbce8aa62 commit ced9d8ada2bc6bb3944cac9d4814a75bbce8aa62 Merge: f639bae cdff176 Author: Brad King AuthorDate: Thu Nov 19 08:55:18 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 08:55:18 2015 -0500 Merge topic 'restore-android-no-versioned-soname' into next cdff176f Merge branch 'backport-android-no-versioned-soname' into restore-android-no-versioned-soname 4ba76026 Android: Restore generation of non-versioned soname (#15851) 3aec561a Android: Restore generation of non-versioned soname (#15851) 4e333e3b CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cdff176f7ee487d306af138fd3e1ede340d406df commit cdff176f7ee487d306af138fd3e1ede340d406df Merge: 4ba7602 3aec561 Author: Brad King AuthorDate: Thu Nov 19 08:54:54 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 08:54:54 2015 -0500 Merge branch 'backport-android-no-versioned-soname' into restore-android-no-versioned-soname https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ba760260b95a1d23b09130df6ec3e7736af7493 commit 4ba760260b95a1d23b09130df6ec3e7736af7493 Author: Brad King AuthorDate: Thu Nov 19 08:51:46 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 08:53:55 2015 -0500 Android: Restore generation of non-versioned soname (#15851) Our check of CMAKE_PLATFORM_NO_VERSIONED_SONAME, originally added by commit v3.1.0-rc1~416^2 (Add basic Android platform module, 2014-06-06), was dropped accidentally by commit v3.4.0-rc1~250^2~21 (cmGeneratorTarget: Move GetLibraryNames from cmTarget, 2015-08-04). Restore the check in the new location of the GetLibraryNames method. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 40afc0e..cc424b4 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3324,6 +3324,7 @@ void cmGeneratorTarget::GetLibraryNames(std::string& name, const char* version = this->GetProperty("VERSION"); const char* soversion = this->GetProperty("SOVERSION"); if(!this->HasSOName(config) || + this->Makefile->IsOn("CMAKE_PLATFORM_NO_VERSIONED_SONAME") || this->IsFrameworkOnApple()) { // Versioning is supported only for shared libraries and modules, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3aec561aa20847f1e968448f96723d228e520251 commit 3aec561aa20847f1e968448f96723d228e520251 Author: Brad King AuthorDate: Thu Nov 19 08:51:46 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 08:52:40 2015 -0500 Android: Restore generation of non-versioned soname (#15851) Our check of CMAKE_PLATFORM_NO_VERSIONED_SONAME, originally added by commit v3.1.0-rc1~416^2 (Add basic Android platform module, 2014-06-06), was dropped accidentally by commit v3.4.0-rc1~250^2~21 (cmGeneratorTarget: Move GetLibraryNames from cmTarget, 2015-08-04). Restore the check in the new location of the GetLibraryNames method. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 62598f4..194cd88 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2747,6 +2747,7 @@ void cmGeneratorTarget::GetLibraryNames(std::string& name, const char* version = this->GetProperty("VERSION"); const char* soversion = this->GetProperty("SOVERSION"); if(!this->HasSOName(config) || + this->Makefile->IsOn("CMAKE_PLATFORM_NO_VERSIONED_SONAME") || this->Target->IsFrameworkOnApple()) { // Versioning is supported only for shared libraries and modules, ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- Source/cmGeneratorTarget.cxx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 09:10:25 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 09:10:25 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-547-g65b9d1f Message-ID: <20151119141025.C48F1C0DE0@public.kitware.com> 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, master has been updated via 65b9d1f228efb1d028c3682ec5637f431cbc3fc5 (commit) via ca263d1d71d953630e31daa7771dde3c6835b9a2 (commit) from 4e333e3b32ba2b19b5fb07b9764264add34984b7 (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=65b9d1f228efb1d028c3682ec5637f431cbc3fc5 commit 65b9d1f228efb1d028c3682ec5637f431cbc3fc5 Merge: 4e333e3 ca263d1 Author: Brad King AuthorDate: Thu Nov 19 09:10:23 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 09:10:23 2015 -0500 Merge topic 'fix-ms-manifest-no-linker' ca263d1d MSVC: Fix linking with /MANIFEST:NO option ----------------------------------------------------------------------- Summary of changes: Source/cmcmd.cxx | 4 +++- Tests/MSManifest/Subdir/CMakeLists.txt | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 09:10:28 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 09:10:28 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-549-gdb952a5 Message-ID: <20151119141028.CECC9C1BA8@public.kitware.com> 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, master has been updated via db952a58178daebfcd821b7a7d9a7f3ee1279bc8 (commit) via b5e7b22defa353894ad999df83b90ae45f163d61 (commit) from 65b9d1f228efb1d028c3682ec5637f431cbc3fc5 (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=db952a58178daebfcd821b7a7d9a7f3ee1279bc8 commit db952a58178daebfcd821b7a7d9a7f3ee1279bc8 Merge: 65b9d1f b5e7b22 Author: Brad King AuthorDate: Thu Nov 19 09:10:27 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 09:10:27 2015 -0500 Merge topic 'FindGTest-avoid-CMP0064' b5e7b22d FindGTest: Refactor test type checks to avoid cases triggering CMP0064 ----------------------------------------------------------------------- Summary of changes: Modules/FindGTest.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 09:10:31 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 09:10:31 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-551-ge45e503 Message-ID: <20151119141031.89D2FC15DF@public.kitware.com> 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, master has been updated via e45e503f140f99f4fcf387e5359e7aba4bb1de0e (commit) via 743fcf1e89a5e5172d46a3202b123bc441ec42ba (commit) from db952a58178daebfcd821b7a7d9a7f3ee1279bc8 (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=e45e503f140f99f4fcf387e5359e7aba4bb1de0e commit e45e503f140f99f4fcf387e5359e7aba4bb1de0e Merge: db952a5 743fcf1 Author: Brad King AuthorDate: Thu Nov 19 09:10:29 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 09:10:29 2015 -0500 Merge topic 'add-cray-linux-platform' 743fcf1e Cray: Fix static / dynamic detection logic and parse more driver flags ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CrayPrgEnv.cmake | 154 +++++++++++++++++++++---------------- 1 file changed, 88 insertions(+), 66 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 09:10:51 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 09:10:51 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1427-g20de794 Message-ID: <20151119141051.2BA00C1F48@public.kitware.com> 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 20de7946aaa8b225cca300ccb2868578eca8623f (commit) via e45e503f140f99f4fcf387e5359e7aba4bb1de0e (commit) via db952a58178daebfcd821b7a7d9a7f3ee1279bc8 (commit) via 65b9d1f228efb1d028c3682ec5637f431cbc3fc5 (commit) from ced9d8ada2bc6bb3944cac9d4814a75bbce8aa62 (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=20de7946aaa8b225cca300ccb2868578eca8623f commit 20de7946aaa8b225cca300ccb2868578eca8623f Merge: ced9d8a e45e503 Author: Brad King AuthorDate: Thu Nov 19 09:10:43 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 09:10:43 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 10:24:00 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 10:24:00 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1429-g199e3b8 Message-ID: <20151119152400.A5A89C49A5@public.kitware.com> 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 199e3b8d359905d04539712cb67a8d3e2a371735 (commit) via 441dba80322ec1579b34dd64e13bcfcf004f7005 (commit) from 20de7946aaa8b225cca300ccb2868578eca8623f (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=199e3b8d359905d04539712cb67a8d3e2a371735 commit 199e3b8d359905d04539712cb67a8d3e2a371735 Merge: 20de794 441dba8 Author: Brad King AuthorDate: Thu Nov 19 10:23:59 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 10:23:59 2015 -0500 Merge topic 'fix-forced-toolchain-dialect' into next 441dba80 Project: Guess default standard dialect if compiler was forced (#15852) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=441dba80322ec1579b34dd64e13bcfcf004f7005 commit 441dba80322ec1579b34dd64e13bcfcf004f7005 Author: Brad King AuthorDate: Thu Nov 19 10:12:58 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 10:22:35 2015 -0500 Project: Guess default standard dialect if compiler was forced (#15852) Prior to commit v3.4.0-rc1~71^2 (Project: Determine default language dialect for the compiler, 2015-09-15) we always guessed the default language standard dialect based on the compiler version. This was not reliable so that commit switched to computing the default language standard dialect while detecting the compiler id. When a toolchain file uses CMakeForceCompiler to set the compiler id then the detection does not occur. Therefore commit v3.4.0-rc1~54^2 (Project: Don't require computed default dialect if compiler was forced, 2015-09-22) made the lack of detection an error only if the compiler was not forced. However, this means that projects using CMakeForceCompiler no longer even get the guess that we had before so _COMPILER does not work. Due to the sophistication of CMake's compiler detection logic projects should be ported away from using CMakeForceCompiler. In the meantime, restore a guess of the default language standard dialect when the compiler is forced. diff --git a/Modules/Compiler/AppleClang-C.cmake b/Modules/Compiler/AppleClang-C.cmake index 5908c26..1cc72c0 100644 --- a/Modules/Compiler/AppleClang-C.cmake +++ b/Modules/Compiler/AppleClang-C.cmake @@ -18,6 +18,9 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0) message(FATAL_ERROR "CMAKE_C_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_C_COMPILER_ID} (${CMAKE_C_COMPILER}) version ${CMAKE_C_COMPILER_VERSION}") endif() set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + set(CMAKE_C_STANDARD_DEFAULT 99) endif() endif() diff --git a/Modules/Compiler/AppleClang-CXX.cmake b/Modules/Compiler/AppleClang-CXX.cmake index c4e342b..95bc79a 100644 --- a/Modules/Compiler/AppleClang-CXX.cmake +++ b/Modules/Compiler/AppleClang-CXX.cmake @@ -28,6 +28,9 @@ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0) message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}") endif() set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + set(CMAKE_CXX_STANDARD_DEFAULT 98) endif() endif() diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake index a2e81c1..d8b7743 100644 --- a/Modules/Compiler/Clang-C.cmake +++ b/Modules/Compiler/Clang-C.cmake @@ -23,6 +23,13 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) message(FATAL_ERROR "CMAKE_C_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_C_COMPILER_ID} (${CMAKE_C_COMPILER}) version ${CMAKE_C_COMPILER_VERSION}") endif() set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6) + set(CMAKE_C_STANDARD_DEFAULT 11) + else() + set(CMAKE_C_STANDARD_DEFAULT 99) + endif() endif() endif() diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake index 055a8ee..6a0a5e2 100644 --- a/Modules/Compiler/Clang-CXX.cmake +++ b/Modules/Compiler/Clang-CXX.cmake @@ -37,6 +37,9 @@ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4) message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}") endif() set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + set(CMAKE_CXX_STANDARD_DEFAULT 98) endif() endif() diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake index d979fb7..2c478da 100644 --- a/Modules/Compiler/GNU-C.cmake +++ b/Modules/Compiler/GNU-C.cmake @@ -28,6 +28,13 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4) message(FATAL_ERROR "CMAKE_C_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_C_COMPILER_ID} (${CMAKE_C_COMPILER}) version ${CMAKE_C_COMPILER_VERSION}") endif() set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0) + set(CMAKE_C_STANDARD_DEFAULT 11) + else() + set(CMAKE_C_STANDARD_DEFAULT 90) + endif() endif() endif() diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index a7e71c3..e1c555b 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -40,6 +40,9 @@ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4) message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}") endif() set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + set(CMAKE_CXX_STANDARD_DEFAULT 98) endif() endif() diff --git a/Modules/Compiler/SunPro-CXX.cmake b/Modules/Compiler/SunPro-CXX.cmake index 50d68ee..b4a5591 100644 --- a/Modules/Compiler/SunPro-CXX.cmake +++ b/Modules/Compiler/SunPro-CXX.cmake @@ -42,6 +42,9 @@ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13) message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}") endif() set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) + elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) + # Compiler id was forced so just guess the default standard level. + set(CMAKE_CXX_STANDARD_DEFAULT 98) endif() endif() ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/AppleClang-C.cmake | 3 +++ Modules/Compiler/AppleClang-CXX.cmake | 3 +++ Modules/Compiler/Clang-C.cmake | 7 +++++++ Modules/Compiler/Clang-CXX.cmake | 3 +++ Modules/Compiler/GNU-C.cmake | 7 +++++++ Modules/Compiler/GNU-CXX.cmake | 3 +++ Modules/Compiler/SunPro-CXX.cmake | 3 +++ 7 files changed, 29 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 13:18:48 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 13:18:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1431-g49e1c1d Message-ID: <20151119181848.9FF8FC479F@public.kitware.com> 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 49e1c1d7819707a52a5acf37dad5457c4ea3061b (commit) via 22ff7d51595092f5e12e0d604ba5c808ca1e9447 (commit) from 199e3b8d359905d04539712cb67a8d3e2a371735 (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=49e1c1d7819707a52a5acf37dad5457c4ea3061b commit 49e1c1d7819707a52a5acf37dad5457c4ea3061b Merge: 199e3b8 22ff7d5 Author: Brad King AuthorDate: Thu Nov 19 13:18:46 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 13:18:46 2015 -0500 Merge topic 'avoid-divide-by-zero' into next 22ff7d51 cmELF: Avoid divide by zero if there are no dynamic sections https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=22ff7d51595092f5e12e0d604ba5c808ca1e9447 commit 22ff7d51595092f5e12e0d604ba5c808ca1e9447 Author: Ty Smith AuthorDate: Thu Nov 19 11:04:34 2015 -0600 Commit: Brad King CommitDate: Thu Nov 19 13:17:16 2015 -0500 cmELF: Avoid divide by zero if there are no dynamic sections diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx index d062987..37dd328 100644 --- a/Source/cmELF.cxx +++ b/Source/cmELF.cxx @@ -567,8 +567,14 @@ bool cmELFInternalImpl::LoadDynamicSection() return true; } - // Allocate the dynamic section entries. + // If there are no entries we are done. ELF_Shdr const& sec = this->SectionHeaders[this->DynamicSectionIndex]; + if(sec.sh_entsize == 0) + { + return false; + } + + // Allocate the dynamic section entries. int n = static_cast(sec.sh_size / sec.sh_entsize); this->DynamicSectionEntries.resize(n); ----------------------------------------------------------------------- Summary of changes: Source/cmELF.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 13:20:34 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 13:20:34 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1433-gf0b50da Message-ID: <20151119182034.0E5F0C488F@public.kitware.com> 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 f0b50da14d9f14b1a548784eeddfd16eedc0cfea (commit) via f5cd92a82600067835c05c7e82726161a150a50b (commit) from 49e1c1d7819707a52a5acf37dad5457c4ea3061b (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=f0b50da14d9f14b1a548784eeddfd16eedc0cfea commit f0b50da14d9f14b1a548784eeddfd16eedc0cfea Merge: 49e1c1d f5cd92a Author: Brad King AuthorDate: Thu Nov 19 13:20:33 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 13:20:33 2015 -0500 Merge topic 'avoid-divide-by-zero' into next f5cd92a8 cmELF: Avoid divide by zero if there are no dynamic section entries https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f5cd92a82600067835c05c7e82726161a150a50b commit f5cd92a82600067835c05c7e82726161a150a50b Author: Ty Smith AuthorDate: Thu Nov 19 11:04:34 2015 -0600 Commit: Brad King CommitDate: Thu Nov 19 13:20:21 2015 -0500 cmELF: Avoid divide by zero if there are no dynamic section entries diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx index d062987..37dd328 100644 --- a/Source/cmELF.cxx +++ b/Source/cmELF.cxx @@ -567,8 +567,14 @@ bool cmELFInternalImpl::LoadDynamicSection() return true; } - // Allocate the dynamic section entries. + // If there are no entries we are done. ELF_Shdr const& sec = this->SectionHeaders[this->DynamicSectionIndex]; + if(sec.sh_entsize == 0) + { + return false; + } + + // Allocate the dynamic section entries. int n = static_cast(sec.sh_size / sec.sh_entsize); this->DynamicSectionEntries.resize(n); ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From joe.snyder at kitware.com Thu Nov 19 13:38:56 2015 From: joe.snyder at kitware.com (Joe Snyder) Date: Thu, 19 Nov 2015 13:38:56 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1435-g8cebadd Message-ID: <20151119183856.1802DC4F13@public.kitware.com> 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 8cebadd7215fb67b9e2f73e341d8a04520840a04 (commit) via a7b285b07ad87bef6503aa7ededc8af6cb20540e (commit) from f0b50da14d9f14b1a548784eeddfd16eedc0cfea (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=8cebadd7215fb67b9e2f73e341d8a04520840a04 commit 8cebadd7215fb67b9e2f73e341d8a04520840a04 Merge: f0b50da a7b285b Author: Joe Snyder AuthorDate: Thu Nov 19 13:38:55 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 13:38:55 2015 -0500 Merge topic 'expand_cobertura_search' into next a7b285b0 CTest: Expand directories for Cobertura search https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a7b285b07ad87bef6503aa7ededc8af6cb20540e commit a7b285b07ad87bef6503aa7ededc8af6cb20540e Author: Joseph Snyder AuthorDate: Mon Nov 16 16:27:57 2015 -0500 Commit: Joseph Snyder CommitDate: Tue Nov 17 15:12:39 2015 -0500 CTest: Expand directories for Cobertura search Change the Cobertura handler to look for an environment variable called "COBERTURADIR" which contains the directory where the coverage.xml file is found. If that variable doesn't exist, continue to use the default of the binary directory. Update the test to use an appropriate value in the environment variables. diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 6027502..2c2cd48 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -820,11 +820,26 @@ int cmCTestCoverageHandler::HandleCoberturaCoverage( { cmParseCoberturaCoverage cov(*cont, this->CTest); - // Assume the coverage.xml is in the source directory - std::string coverageXMLFile = this->CTest->GetBinaryDir() + "/coverage.xml"; + // Assume the coverage.xml is in the binary directory + // check for the COBERTURADIR environment variable, + // if it doesn't exist or is empty, assume the + // binary directory is used. + std::string coverageXMLFile; + const char* covDir = cmSystemTools::GetEnv("COBERTURADIR"); + if(covDir && strlen(covDir) != 0) + { + coverageXMLFile = std::string(covDir); + } + else + { + coverageXMLFile = this->CTest->GetBinaryDir(); + } + // build the find file string with the directory from above + coverageXMLFile += "/coverage.xml"; if(cmSystemTools::FileExists(coverageXMLFile.c_str())) { + // If file exists, parse it cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Parsing Cobertura XML file: " << coverageXMLFile << std::endl, this->Quiet); @@ -833,7 +848,7 @@ int cmCTestCoverageHandler::HandleCoberturaCoverage( else { cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, - "Cannot find Cobertura XML file: " << coverageXMLFile + " Cannot find Cobertura XML file: " << coverageXMLFile << std::endl, this->Quiet); } return static_cast(cont->TotalCoverage.size()); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f381758..1a811f7 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -2544,7 +2544,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set_tests_properties(CTestCoberturaCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*CoverageTest.java.*Total LOC:.*18.*Percentage Coverage: 72.22.*" - ENVIRONMENT COVFILE=) + ENVIRONMENT COVFILE= + ENVIRONMENT COBERTURADIR=${CMake_BINARY_DIR}/Testing/CoberturaCoverage) # Adding a test case for JaCoCo Coverage ----------------------------------------------------------------------- Summary of changes: Source/CTest/cmCTestCoverageHandler.cxx | 21 ++++++++++++++++++--- Tests/CMakeLists.txt | 3 ++- 2 files changed, 20 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Nov 19 15:49:26 2015 From: brad.king at kitware.com (Brad King) Date: Thu, 19 Nov 2015 15:49:26 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1439-ge8f8a08 Message-ID: <20151119204926.4EB71C45BF@public.kitware.com> 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 e8f8a0805ff5cf70cd962c8365dcff47797cb45d (commit) via 3477b26ff6c455b64421bf19000d7203acdd6024 (commit) via 7d64a0598db5da2c4c1874f9fe8726fd6c9b18a7 (commit) via 866c75dedd42fae9dd05be402bdc94d51ffc7713 (commit) from 8cebadd7215fb67b9e2f73e341d8a04520840a04 (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=e8f8a0805ff5cf70cd962c8365dcff47797cb45d commit e8f8a0805ff5cf70cd962c8365dcff47797cb45d Merge: 8cebadd 3477b26 Author: Brad King AuthorDate: Thu Nov 19 15:49:24 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 15:49:24 2015 -0500 Merge topic 'ninja-symbolic-custom-command' into next 3477b26f Ninja: Always re-run custom commands that have symbolic dependencies 7d64a059 Ninja: Add 'restat' parameter to custom command generation method 866c75de Ninja: Refactor generation of 'restat' on custom commands https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3477b26ff6c455b64421bf19000d7203acdd6024 commit 3477b26ff6c455b64421bf19000d7203acdd6024 Author: Brad King AuthorDate: Thu Nov 19 15:13:11 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 15:47:41 2015 -0500 Ninja: Always re-run custom commands that have symbolic dependencies If a custom command has a SYMBOLIC output (that is never actually created) then do not mark the custom command build statement as 'restat'. Otherwise other custom commands that depend on the symbolic output may not always re-run because after running the first custom command Ninja 'restat' will detect that the output timestamp did not change and skip its dependents. This was observed with the ExternalProject BUILD_ALWAYS option where Ninja would not re-run the 'install' step each time 'build' re-runs. diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index d9517d8..b2927a9 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -398,6 +398,16 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement( const std::vector &byproducts = ccg.GetByproducts(); cmNinjaDeps ninjaOutputs(outputs.size()+byproducts.size()), ninjaDeps; + bool symbolic = false; + for (std::vector::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) + { + if (cmSourceFile* sf = this->Makefile->GetSource(*o)) + { + symbolic = sf->GetPropertyAsBool("SYMBOLIC"); + } + } + #if 0 #error TODO: Once CC in an ExternalProject target must provide the \ file of each imported target that has an add_dependencies pointing \ @@ -434,7 +444,7 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement( this->ConstructComment(ccg), "Custom command for " + ninjaOutputs[0], cc->GetUsesTerminal(), - /*restat*/true, + /*restat*/!symbolic, ninjaOutputs, ninjaDeps, orderOnlyDeps); diff --git a/Tests/RunCMake/BuildDepends/Custom-Always.cmake b/Tests/RunCMake/BuildDepends/Custom-Always.cmake new file mode 100644 index 0000000..d412708 --- /dev/null +++ b/Tests/RunCMake/BuildDepends/Custom-Always.cmake @@ -0,0 +1,24 @@ +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/before-always + COMMAND ${CMAKE_COMMAND} -E touch before-always + ) +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/always + COMMAND ${CMAKE_COMMAND} -E touch always-updated + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/before-always + ) +set_property(SOURCE always PROPERTY SYMBOLIC 1) +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/after-always + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/always + COMMAND ${CMAKE_COMMAND} -E touch after-always + ) + +add_custom_target(drive ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/after-always) + +file(GENERATE OUTPUT check-$>.cmake CONTENT " +set(check_pairs + \"${CMAKE_CURRENT_BINARY_DIR}/always-updated|${CMAKE_CURRENT_BINARY_DIR}/before-always\" + \"${CMAKE_CURRENT_BINARY_DIR}/after-always|${CMAKE_CURRENT_BINARY_DIR}/always-updated\" + ) +") diff --git a/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake b/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake index a578408..31c72fb 100644 --- a/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake +++ b/Tests/RunCMake/BuildDepends/RunCMakeTest.cmake @@ -38,3 +38,5 @@ if(NOT RunCMake_GENERATOR MATCHES "Visual Studio [67]|Xcode") run_BuildDepends(C-Exe-Manifest) unset(run_BuildDepends_skip_step_2) endif() + +run_BuildDepends(Custom-Always) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7d64a0598db5da2c4c1874f9fe8726fd6c9b18a7 commit 7d64a0598db5da2c4c1874f9fe8726fd6c9b18a7 Author: Brad King AuthorDate: Thu Nov 19 15:09:40 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 15:11:00 2015 -0500 Ninja: Add 'restat' parameter to custom command generation method Pass 'true' from all call sites to preserve existing behavior. diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 64c2625..0f06e43 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -284,6 +284,7 @@ cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command, const std::string& description, const std::string& comment, bool uses_terminal, + bool restat, const cmNinjaDeps& outputs, const cmNinjaDeps& deps, const cmNinjaDeps& orderOnly) @@ -300,7 +301,10 @@ cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command, cmNinjaVars vars; vars["COMMAND"] = cmd; vars["DESC"] = EncodeLiteral(description); - vars["restat"] = "1"; + if (restat) + { + vars["restat"] = "1"; + } if (uses_terminal && SupportsConsolePool()) { vars["pool"] = "console"; @@ -924,6 +928,7 @@ void cmGlobalNinjaGenerator::WriteAssumedSourceDependencies() WriteCustomCommandBuild(/*command=*/"", /*description=*/"", "Assume dependencies for generated source file.", /*uses_terminal*/false, + /*restat*/true, cmNinjaDeps(1, i->first), deps); } } diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index c494d36..8656590 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -112,6 +112,7 @@ public: const std::string& description, const std::string& comment, bool uses_terminal, + bool restat, const cmNinjaDeps& outputs, const cmNinjaDeps& deps = cmNinjaDeps(), const cmNinjaDeps& orderOnly = cmNinjaDeps()); diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index ecaa269..d9517d8 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -434,6 +434,7 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement( this->ConstructComment(ccg), "Custom command for " + ninjaOutputs[0], cc->GetUsesTerminal(), + /*restat*/true, ninjaOutputs, ninjaDeps, orderOnlyDeps); diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx index edc65f0..ac66fcd 100644 --- a/Source/cmNinjaUtilityTargetGenerator.cxx +++ b/Source/cmNinjaUtilityTargetGenerator.cxx @@ -131,6 +131,7 @@ void cmNinjaUtilityTargetGenerator::Generate() desc, "Utility command for " + this->GetTargetName(), uses_terminal, + /*restat*/true, util_outputs, deps); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=866c75dedd42fae9dd05be402bdc94d51ffc7713 commit 866c75dedd42fae9dd05be402bdc94d51ffc7713 Author: Brad King AuthorDate: Thu Nov 19 14:47:36 2015 -0500 Commit: Brad King CommitDate: Thu Nov 19 14:51:24 2015 -0500 Ninja: Refactor generation of 'restat' on custom commands Move generation of 'restat = 1' from the CUSTOM_COMMAND rule to every build statement using it. This will allow future selection of this option on a per-custom-command basis. diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index a8a307c..64c2625 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -275,7 +275,7 @@ void cmGlobalNinjaGenerator::AddCustomCommandRule() /*deptype*/ "", /*rspfile*/ "", /*rspcontent*/ "", - /*restat*/ "1", + /*restat*/ "", // bound on each build statement as needed /*generator*/ false); } @@ -300,6 +300,7 @@ cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command, cmNinjaVars vars; vars["COMMAND"] = cmd; vars["DESC"] = EncodeLiteral(description); + vars["restat"] = "1"; if (uses_terminal && SupportsConsolePool()) { vars["pool"] = "console"; ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalNinjaGenerator.cxx | 8 +++++++- Source/cmGlobalNinjaGenerator.h | 1 + Source/cmLocalNinjaGenerator.cxx | 11 +++++++++++ Source/cmNinjaUtilityTargetGenerator.cxx | 1 + Tests/RunCMake/BuildDepends/Custom-Always.cmake | 24 +++++++++++++++++++++++ Tests/RunCMake/BuildDepends/RunCMakeTest.cmake | 2 ++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/BuildDepends/Custom-Always.cmake hooks/post-receive -- CMake From bill.hoffman at kitware.com Thu Nov 19 17:24:21 2015 From: bill.hoffman at kitware.com (Bill Hoffman) Date: Thu, 19 Nov 2015 17:24:21 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1441-gacb550c Message-ID: <20151119222421.3B2B3C49D7@public.kitware.com> 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 acb550c33e9b1c6a19fb7fb9d691bd45bd8ec795 (commit) via 75004280af22edd22a3efb7b47d5d87f2da65354 (commit) from e8f8a0805ff5cf70cd962c8365dcff47797cb45d (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=acb550c33e9b1c6a19fb7fb9d691bd45bd8ec795 commit acb550c33e9b1c6a19fb7fb9d691bd45bd8ec795 Merge: e8f8a08 7500428 Author: Bill Hoffman AuthorDate: Thu Nov 19 17:24:20 2015 -0500 Commit: CMake Topic Stage CommitDate: Thu Nov 19 17:24:20 2015 -0500 Merge topic 'fix_bigobj_64_autodef' into next 75004280 Fix auto export symbols for Dlls containing /bigobj for 64bit builds. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=75004280af22edd22a3efb7b47d5d87f2da65354 commit 75004280af22edd22a3efb7b47d5d87f2da65354 Author: Bill Hoffman AuthorDate: Thu Nov 19 17:21:03 2015 -0500 Commit: Bill Hoffman CommitDate: Thu Nov 19 17:21:03 2015 -0500 Fix auto export symbols for Dlls containing /bigobj for 64bit builds. This fixes a bug where 64 bit builds with /bigobj incorrectly determined that the object files were not 64 bit. This manifested itself with printf type functions showing up as undefined because the leading underscore was being removed and should not be removed. diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index 64621e0..e7263ae 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -422,7 +422,7 @@ DumpFile(const char* filename, DumpSymbols symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, symbols, dataSymbols, - (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); + (h->Machine == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { printf("unrecognized file format in '%s'\n", filename); diff --git a/Tests/RunCMake/AutoExportDll/sub/sub.cxx b/Tests/RunCMake/AutoExportDll/sub/sub.cxx index 9766b41..9a3145e 100644 --- a/Tests/RunCMake/AutoExportDll/sub/sub.cxx +++ b/Tests/RunCMake/AutoExportDll/sub/sub.cxx @@ -1,4 +1,6 @@ +#include int sub() { + printf(""); return 10; } ----------------------------------------------------------------------- Summary of changes: Source/bindexplib.cxx | 2 +- Tests/RunCMake/AutoExportDll/sub/sub.cxx | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Nov 20 00:01:12 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 20 Nov 2015 00:01:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-552-g193987d Message-ID: <20151120050113.0888AC4B95@public.kitware.com> 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, master has been updated via 193987d34477858470fef68cb8d34764a660acc2 (commit) from e45e503f140f99f4fcf387e5359e7aba4bb1de0e (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=193987d34477858470fef68cb8d34764a660acc2 commit 193987d34477858470fef68cb8d34764a660acc2 Author: Kitware Robot AuthorDate: Fri Nov 20 00:01:08 2015 -0500 Commit: Kitware Robot CommitDate: Fri Nov 20 00:01:08 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 3eb6f2e..bedf0b2 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151119) +set(CMake_VERSION_PATCH 20151120) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:51:25 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:51:25 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1444-gec64904 Message-ID: <20151120135125.8CE8FC4913@public.kitware.com> 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 ec649040592ea1ae06b02c3a9665f72f9ffbe6a5 (commit) via 65b866122184e1a791127dc77fcd3b937ff5dbb9 (commit) via c7ddc5f43821039f4c005271912da30ba0f213db (commit) from acb550c33e9b1c6a19fb7fb9d691bd45bd8ec795 (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=ec649040592ea1ae06b02c3a9665f72f9ffbe6a5 commit ec649040592ea1ae06b02c3a9665f72f9ffbe6a5 Merge: acb550c 65b8661 Author: Brad King AuthorDate: Fri Nov 20 08:51:24 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 08:51:24 2015 -0500 Merge topic 'fix-autodef-bigobj-64' into next 65b86612 Merge branch 'backport-fix-autodef-bigobj-64' into fix-autodef-bigobj-64 c7ddc5f4 Fix auto export symbols for Dlls containing /bigobj for 64bit builds. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=65b866122184e1a791127dc77fcd3b937ff5dbb9 commit 65b866122184e1a791127dc77fcd3b937ff5dbb9 Merge: 7500428 c7ddc5f Author: Brad King AuthorDate: Fri Nov 20 08:48:30 2015 -0500 Commit: Brad King CommitDate: Fri Nov 20 08:48:30 2015 -0500 Merge branch 'backport-fix-autodef-bigobj-64' into fix-autodef-bigobj-64 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c7ddc5f43821039f4c005271912da30ba0f213db commit c7ddc5f43821039f4c005271912da30ba0f213db Author: Bill Hoffman AuthorDate: Thu Nov 19 17:21:03 2015 -0500 Commit: Brad King CommitDate: Fri Nov 20 08:43:58 2015 -0500 Fix auto export symbols for Dlls containing /bigobj for 64bit builds. This fixes a bug where 64 bit builds with /bigobj incorrectly determined that the object files were not 64 bit. This manifested itself with printf type functions showing up as undefined because the leading underscore was being removed and should not be removed. diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index dc4db63..b250842 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -425,7 +425,7 @@ DumpFile(const char* filename, FILE *fout) if(h->Sig1 == 0x0 && h->Sig2 == 0xffff) { DumpSymbols symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, fout, - (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); + (h->Machine == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { printf("unrecognized file format in '%s'\n", filename); diff --git a/Tests/RunCMake/AutoExportDll/sub/sub.cxx b/Tests/RunCMake/AutoExportDll/sub/sub.cxx index 9766b41..9a3145e 100644 --- a/Tests/RunCMake/AutoExportDll/sub/sub.cxx +++ b/Tests/RunCMake/AutoExportDll/sub/sub.cxx @@ -1,4 +1,6 @@ +#include int sub() { + printf(""); return 10; } ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:53:06 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:53:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-554-g1ccb417 Message-ID: <20151120135306.EF377C4A54@public.kitware.com> 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, master has been updated via 1ccb417d61e08b69606a9d66b8ae4244f0b051d5 (commit) via 441dba80322ec1579b34dd64e13bcfcf004f7005 (commit) from 193987d34477858470fef68cb8d34764a660acc2 (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=1ccb417d61e08b69606a9d66b8ae4244f0b051d5 commit 1ccb417d61e08b69606a9d66b8ae4244f0b051d5 Merge: 193987d 441dba8 Author: Brad King AuthorDate: Fri Nov 20 08:53:05 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 08:53:05 2015 -0500 Merge topic 'fix-forced-toolchain-dialect' 441dba80 Project: Guess default standard dialect if compiler was forced (#15852) ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/AppleClang-C.cmake | 3 +++ Modules/Compiler/AppleClang-CXX.cmake | 3 +++ Modules/Compiler/Clang-C.cmake | 7 +++++++ Modules/Compiler/Clang-CXX.cmake | 3 +++ Modules/Compiler/GNU-C.cmake | 7 +++++++ Modules/Compiler/GNU-CXX.cmake | 3 +++ Modules/Compiler/SunPro-CXX.cmake | 3 +++ 7 files changed, 29 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:53:09 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:53:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-558-g67248ba Message-ID: <20151120135309.D1EBEC4A5C@public.kitware.com> 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, master has been updated via 67248baaf98c3c8555dfa85f532c6a840eab10b6 (commit) via cdff176f7ee487d306af138fd3e1ede340d406df (commit) via 4ba760260b95a1d23b09130df6ec3e7736af7493 (commit) via 3aec561aa20847f1e968448f96723d228e520251 (commit) from 1ccb417d61e08b69606a9d66b8ae4244f0b051d5 (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=67248baaf98c3c8555dfa85f532c6a840eab10b6 commit 67248baaf98c3c8555dfa85f532c6a840eab10b6 Merge: 1ccb417 cdff176 Author: Brad King AuthorDate: Fri Nov 20 08:53:08 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 08:53:08 2015 -0500 Merge topic 'restore-android-no-versioned-soname' cdff176f Merge branch 'backport-android-no-versioned-soname' into restore-android-no-versioned-soname 4ba76026 Android: Restore generation of non-versioned soname (#15851) 3aec561a Android: Restore generation of non-versioned soname (#15851) ----------------------------------------------------------------------- Summary of changes: Source/cmGeneratorTarget.cxx | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:53:12 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:53:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-560-gd1f4b6b Message-ID: <20151120135312.991E2C4A62@public.kitware.com> 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, master has been updated via d1f4b6b501f477a0ed9af4abadc5995b835b5ba2 (commit) via f5cd92a82600067835c05c7e82726161a150a50b (commit) from 67248baaf98c3c8555dfa85f532c6a840eab10b6 (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=d1f4b6b501f477a0ed9af4abadc5995b835b5ba2 commit d1f4b6b501f477a0ed9af4abadc5995b835b5ba2 Merge: 67248ba f5cd92a Author: Brad King AuthorDate: Fri Nov 20 08:53:10 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 08:53:10 2015 -0500 Merge topic 'avoid-divide-by-zero' f5cd92a8 cmELF: Avoid divide by zero if there are no dynamic section entries ----------------------------------------------------------------------- Summary of changes: Source/cmELF.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:53:15 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:53:15 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-564-g7171f64 Message-ID: <20151120135315.B68B3C4A80@public.kitware.com> 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, master has been updated via 7171f64cc108dfb4072def578ef38ed8ce99187b (commit) via 65b866122184e1a791127dc77fcd3b937ff5dbb9 (commit) via c7ddc5f43821039f4c005271912da30ba0f213db (commit) via 75004280af22edd22a3efb7b47d5d87f2da65354 (commit) from d1f4b6b501f477a0ed9af4abadc5995b835b5ba2 (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=7171f64cc108dfb4072def578ef38ed8ce99187b commit 7171f64cc108dfb4072def578ef38ed8ce99187b Merge: d1f4b6b 65b8661 Author: Brad King AuthorDate: Fri Nov 20 08:53:13 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 08:53:13 2015 -0500 Merge topic 'fix-autodef-bigobj-64' 65b86612 Merge branch 'backport-fix-autodef-bigobj-64' into fix-autodef-bigobj-64 c7ddc5f4 Fix auto export symbols for Dlls containing /bigobj for 64bit builds. 75004280 Fix auto export symbols for Dlls containing /bigobj for 64bit builds. ----------------------------------------------------------------------- Summary of changes: Source/bindexplib.cxx | 2 +- Tests/RunCMake/AutoExportDll/sub/sub.cxx | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:53:18 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:53:18 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-568-gb6f4717 Message-ID: <20151120135318.E7CC7C4A80@public.kitware.com> 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, master has been updated via b6f471773d943bfb0f5cc012bce3fd25f5f9f7fa (commit) via 3477b26ff6c455b64421bf19000d7203acdd6024 (commit) via 7d64a0598db5da2c4c1874f9fe8726fd6c9b18a7 (commit) via 866c75dedd42fae9dd05be402bdc94d51ffc7713 (commit) from 7171f64cc108dfb4072def578ef38ed8ce99187b (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=b6f471773d943bfb0f5cc012bce3fd25f5f9f7fa commit b6f471773d943bfb0f5cc012bce3fd25f5f9f7fa Merge: 7171f64 3477b26 Author: Brad King AuthorDate: Fri Nov 20 08:53:17 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 08:53:17 2015 -0500 Merge topic 'ninja-symbolic-custom-command' 3477b26f Ninja: Always re-run custom commands that have symbolic dependencies 7d64a059 Ninja: Add 'restat' parameter to custom command generation method 866c75de Ninja: Refactor generation of 'restat' on custom commands ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalNinjaGenerator.cxx | 8 +++++++- Source/cmGlobalNinjaGenerator.h | 1 + Source/cmLocalNinjaGenerator.cxx | 11 +++++++++++ Source/cmNinjaUtilityTargetGenerator.cxx | 1 + Tests/RunCMake/BuildDepends/Custom-Always.cmake | 24 +++++++++++++++++++++++ Tests/RunCMake/BuildDepends/RunCMakeTest.cmake | 2 ++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/BuildDepends/Custom-Always.cmake hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 08:53:39 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 08:53:39 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1451-g230be56 Message-ID: <20151120135339.47293C4AB3@public.kitware.com> 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 230be56f8a16737754085a2c26ba382c43ff21c9 (commit) via b6f471773d943bfb0f5cc012bce3fd25f5f9f7fa (commit) via 7171f64cc108dfb4072def578ef38ed8ce99187b (commit) via d1f4b6b501f477a0ed9af4abadc5995b835b5ba2 (commit) via 67248baaf98c3c8555dfa85f532c6a840eab10b6 (commit) via 1ccb417d61e08b69606a9d66b8ae4244f0b051d5 (commit) via 193987d34477858470fef68cb8d34764a660acc2 (commit) from ec649040592ea1ae06b02c3a9665f72f9ffbe6a5 (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=230be56f8a16737754085a2c26ba382c43ff21c9 commit 230be56f8a16737754085a2c26ba382c43ff21c9 Merge: ec64904 b6f4717 Author: Brad King AuthorDate: Fri Nov 20 08:53:29 2015 -0500 Commit: Brad King CommitDate: Fri Nov 20 08:53:29 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 09:00:33 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 09:00:33 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-572-g5bba043 Message-ID: <20151120140033.C83ADC4D1D@public.kitware.com> 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, master has been updated via 5bba0432f4448f5bf3fcc281ce42bc935634ca5d (commit) via 59b6d8a81bc4f975664a1b04cd349235e5a152b7 (commit) via ce7da2dec4939b56128f7d05d008069d44ec506b (commit) via e32c903057774ba34de7ed2292b6156f9cf58c5e (commit) from b6f471773d943bfb0f5cc012bce3fd25f5f9f7fa (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 09:00:33 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 09:00:33 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1456-gd2c6fb2 Message-ID: <20151120140033.F20FFC4D1F@public.kitware.com> 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 d2c6fb212b40a79e8496b84fe109de36d8f8272e (commit) via 5bba0432f4448f5bf3fcc281ce42bc935634ca5d (commit) via 59b6d8a81bc4f975664a1b04cd349235e5a152b7 (commit) via ce7da2dec4939b56128f7d05d008069d44ec506b (commit) via e32c903057774ba34de7ed2292b6156f9cf58c5e (commit) from 230be56f8a16737754085a2c26ba382c43ff21c9 (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=d2c6fb212b40a79e8496b84fe109de36d8f8272e commit d2c6fb212b40a79e8496b84fe109de36d8f8272e Merge: 230be56 5bba043 Author: Brad King AuthorDate: Fri Nov 20 09:00:08 2015 -0500 Commit: Brad King CommitDate: Fri Nov 20 09:00:08 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Nov 20 09:00:34 2015 From: brad.king at kitware.com (Brad King) Date: Fri, 20 Nov 2015 09:00:34 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-10-g59b6d8a Message-ID: <20151120140034.160C3C4D20@public.kitware.com> 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, release has been updated via 59b6d8a81bc4f975664a1b04cd349235e5a152b7 (commit) via 3aec561aa20847f1e968448f96723d228e520251 (commit) via ce7da2dec4939b56128f7d05d008069d44ec506b (commit) via b5e7b22defa353894ad999df83b90ae45f163d61 (commit) via e32c903057774ba34de7ed2292b6156f9cf58c5e (commit) via ca263d1d71d953630e31daa7771dde3c6835b9a2 (commit) from daa72b253a5d07b985653c4ce1d2a7a647129e43 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindGTest.cmake | 6 +++--- Source/cmGeneratorTarget.cxx | 1 + Source/cmcmd.cxx | 4 +++- Tests/MSManifest/Subdir/CMakeLists.txt | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From joe.snyder at kitware.com Fri Nov 20 09:42:56 2015 From: joe.snyder at kitware.com (Joe Snyder) Date: Fri, 20 Nov 2015 09:42:56 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1458-g20f70b2 Message-ID: <20151120144256.6DF43C45B6@public.kitware.com> 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 20f70b2dcaea62a60cf8fa30d1996ee32e7e3fb5 (commit) via 19745918026efa558514cfd6959dae0d7942bb2f (commit) from d2c6fb212b40a79e8496b84fe109de36d8f8272e (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=20f70b2dcaea62a60cf8fa30d1996ee32e7e3fb5 commit 20f70b2dcaea62a60cf8fa30d1996ee32e7e3fb5 Merge: d2c6fb2 1974591 Author: Joe Snyder AuthorDate: Fri Nov 20 09:42:55 2015 -0500 Commit: CMake Topic Stage CommitDate: Fri Nov 20 09:42:55 2015 -0500 Merge topic 'expand_cobertura_search' into next 19745918 CTest: Swap ENVIRONMENT tags in test properties https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=19745918026efa558514cfd6959dae0d7942bb2f commit 19745918026efa558514cfd6959dae0d7942bb2f Author: Joseph Snyder AuthorDate: Fri Nov 20 09:40:26 2015 -0500 Commit: Joseph Snyder CommitDate: Fri Nov 20 09:40:26 2015 -0500 CTest: Swap ENVIRONMENT tags in test properties Switch the placement of the two ENVIRONMENT tags in the properties of the Cobertura Test. The first ordering allowed a sysyem COVFILE environment variable to be captured when it is not needed. diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 1a811f7..dd766ae 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -2544,8 +2544,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set_tests_properties(CTestCoberturaCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*CoverageTest.java.*Total LOC:.*18.*Percentage Coverage: 72.22.*" - ENVIRONMENT COVFILE= - ENVIRONMENT COBERTURADIR=${CMake_BINARY_DIR}/Testing/CoberturaCoverage) + ENVIRONMENT COBERTURADIR=${CMake_BINARY_DIR}/Testing/CoberturaCoverage + ENVIRONMENT COVFILE=) # Adding a test case for JaCoCo Coverage ----------------------------------------------------------------------- Summary of changes: Tests/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Nov 21 00:01:12 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 21 Nov 2015 00:01:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-573-g6c24ca9 Message-ID: <20151121050114.6C2E6C4ADD@public.kitware.com> 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, master has been updated via 6c24ca93a6ec6c6d5bdf102dd6985130ffe85090 (commit) from 5bba0432f4448f5bf3fcc281ce42bc935634ca5d (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=6c24ca93a6ec6c6d5bdf102dd6985130ffe85090 commit 6c24ca93a6ec6c6d5bdf102dd6985130ffe85090 Author: Kitware Robot AuthorDate: Sat Nov 21 00:01:09 2015 -0500 Commit: Kitware Robot CommitDate: Sat Nov 21 00:01:09 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index bedf0b2..bc3caf5 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151120) +set(CMake_VERSION_PATCH 20151121) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Nov 22 00:01:09 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 22 Nov 2015 00:01:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-574-g1aae378 Message-ID: <20151122050109.AA3FBC4DA3@public.kitware.com> 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, master has been updated via 1aae378848e1168a46627df8831df5297770fadb (commit) from 6c24ca93a6ec6c6d5bdf102dd6985130ffe85090 (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=1aae378848e1168a46627df8831df5297770fadb commit 1aae378848e1168a46627df8831df5297770fadb Author: Kitware Robot AuthorDate: Sun Nov 22 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Sun Nov 22 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index bc3caf5..43c0e57 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151121) +set(CMake_VERSION_PATCH 20151122) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Nov 23 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 23 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-575-gdbef224 Message-ID: <20151123050108.20A6AC4B23@public.kitware.com> 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, master has been updated via dbef2244f97e266896f71729d0de5eeb80c1c5f9 (commit) from 1aae378848e1168a46627df8831df5297770fadb (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=dbef2244f97e266896f71729d0de5eeb80c1c5f9 commit dbef2244f97e266896f71729d0de5eeb80c1c5f9 Author: Kitware Robot AuthorDate: Mon Nov 23 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Mon Nov 23 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 43c0e57..1ad15fc 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151122) +set(CMake_VERSION_PATCH 20151123) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 10:05:10 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 10:05:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1463-g881bf21 Message-ID: <20151123150510.5F7A0C5226@public.kitware.com> 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 881bf217627b0c5b7fbf18bbe2f3282cfc832209 (commit) via 5d74c870d907eed9afc9c544e7e6786fd1ea53c8 (commit) via dbef2244f97e266896f71729d0de5eeb80c1c5f9 (commit) via 1aae378848e1168a46627df8831df5297770fadb (commit) via 6c24ca93a6ec6c6d5bdf102dd6985130ffe85090 (commit) from 20f70b2dcaea62a60cf8fa30d1996ee32e7e3fb5 (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=881bf217627b0c5b7fbf18bbe2f3282cfc832209 commit 881bf217627b0c5b7fbf18bbe2f3282cfc832209 Merge: 20f70b2 5d74c87 Author: Brad King AuthorDate: Mon Nov 23 10:05:09 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 10:05:09 2015 -0500 Merge topic 'doc-ios-support' into next 5d74c870 Help: Update documentation to reflect support for iOS dbef2244 CMake Nightly Date Stamp 1aae3788 CMake Nightly Date Stamp 6c24ca93 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5d74c870d907eed9afc9c544e7e6786fd1ea53c8 commit 5d74c870d907eed9afc9c544e7e6786fd1ea53c8 Author: Bartosz Kosiorek AuthorDate: Wed Nov 11 05:37:15 2015 +0100 Commit: Brad King CommitDate: Mon Nov 23 10:04:10 2015 -0500 Help: Update documentation to reflect support for iOS Many of our interfaces documented for OS X also work for iOS. diff --git a/Help/manual/cmake-buildsystem.7.rst b/Help/manual/cmake-buildsystem.7.rst index bc633e6..4a04f31 100644 --- a/Help/manual/cmake-buildsystem.7.rst +++ b/Help/manual/cmake-buildsystem.7.rst @@ -95,15 +95,18 @@ Apple Frameworks """""""""""""""" A ``SHARED`` library may be marked with the :prop_tgt:`FRAMEWORK` -target property to create an OS X Framework: +target property to create an OS X or iOS Framework Bundle. +The ``MACOSX_FRAMEWORK_IDENTIFIER`` sets ``CFBundleIdentifier`` key +and it uniquely identifies the bundle. .. code-block:: cmake add_library(MyFramework SHARED MyFramework.cpp) set_target_properties(MyFramework PROPERTIES - FRAMEWORK 1 + FRAMEWORK TRUE FRAMEWORK_VERSION A - ) + MACOSX_FRAMEWORK_IDENTIFIER org.cmake.MyFramework + ) .. _`Object Libraries`: diff --git a/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst b/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst index 27f2929..69cdcb7 100644 --- a/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst +++ b/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst @@ -1,19 +1,23 @@ MACOSX_PACKAGE_LOCATION ----------------------- -Place a source file inside a Mac OS X bundle, CFBundle, or framework. +Place a source file inside a Application Bundle +(:prop_tgt:`MACOSX_BUNDLE`), Core Foundation Bundle (:prop_tgt:`BUNDLE`), +or Framework Bundle (:prop_tgt:`FRAMEWORK`). It is applicable for OS X +and iOS. -Executable targets with the MACOSX_BUNDLE property set are built as -Mac OS X application bundles on Apple platforms. Shared library -targets with the FRAMEWORK property set are built as Mac OS X -frameworks on Apple platforms. Module library targets with the BUNDLE -property set are built as Mac OS X CFBundle bundles on Apple -platforms. Source files listed in the target with this property set -will be copied to a directory inside the bundle or framework content -folder specified by the property value. For bundles the content -folder is ".app/Contents". For frameworks the content folder is -".framework/Versions/". For cfbundles the content -folder is ".bundle/Contents" (unless the extension is changed). -See the PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE target properties -for specifying files meant for Headers, PrivateHeaders, or Resources -directories. +Executable targets with the :prop_tgt:`MACOSX_BUNDLE` property set are +built as OS X or iOS application bundles on Apple platforms. Shared +library targets with the :prop_tgt:`FRAMEWORK` property set are built as +OS X or iOS frameworks on Apple platforms. Module library targets with +the :prop_tgt:`BUNDLE` property set are built as OS X ``CFBundle`` bundles +on Apple platforms. Source files listed in the target with this property +set will be copied to a directory inside the bundle or framework content +folder specified by the property value. For OS X Application Bundles the +content folder is ``.app/Contents``. For OS X Frameworks the +content folder is ``.framework/Versions/``. For OS X +CFBundles the content folder is ``.bundle/Contents`` (unless the +extension is changed). See the :prop_tgt:`PUBLIC_HEADER`, +:prop_tgt:`PRIVATE_HEADER`, and :prop_tgt:`RESOURCE` target properties for +specifying files meant for ``Headers``, ``PrivateHeaders``, or +``Resources`` directories. diff --git a/Help/prop_tgt/BUNDLE.rst b/Help/prop_tgt/BUNDLE.rst index 166659f..075f017 100644 --- a/Help/prop_tgt/BUNDLE.rst +++ b/Help/prop_tgt/BUNDLE.rst @@ -1,9 +1,9 @@ BUNDLE ------ -This target is a CFBundle on the Mac. +This target is a ``CFBundle`` on the OS X. If a module library target has this property set to true it will be -built as a CFBundle when built on the mac. It will have the directory -structure required for a CFBundle and will be suitable to be used for +built as a ``CFBundle`` when built on the mac. It will have the directory +structure required for a ``CFBundle`` and will be suitable to be used for creating Browser Plugins or other application resources. diff --git a/Help/prop_tgt/BUNDLE_EXTENSION.rst b/Help/prop_tgt/BUNDLE_EXTENSION.rst index 94ac935..ea265b3 100644 --- a/Help/prop_tgt/BUNDLE_EXTENSION.rst +++ b/Help/prop_tgt/BUNDLE_EXTENSION.rst @@ -1,7 +1,7 @@ BUNDLE_EXTENSION ---------------- -The file extension used to name a BUNDLE target on the Mac. +The file extension used to name a :prop_tgt:`BUNDLE` target on the OS X and iOS. -The default value is "bundle" - you can also use "plugin" or whatever +The default value is ``bundle`` - you can also use ``plugin`` or whatever file extension is required by the host app for your bundle. diff --git a/Help/prop_tgt/ENABLE_EXPORTS.rst b/Help/prop_tgt/ENABLE_EXPORTS.rst index dfd4af7..9e22309 100644 --- a/Help/prop_tgt/ENABLE_EXPORTS.rst +++ b/Help/prop_tgt/ENABLE_EXPORTS.rst @@ -12,9 +12,9 @@ dependency on the executable is created for targets that link to it. For DLL platforms an import library will be created for the exported symbols and then used for linking. All Windows-based systems including Cygwin are DLL platforms. For non-DLL platforms that -require all symbols to be resolved at link time, such as Mac OS X, the +require all symbols to be resolved at link time, such as OS X, the module will "link" to the executable using a flag like -"-bundle_loader". For other non-DLL platforms the link rule is simply +``-bundle_loader``. For other non-DLL platforms the link rule is simply ignored since the dynamic loader will automatically bind symbols when the module is loaded. diff --git a/Help/prop_tgt/FRAMEWORK.rst b/Help/prop_tgt/FRAMEWORK.rst index dcb6d3b..6c212c3 100644 --- a/Help/prop_tgt/FRAMEWORK.rst +++ b/Help/prop_tgt/FRAMEWORK.rst @@ -1,11 +1,31 @@ FRAMEWORK --------- -This target is a framework on the Mac. +Build ``SHARED`` library as Framework Bundle on the OS X and iOS. -If a shared library target has this property set to true it will be -built as a framework when built on the mac. It will have the +If a ``SHARED`` library target has this property set to ``TRUE`` it will be +built as a framework when built on the OS X and iOS. It will have the directory structure required for a framework and will be suitable to be used with the ``-framework`` option -See also the :prop_tgt:`FRAMEWORK_VERSION` target property. +To customize ``Info.plist`` file in the framework, use +:prop_tgt:`MACOSX_FRAMEWORK_INFO_PLIST` target property. + +For OS X see also the :prop_tgt:`FRAMEWORK_VERSION` target property. + +Example of creation ``dynamicFramework``: + +.. code-block:: cmake + + add_library(dynamicFramework SHARED + dynamicFramework.c + dynamicFramework.h + ) + set_target_properties(dynamicFramework PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION C + MACOSX_FRAMEWORK_IDENTIFIER com.cmake.dynamicFramework + MACOSX_FRAMEWORK_INFO_PLIST Info.plist + PUBLIC_HEADER dynamicFramework.h + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" + ) diff --git a/Help/prop_tgt/FRAMEWORK_VERSION.rst b/Help/prop_tgt/FRAMEWORK_VERSION.rst index bf650a7..6aa3026 100644 --- a/Help/prop_tgt/FRAMEWORK_VERSION.rst +++ b/Help/prop_tgt/FRAMEWORK_VERSION.rst @@ -3,3 +3,6 @@ FRAMEWORK_VERSION Version of a framework created using the :prop_tgt:`FRAMEWORK` target property (e.g. ``A``). + +This property only affects OS X, as iOS doesn't have versioned +directory structure. diff --git a/Help/prop_tgt/MACOSX_BUNDLE.rst b/Help/prop_tgt/MACOSX_BUNDLE.rst index ff21e61..8d7d914 100644 --- a/Help/prop_tgt/MACOSX_BUNDLE.rst +++ b/Help/prop_tgt/MACOSX_BUNDLE.rst @@ -1,12 +1,12 @@ MACOSX_BUNDLE ------------- -Build an executable as an application bundle on Mac OS X. +Build an executable as an Application Bundle on OS X or iOS. -When this property is set to true the executable when built on Mac OS -X will be created as an application bundle. This makes it a GUI -executable that can be launched from the Finder. See the -MACOSX_BUNDLE_INFO_PLIST target property for information about -creation of the Info.plist file for the application bundle. This -property is initialized by the value of the variable -CMAKE_MACOSX_BUNDLE if it is set when a target is created. +When this property is set to true the executable when built on OS X +or iOS will be created as an application bundle. This makes it +a GUI executable that can be launched from the Finder. See the +:prop_tgt:`MACOSX_FRAMEWORK_INFO_PLIST` target property for information about +creation of the ``Info.plist`` file for the application bundle. +This property is initialized by the value of the variable +:variable:`CMAKE_MACOSX_BUNDLE` if it is set when a target is created. diff --git a/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst b/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst index 07a933f..8515acc 100644 --- a/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst +++ b/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst @@ -1,10 +1,10 @@ MACOSX_BUNDLE_INFO_PLIST ------------------------ -Specify a custom ``Info.plist`` template for a Mac OS X App Bundle. +Specify a custom ``Info.plist`` template for a OS X and iOS Application Bundle. An executable target with :prop_tgt:`MACOSX_BUNDLE` enabled will be built as an -application bundle on Mac OS X. By default its ``Info.plist`` file is created +application bundle on OS X. By default its ``Info.plist`` file is created by configuring a template called ``MacOSXBundleInfo.plist.in`` located in the :variable:`CMAKE_MODULE_PATH`. This property specifies an alternative template file name which may be a full path. diff --git a/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst b/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst index 548c3ac..58f31d4 100644 --- a/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst +++ b/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst @@ -1,10 +1,10 @@ MACOSX_FRAMEWORK_INFO_PLIST --------------------------- -Specify a custom ``Info.plist`` template for a Mac OS X Framework. +Specify a custom ``Info.plist`` template for a OS X and iOS Framework. A library target with :prop_tgt:`FRAMEWORK` enabled will be built as a -framework on Mac OS X. By default its ``Info.plist`` file is created by +framework on OS X. By default its ``Info.plist`` file is created by configuring a template called ``MacOSXFrameworkInfo.plist.in`` located in the :variable:`CMAKE_MODULE_PATH`. This property specifies an alternative template file name which may be a full path. diff --git a/Help/prop_tgt/MACOSX_RPATH.rst b/Help/prop_tgt/MACOSX_RPATH.rst index 1c503d1..41bb8cc 100644 --- a/Help/prop_tgt/MACOSX_RPATH.rst +++ b/Help/prop_tgt/MACOSX_RPATH.rst @@ -1,7 +1,7 @@ MACOSX_RPATH ------------ -Whether this target on Mac OS X is located at runtime using rpaths. +Whether this target on OS X or iOS is located at runtime using rpaths. When this property is set to true, the directory portion of the "install_name" field of this shared library will be ``@rpath`` @@ -17,7 +17,7 @@ Runtime paths will also be embedded in binaries using this target and can be controlled by the :prop_tgt:`INSTALL_RPATH` target property on the target linking to this target. -Policy CMP0042 was introduced to change the default value of -MACOSX_RPATH to ON. This is because use of ``@rpath`` is a +Policy :policy:`CMP0042` was introduced to change the default value of +``MACOSX_RPATH`` to ``TRUE. This is because use of ``@rpath`` is a more flexible and powerful alternative to ``@executable_path`` and ``@loader_path``. diff --git a/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst b/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst index f8fdcff..fb78177 100644 --- a/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst +++ b/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst @@ -1,7 +1,7 @@ OSX_ARCHITECTURES_ -------------------------- -Per-configuration OS X binary architectures for a target. +Per-configuration OS X and iOS binary architectures for a target. This property is the configuration-specific version of :prop_tgt:`OSX_ARCHITECTURES`. diff --git a/Help/prop_tgt/PRIVATE_HEADER.rst b/Help/prop_tgt/PRIVATE_HEADER.rst index da2127b..c4412ed 100644 --- a/Help/prop_tgt/PRIVATE_HEADER.rst +++ b/Help/prop_tgt/PRIVATE_HEADER.rst @@ -1,11 +1,11 @@ PRIVATE_HEADER -------------- -Specify private header files in a FRAMEWORK shared library target. +Specify private header files in a :prop_tgt:`FRAMEWORK` shared library target. -Shared library targets marked with the FRAMEWORK property generate -frameworks on OS X and normal shared libraries on other platforms. +Shared library targets marked with the :prop_tgt:`FRAMEWORK` property generate +frameworks on OS X, iOS and normal shared libraries on other platforms. This property may be set to a list of header files to be placed in the PrivateHeaders directory inside the framework folder. On non-Apple -platforms these headers may be installed using the PRIVATE_HEADER -option to the install(TARGETS) command. +platforms these headers may be installed using the ``PRIVATE_HEADER`` +option to the ``install(TARGETS)`` command. diff --git a/Help/prop_tgt/PUBLIC_HEADER.rst b/Help/prop_tgt/PUBLIC_HEADER.rst index 6e25d94..d4a636c 100644 --- a/Help/prop_tgt/PUBLIC_HEADER.rst +++ b/Help/prop_tgt/PUBLIC_HEADER.rst @@ -1,11 +1,11 @@ PUBLIC_HEADER ------------- -Specify public header files in a FRAMEWORK shared library target. +Specify public header files in a :prop_tgt:`FRAMEWORK` shared library target. -Shared library targets marked with the FRAMEWORK property generate -frameworks on OS X and normal shared libraries on other platforms. +Shared library targets marked with the :prop_tgt:`FRAMEWORK` property generate +frameworks on OS X, iOS and normal shared libraries on other platforms. This property may be set to a list of header files to be placed in the -Headers directory inside the framework folder. On non-Apple platforms -these headers may be installed using the PUBLIC_HEADER option to the -install(TARGETS) command. +``Headers`` directory inside the framework folder. On non-Apple platforms +these headers may be installed using the ``PUBLIC_HEADER`` option to the +``install(TARGETS)`` command. diff --git a/Help/prop_tgt/RESOURCE.rst b/Help/prop_tgt/RESOURCE.rst index 1e9921d..5dad3ea 100644 --- a/Help/prop_tgt/RESOURCE.rst +++ b/Help/prop_tgt/RESOURCE.rst @@ -1,11 +1,11 @@ RESOURCE -------- -Specify resource files in a FRAMEWORK shared library target. +Specify resource files in a :prop_tgt:`FRAMEWORK` shared library target. -Shared library targets marked with the FRAMEWORK property generate -frameworks on OS X and normal shared libraries on other platforms. +Shared library targets marked with the :prop_tgt:`FRAMEWORK` property generate +frameworks on OS X, iOS and normal shared libraries on other platforms. This property may be set to a list of files to be placed in the -Resources directory inside the framework folder. On non-Apple -platforms these files may be installed using the RESOURCE option to -the install(TARGETS) command. +``Resources`` directory inside the framework folder. On non-Apple +platforms these files may be installed using the ``RESOURCE`` option to +the ``install(TARGETS)`` command. diff --git a/Help/variable/APPLE.rst b/Help/variable/APPLE.rst index a8d2429..75eecf1 100644 --- a/Help/variable/APPLE.rst +++ b/Help/variable/APPLE.rst @@ -1,6 +1,6 @@ APPLE ----- -``True`` if running on Mac OS X. +``True`` if running on OS X. -Set to ``true`` on Mac OS X. +Set to ``true`` on OS X. diff --git a/Help/variable/CMAKE_ENABLE_EXPORTS.rst b/Help/variable/CMAKE_ENABLE_EXPORTS.rst index 1f9ba6f..9a877e7 100644 --- a/Help/variable/CMAKE_ENABLE_EXPORTS.rst +++ b/Help/variable/CMAKE_ENABLE_EXPORTS.rst @@ -6,15 +6,15 @@ Specify whether an executable exports symbols for loadable modules. Normally an executable does not export any symbols because it is the final program. It is possible for an executable to export symbols to be used by loadable modules. When this property is set to true CMake -will allow other targets to "link" to the executable with the +will allow other targets to ``link`` to the executable with the :command:`TARGET_LINK_LIBRARIES` command. On all platforms a target-level dependency on the executable is created for targets that link to it. For DLL platforms an import library will be created for the exported symbols and then used for linking. All Windows-based systems including Cygwin are DLL platforms. For non-DLL platforms that -require all symbols to be resolved at link time, such as Mac OS X, the -module will "link" to the executable using a flag like -"-bundle_loader". For other non-DLL platforms the link rule is simply +require all symbols to be resolved at link time, such as OS X, the +module will ``link`` to the executable using a flag like +``-bundle_loader``. For other non-DLL platforms the link rule is simply ignored since the dynamic loader will automatically bind symbols when the module is loaded. diff --git a/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst b/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst index e5e6f67..c673592 100644 --- a/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst +++ b/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst @@ -4,5 +4,5 @@ CMAKE_HOST_SYSTEM_NAME Name of the OS CMake is running on. On systems that have the uname command, this variable is set to the -output of ``uname -s``. ``Linux``, ``Windows``, and ``Darwin`` for Mac OS X +output of ``uname -s``. ``Linux``, ``Windows``, and ``Darwin`` for OS X are the values found on the big three operating systems. diff --git a/Help/variable/CMAKE_INSTALL_NAME_DIR.rst b/Help/variable/CMAKE_INSTALL_NAME_DIR.rst index 961d712..1f2d62b 100644 --- a/Help/variable/CMAKE_INSTALL_NAME_DIR.rst +++ b/Help/variable/CMAKE_INSTALL_NAME_DIR.rst @@ -1,7 +1,7 @@ CMAKE_INSTALL_NAME_DIR ---------------------- -Mac OS X directory name for installed targets. +OS X directory name for installed targets. ``CMAKE_INSTALL_NAME_DIR`` is used to initialize the :prop_tgt:`INSTALL_NAME_DIR` property on all targets. See that target diff --git a/Help/variable/CMAKE_MACOSX_RPATH.rst b/Help/variable/CMAKE_MACOSX_RPATH.rst index ac897c0..042e807 100644 --- a/Help/variable/CMAKE_MACOSX_RPATH.rst +++ b/Help/variable/CMAKE_MACOSX_RPATH.rst @@ -1,7 +1,7 @@ CMAKE_MACOSX_RPATH ------------------- -Whether to use rpaths on Mac OS X. +Whether to use rpaths on OS X and iOS. This variable is used to initialize the :prop_tgt:`MACOSX_RPATH` property on all targets. diff --git a/Help/variable/CMAKE_OSX_ARCHITECTURES.rst b/Help/variable/CMAKE_OSX_ARCHITECTURES.rst index b9de518..93916dd 100644 --- a/Help/variable/CMAKE_OSX_ARCHITECTURES.rst +++ b/Help/variable/CMAKE_OSX_ARCHITECTURES.rst @@ -1,7 +1,7 @@ CMAKE_OSX_ARCHITECTURES ----------------------- -Target specific architectures for OS X. +Target specific architectures for OS X and iOS. This variable is used to initialize the :prop_tgt:`OSX_ARCHITECTURES` property on each target as it is creaed. See that target property ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-buildsystem.7.rst | 9 ++++--- Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst | 34 ++++++++++++++----------- Help/prop_tgt/BUNDLE.rst | 6 ++--- Help/prop_tgt/BUNDLE_EXTENSION.rst | 4 +-- Help/prop_tgt/ENABLE_EXPORTS.rst | 4 +-- Help/prop_tgt/FRAMEWORK.rst | 28 +++++++++++++++++--- Help/prop_tgt/FRAMEWORK_VERSION.rst | 3 +++ Help/prop_tgt/MACOSX_BUNDLE.rst | 16 ++++++------ Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst | 4 +-- Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst | 4 +-- Help/prop_tgt/MACOSX_RPATH.rst | 6 ++--- Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst | 2 +- Help/prop_tgt/PRIVATE_HEADER.rst | 10 ++++---- Help/prop_tgt/PUBLIC_HEADER.rst | 12 ++++----- Help/prop_tgt/RESOURCE.rst | 12 ++++----- Help/variable/APPLE.rst | 4 +-- Help/variable/CMAKE_ENABLE_EXPORTS.rst | 8 +++--- Help/variable/CMAKE_HOST_SYSTEM_NAME.rst | 2 +- Help/variable/CMAKE_INSTALL_NAME_DIR.rst | 2 +- Help/variable/CMAKE_MACOSX_RPATH.rst | 2 +- Help/variable/CMAKE_OSX_ARCHITECTURES.rst | 2 +- Source/CMakeVersion.cmake | 2 +- 22 files changed, 103 insertions(+), 73 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 10:12:09 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 10:12:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1465-g804de5d Message-ID: <20151123151209.9A11BC4789@public.kitware.com> 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 804de5d0269ee1f8220bccaa743f447c75252d80 (commit) via 03c85501c6bfeac86f8fcdeb066722949a5b9096 (commit) from 881bf217627b0c5b7fbf18bbe2f3282cfc832209 (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=804de5d0269ee1f8220bccaa743f447c75252d80 commit 804de5d0269ee1f8220bccaa743f447c75252d80 Merge: 881bf21 03c8550 Author: Brad King AuthorDate: Mon Nov 23 10:12:08 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 10:12:08 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' into next 03c85501 CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=03c85501c6bfeac86f8fcdeb066722949a5b9096 commit 03c85501c6bfeac86f8fcdeb066722949a5b9096 Author: Simon Levermann AuthorDate: Mon Nov 23 12:44:55 2015 +0100 Commit: Brad King CommitDate: Mon Nov 23 10:10:12 2015 -0500 CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable The change in commit f88533cc (CPackDMG: Add support for multilingual SLAs, 2015-10-19) accidentally used CPACK_DMG_LANGUAGES in its implementation instead of the intended CPACK_DMG_SLA_LANGUAGES added to the documentation. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 7a93fc6..4ef102d 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -137,11 +137,11 @@ int cmCPackDragNDropGenerator::InitializeInternal() << std::endl); } } - if(!this->IsSet("CPACK_DMG_LANGUAGES")) + if(!this->IsSet("CPACK_DMG_SLA_LANGUAGES")) { cmCPackLogger(cmCPackLog::LOG_ERROR, "CPACK_DMG_SLA_DIR set but no languages defined " - "(set CPACK_DMG_LANGUAGES)" + "(set CPACK_DMG_SLA_LANGUAGES)" << std::endl); return 0; } @@ -154,12 +154,12 @@ int cmCPackDragNDropGenerator::InitializeInternal() } std::vector languages; - cmSystemTools::ExpandListArgument(this->GetOption("CPACK_DMG_LANGUAGES"), + cmSystemTools::ExpandListArgument(this->GetOption("CPACK_DMG_SLA_LANGUAGES"), languages); if(languages.empty()) { cmCPackLogger(cmCPackLog::LOG_ERROR, - "CPACK_DMG_LANGUAGES set but empty" + "CPACK_DMG_SLA_LANGUAGES set but empty" << std::endl); return 0; } @@ -350,8 +350,8 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, ? this->GetOption("CPACK_DMG_DS_STORE") : ""; const std::string cpack_dmg_languages = - this->GetOption("CPACK_DMG_LANGUAGES") - ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; + this->GetOption("CPACK_DMG_SLA_LANGUAGES") + ? this->GetOption("CPACK_DMG_SLA_LANGUAGES") : ""; const std::string cpack_dmg_ds_store_setup_script = this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackDragNDropGenerator.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 10:17:45 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 10:17:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1467-g55d3299 Message-ID: <20151123151745.77639C4C4E@public.kitware.com> 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 55d32996139459115e92666cf0d54dffc037b754 (commit) via 9682de566e264c53018cccd05465f2c5d91ccf73 (commit) from 804de5d0269ee1f8220bccaa743f447c75252d80 (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=55d32996139459115e92666cf0d54dffc037b754 commit 55d32996139459115e92666cf0d54dffc037b754 Merge: 804de5d 9682de5 Author: Brad King AuthorDate: Mon Nov 23 10:17:44 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 10:17:44 2015 -0500 Merge topic 'revert-compiler-links-statically' into next 9682de56 Revert "Disable shared library support when compiler links statically" (#15855) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9682de566e264c53018cccd05465f2c5d91ccf73 commit 9682de566e264c53018cccd05465f2c5d91ccf73 Author: Brad King AuthorDate: Mon Nov 23 10:13:38 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 10:16:32 2015 -0500 Revert "Disable shared library support when compiler links statically" (#15855) In commit v3.4.0-rc1~18^2 (Disable shared library support when compiler links statically, 2015-09-30) we tried to detect when the compiler is not capable of linking shared libraries (possibly due to flags in use). However, the approach is not robust against flags like `-nostdlib`. Revert it for now pending another solution to the original problem. diff --git a/Modules/CMakeCCompiler.cmake.in b/Modules/CMakeCCompiler.cmake.in index a1bfc70..c72e338 100644 --- a/Modules/CMakeCCompiler.cmake.in +++ b/Modules/CMakeCCompiler.cmake.in @@ -2,7 +2,6 @@ set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@") set(CMAKE_C_COMPILER_ARG1 "@CMAKE_C_COMPILER_ARG1@") set(CMAKE_C_COMPILER_ID "@CMAKE_C_COMPILER_ID@") set(CMAKE_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@") -set(CMAKE_C_COMPILER_LINKS_STATICALLY "@CMAKE_C_COMPILER_LINKS_STATICALLY@") set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "@CMAKE_C_STANDARD_COMPUTED_DEFAULT@") set(CMAKE_C_COMPILE_FEATURES "@CMAKE_C_COMPILE_FEATURES@") set(CMAKE_C90_COMPILE_FEATURES "@CMAKE_C90_COMPILE_FEATURES@") diff --git a/Modules/CMakeCInformation.cmake b/Modules/CMakeCInformation.cmake index 0d102a1..d2417aa 100644 --- a/Modules/CMakeCInformation.cmake +++ b/Modules/CMakeCInformation.cmake @@ -75,10 +75,6 @@ if(CMAKE_C_SIZEOF_DATA_PTR) unset(CMAKE_C_ABI_FILES) endif() -if(CMAKE_C_COMPILER_LINKS_STATICALLY) - set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -endif() - # This should be included before the _INIT variables are # used to initialize the cache. Since the rule variables # have if blocks on them, users can still define them here. diff --git a/Modules/CMakeCXXCompiler.cmake.in b/Modules/CMakeCXXCompiler.cmake.in index 4218a6d..52e44f6 100644 --- a/Modules/CMakeCXXCompiler.cmake.in +++ b/Modules/CMakeCXXCompiler.cmake.in @@ -2,7 +2,6 @@ set(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@") set(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@") set(CMAKE_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@") set(CMAKE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@") -set(CMAKE_CXX_COMPILER_LINKS_STATICALLY "@CMAKE_CXX_COMPILER_LINKS_STATICALLY@") set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_CXX_STANDARD_COMPUTED_DEFAULT@") set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@") set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@") diff --git a/Modules/CMakeCXXInformation.cmake b/Modules/CMakeCXXInformation.cmake index dad7969..091627b 100644 --- a/Modules/CMakeCXXInformation.cmake +++ b/Modules/CMakeCXXInformation.cmake @@ -74,10 +74,6 @@ if(CMAKE_CXX_SIZEOF_DATA_PTR) unset(CMAKE_CXX_ABI_FILES) endif() -if(CMAKE_CXX_COMPILER_LINKS_STATICALLY) - set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -endif() - # This should be included before the _INIT variables are # used to initialize the cache. Since the rule variables # have if blocks on them, users can still define them here. diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 591ecb8..df6daf3 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -106,7 +106,6 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}" PARENT_SCOPE) set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX}" PARENT_SCOPE) - set(CMAKE_${lang}_COMPILER_LINKS_STATICALLY "${CMAKE_${lang}_COMPILER_LINKS_STATICALLY}" PARENT_SCOPE) set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE) set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE) set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE) @@ -530,13 +529,6 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file) endif() endif() - if(UNIX) - execute_process(COMMAND file "${file}" OUTPUT_VARIABLE out ERROR_VARIABLE out) - if(out MATCHES "statically linked") - set(CMAKE_${lang}_COMPILER_LINKS_STATICALLY 1 PARENT_SCOPE) - endif() - endif() - # Check if a valid compiler and platform were found. if(COMPILER_ID AND NOT COMPILER_ID_TWICE) set(CMAKE_${lang}_COMPILER_ID "${COMPILER_ID}") diff --git a/Modules/CMakeFortranCompiler.cmake.in b/Modules/CMakeFortranCompiler.cmake.in index 6b984e5..14fdd60 100644 --- a/Modules/CMakeFortranCompiler.cmake.in +++ b/Modules/CMakeFortranCompiler.cmake.in @@ -2,7 +2,6 @@ set(CMAKE_Fortran_COMPILER "@CMAKE_Fortran_COMPILER@") set(CMAKE_Fortran_COMPILER_ARG1 "@CMAKE_Fortran_COMPILER_ARG1@") set(CMAKE_Fortran_COMPILER_ID "@CMAKE_Fortran_COMPILER_ID@") set(CMAKE_Fortran_COMPILER_VERSION "@CMAKE_Fortran_COMPILER_VERSION@") -set(CMAKE_Fortran_COMPILER_LINKS_STATICALLY "@CMAKE_Fortran_COMPILER_LINKS_STATICALLY@") set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@") set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@") set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@") diff --git a/Modules/CMakeFortranInformation.cmake b/Modules/CMakeFortranInformation.cmake index aa48df7..79393d3 100644 --- a/Modules/CMakeFortranInformation.cmake +++ b/Modules/CMakeFortranInformation.cmake @@ -51,10 +51,6 @@ if(CMAKE_Fortran_SIZEOF_DATA_PTR) unset(CMAKE_Fortran_ABI_FILES) endif() -if(CMAKE_Fortran_COMPILER_LINKS_STATICALLY) - set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -endif() - # This should be included before the _INIT variables are # used to initialize the cache. Since the rule variables # have if blocks on them, users can still define them here. ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompiler.cmake.in | 1 - Modules/CMakeCInformation.cmake | 4 ---- Modules/CMakeCXXCompiler.cmake.in | 1 - Modules/CMakeCXXInformation.cmake | 4 ---- Modules/CMakeDetermineCompilerId.cmake | 8 -------- Modules/CMakeFortranCompiler.cmake.in | 1 - Modules/CMakeFortranInformation.cmake | 4 ---- 7 files changed, 23 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 10:22:58 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 10:22:58 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1469-g0f92b26 Message-ID: <20151123152258.4C0ACC4E0A@public.kitware.com> 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 0f92b26643bf519218f7ea7107eb2cf617e48056 (commit) via 3c80335160f44d7faee118d15b0f670cd1ff6ca6 (commit) from 55d32996139459115e92666cf0d54dffc037b754 (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=0f92b26643bf519218f7ea7107eb2cf617e48056 commit 0f92b26643bf519218f7ea7107eb2cf617e48056 Merge: 55d3299 3c80335 Author: Brad King AuthorDate: Mon Nov 23 10:22:57 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 10:22:57 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' into next 3c803351 fixup! CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3c80335160f44d7faee118d15b0f670cd1ff6ca6 commit 3c80335160f44d7faee118d15b0f670cd1ff6ca6 Author: Brad King AuthorDate: Mon Nov 23 10:22:34 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 10:22:34 2015 -0500 fixup! CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 4ef102d..b5df2d0 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -154,8 +154,8 @@ int cmCPackDragNDropGenerator::InitializeInternal() } std::vector languages; - cmSystemTools::ExpandListArgument(this->GetOption("CPACK_DMG_SLA_LANGUAGES"), - languages); + cmSystemTools::ExpandListArgument( + this->GetOption("CPACK_DMG_SLA_LANGUAGES"), languages); if(languages.empty()) { cmCPackLogger(cmCPackLog::LOG_ERROR, ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackDragNDropGenerator.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 10:23:12 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 10:23:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1471-g5d24c39 Message-ID: <20151123152312.232ACC4E22@public.kitware.com> 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 5d24c399b564cb73442e33471fdbcd2e1a390bc6 (commit) via 0c5b96bf7ca781b9ff7bb00b79790215956d68e6 (commit) from 0f92b26643bf519218f7ea7107eb2cf617e48056 (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=5d24c399b564cb73442e33471fdbcd2e1a390bc6 commit 5d24c399b564cb73442e33471fdbcd2e1a390bc6 Merge: 0f92b26 0c5b96b Author: Brad King AuthorDate: Mon Nov 23 10:23:11 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 10:23:11 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' into next 0c5b96bf CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0c5b96bf7ca781b9ff7bb00b79790215956d68e6 commit 0c5b96bf7ca781b9ff7bb00b79790215956d68e6 Author: Simon Levermann AuthorDate: Mon Nov 23 12:44:55 2015 +0100 Commit: Brad King CommitDate: Mon Nov 23 10:22:15 2015 -0500 CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable The change in commit f88533cc (CPackDMG: Add support for multilingual SLAs, 2015-10-19) accidentally used CPACK_DMG_LANGUAGES in its implementation instead of the intended CPACK_DMG_SLA_LANGUAGES added to the documentation. diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 7a93fc6..b5df2d0 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -137,11 +137,11 @@ int cmCPackDragNDropGenerator::InitializeInternal() << std::endl); } } - if(!this->IsSet("CPACK_DMG_LANGUAGES")) + if(!this->IsSet("CPACK_DMG_SLA_LANGUAGES")) { cmCPackLogger(cmCPackLog::LOG_ERROR, "CPACK_DMG_SLA_DIR set but no languages defined " - "(set CPACK_DMG_LANGUAGES)" + "(set CPACK_DMG_SLA_LANGUAGES)" << std::endl); return 0; } @@ -154,12 +154,12 @@ int cmCPackDragNDropGenerator::InitializeInternal() } std::vector languages; - cmSystemTools::ExpandListArgument(this->GetOption("CPACK_DMG_LANGUAGES"), - languages); + cmSystemTools::ExpandListArgument( + this->GetOption("CPACK_DMG_SLA_LANGUAGES"), languages); if(languages.empty()) { cmCPackLogger(cmCPackLog::LOG_ERROR, - "CPACK_DMG_LANGUAGES set but empty" + "CPACK_DMG_SLA_LANGUAGES set but empty" << std::endl); return 0; } @@ -350,8 +350,8 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, ? this->GetOption("CPACK_DMG_DS_STORE") : ""; const std::string cpack_dmg_languages = - this->GetOption("CPACK_DMG_LANGUAGES") - ? this->GetOption("CPACK_DMG_LANGUAGES") : ""; + this->GetOption("CPACK_DMG_SLA_LANGUAGES") + ? this->GetOption("CPACK_DMG_SLA_LANGUAGES") : ""; const std::string cpack_dmg_ds_store_setup_script = this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT") ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 12:42:14 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 12:42:14 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1473-g328b26f Message-ID: <20151123174214.CA82FC4713@public.kitware.com> 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 328b26f818b568d42d5fb1bc1e7e6cdf2eeca178 (commit) via 32268810d9f1cf40d20bfb287be30db582696043 (commit) from 5d24c399b564cb73442e33471fdbcd2e1a390bc6 (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=328b26f818b568d42d5fb1bc1e7e6cdf2eeca178 commit 328b26f818b568d42d5fb1bc1e7e6cdf2eeca178 Merge: 5d24c39 3226881 Author: Brad King AuthorDate: Mon Nov 23 12:42:14 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 12:42:14 2015 -0500 Merge topic 'expand_cobertura_search' into next 32268810 CTest: Expand directories for Cobertura search https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=32268810d9f1cf40d20bfb287be30db582696043 commit 32268810d9f1cf40d20bfb287be30db582696043 Author: Joseph Snyder AuthorDate: Mon Nov 16 16:27:57 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 12:41:36 2015 -0500 CTest: Expand directories for Cobertura search Change the Cobertura handler to look for an environment variable called "COBERTURADIR" which contains the directory where the coverage.xml file is found. If that variable doesn't exist, continue to use the default of the binary directory. Update the test to use an appropriate value in the environment variables. diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 6027502..2c2cd48 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -820,11 +820,26 @@ int cmCTestCoverageHandler::HandleCoberturaCoverage( { cmParseCoberturaCoverage cov(*cont, this->CTest); - // Assume the coverage.xml is in the source directory - std::string coverageXMLFile = this->CTest->GetBinaryDir() + "/coverage.xml"; + // Assume the coverage.xml is in the binary directory + // check for the COBERTURADIR environment variable, + // if it doesn't exist or is empty, assume the + // binary directory is used. + std::string coverageXMLFile; + const char* covDir = cmSystemTools::GetEnv("COBERTURADIR"); + if(covDir && strlen(covDir) != 0) + { + coverageXMLFile = std::string(covDir); + } + else + { + coverageXMLFile = this->CTest->GetBinaryDir(); + } + // build the find file string with the directory from above + coverageXMLFile += "/coverage.xml"; if(cmSystemTools::FileExists(coverageXMLFile.c_str())) { + // If file exists, parse it cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Parsing Cobertura XML file: " << coverageXMLFile << std::endl, this->Quiet); @@ -833,7 +848,7 @@ int cmCTestCoverageHandler::HandleCoberturaCoverage( else { cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, - "Cannot find Cobertura XML file: " << coverageXMLFile + " Cannot find Cobertura XML file: " << coverageXMLFile << std::endl, this->Quiet); } return static_cast(cont->TotalCoverage.size()); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f381758..dd766ae 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -2544,6 +2544,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set_tests_properties(CTestCoberturaCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*CoverageTest.java.*Total LOC:.*18.*Percentage Coverage: 72.22.*" + ENVIRONMENT COBERTURADIR=${CMake_BINARY_DIR}/Testing/CoberturaCoverage ENVIRONMENT COVFILE=) ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 13:28:55 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 13:28:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1475-g7e33309 Message-ID: <20151123182855.E5D74C4E4B@public.kitware.com> 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 7e33309c1755f61326f8d11403d4b72c0648ff7b (commit) via 010c5959864a10f4b83907fb058006e118dd740d (commit) from 328b26f818b568d42d5fb1bc1e7e6cdf2eeca178 (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=7e33309c1755f61326f8d11403d4b72c0648ff7b commit 7e33309c1755f61326f8d11403d4b72c0648ff7b Merge: 328b26f 010c595 Author: Brad King AuthorDate: Mon Nov 23 13:28:54 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 13:28:54 2015 -0500 Merge topic 'test-add_subdirectory-in-function' into next 010c5959 Tests: Add case for add_subdirectory inside a function https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=010c5959864a10f4b83907fb058006e118dd740d commit 010c5959864a10f4b83907fb058006e118dd740d Author: Brad King AuthorDate: Mon Nov 23 10:51:37 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 10:52:51 2015 -0500 Tests: Add case for add_subdirectory inside a function diff --git a/Tests/RunCMake/add_subdirectory/Function-stdout.txt b/Tests/RunCMake/add_subdirectory/Function-stdout.txt new file mode 100644 index 0000000..16fa857 --- /dev/null +++ b/Tests/RunCMake/add_subdirectory/Function-stdout.txt @@ -0,0 +1,10 @@ +-- var='1' before my_add_subdirectory +-- var='2' in my_add_subdirectory before add_subdirectory +-- var='2' in subdirectory before set +-- var='3' in subdirectory after set +-- var_sub='' in subdirectory after set PARENT_SCOPE +-- var='2' in my_add_subdirectory after add_subdirectory +-- var_sub='sub' in my_add_subdirectory after add_subdirectory +-- var='1' after my_add_subdirectory +-- var_sub='' after my_add_subdirectory +-- var='3' taken from subdirectory diff --git a/Tests/RunCMake/add_subdirectory/Function.cmake b/Tests/RunCMake/add_subdirectory/Function.cmake new file mode 100644 index 0000000..e804da9 --- /dev/null +++ b/Tests/RunCMake/add_subdirectory/Function.cmake @@ -0,0 +1,17 @@ +function(my_add_subdirectory dir) + set(var 2) + message(STATUS "var='${var}' in my_add_subdirectory before add_subdirectory") + add_subdirectory(${dir}) + message(STATUS "var='${var}' in my_add_subdirectory after add_subdirectory") + message(STATUS "var_sub='${var_sub}' in my_add_subdirectory after add_subdirectory") +endfunction() + +set(var 1) + +message(STATUS "var='${var}' before my_add_subdirectory") +my_add_subdirectory(Function) +message(STATUS "var='${var}' after my_add_subdirectory") +message(STATUS "var_sub='${var_sub}' after my_add_subdirectory") + +get_directory_property(sub_var DIRECTORY Function DEFINITION var) +message(STATUS "var='${sub_var}' taken from subdirectory") diff --git a/Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt b/Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt new file mode 100644 index 0000000..7b9e801 --- /dev/null +++ b/Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt @@ -0,0 +1,5 @@ +message(STATUS "var='${var}' in subdirectory before set") +set(var 3) +message(STATUS "var='${var}' in subdirectory after set") +set(var_sub sub PARENT_SCOPE) +message(STATUS "var_sub='${var_sub}' in subdirectory after set PARENT_SCOPE") diff --git a/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake b/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake index a3ddec8..9d514e1 100644 --- a/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake +++ b/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake @@ -2,3 +2,4 @@ include(RunCMake) run_cmake(DoesNotExist) run_cmake(Missing) +run_cmake(Function) ----------------------------------------------------------------------- Summary of changes: Tests/RunCMake/add_subdirectory/Function-stdout.txt | 10 ++++++++++ Tests/RunCMake/add_subdirectory/Function.cmake | 17 +++++++++++++++++ .../RunCMake/add_subdirectory/Function/CMakeLists.txt | 5 +++++ Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake | 1 + 4 files changed, 33 insertions(+) create mode 100644 Tests/RunCMake/add_subdirectory/Function-stdout.txt create mode 100644 Tests/RunCMake/add_subdirectory/Function.cmake create mode 100644 Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 13:43:52 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 13:43:52 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1477-ga591cf6 Message-ID: <20151123184352.CDBFEC48DF@public.kitware.com> 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 a591cf634cf4fa4ce971886d0ff0f16224da0d41 (commit) via 15c454fe82818c3f317db83ddf9ca90347e2b510 (commit) from 7e33309c1755f61326f8d11403d4b72c0648ff7b (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=a591cf634cf4fa4ce971886d0ff0f16224da0d41 commit a591cf634cf4fa4ce971886d0ff0f16224da0d41 Merge: 7e33309 15c454f Author: Brad King AuthorDate: Mon Nov 23 13:43:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 13:43:52 2015 -0500 Merge topic 'doc-CLEAN_NO_CUSTOM-makefile-only' into next 15c454fe Help: Document CLEAN_NO_CUSTOM as for Makefile generators only (#15856) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=15c454fe82818c3f317db83ddf9ca90347e2b510 commit 15c454fe82818c3f317db83ddf9ca90347e2b510 Author: Brad King AuthorDate: Mon Nov 23 13:41:16 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 13:42:37 2015 -0500 Help: Document CLEAN_NO_CUSTOM as for Makefile generators only (#15856) The property cannot be implemented on other generators because the corresponding native build tools (VS IDE, Xcode, Ninja) all implement their own `clean` operations that affect all outputs. Document this limitation. diff --git a/Help/prop_dir/CLEAN_NO_CUSTOM.rst b/Help/prop_dir/CLEAN_NO_CUSTOM.rst index 9a4173e..5ae78bf 100644 --- a/Help/prop_dir/CLEAN_NO_CUSTOM.rst +++ b/Help/prop_dir/CLEAN_NO_CUSTOM.rst @@ -1,7 +1,6 @@ CLEAN_NO_CUSTOM --------------- -Should the output of custom commands be left. - -If this is true then the outputs of custom commands for this directory -will not be removed during the "make clean" stage. +Set to true to tell :ref:`Makefile Generators` not to remove the outputs of +custom commands for this directory during the ``make clean`` operation. +This is ignored on other generators because it is not possible to implement. ----------------------------------------------------------------------- Summary of changes: Help/prop_dir/CLEAN_NO_CUSTOM.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 13:47:26 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 13:47:26 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-577-ged08d1d Message-ID: <20151123184726.CA548C4A8D@public.kitware.com> 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, master has been updated via ed08d1d48969994e9cd4f4ff9d3815c644bfcc8d (commit) via 32268810d9f1cf40d20bfb287be30db582696043 (commit) from dbef2244f97e266896f71729d0de5eeb80c1c5f9 (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=ed08d1d48969994e9cd4f4ff9d3815c644bfcc8d commit ed08d1d48969994e9cd4f4ff9d3815c644bfcc8d Merge: dbef224 3226881 Author: Brad King AuthorDate: Mon Nov 23 13:47:25 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 13:47:25 2015 -0500 Merge topic 'expand_cobertura_search' 32268810 CTest: Expand directories for Cobertura search ----------------------------------------------------------------------- Summary of changes: Source/CTest/cmCTestCoverageHandler.cxx | 21 ++++++++++++++++++--- Tests/CMakeLists.txt | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 14:23:57 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 14:23:57 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-581-g5c60f16 Message-ID: <20151123192357.BE19AC4D19@public.kitware.com> 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, master has been updated via 5c60f16b1241d6ad6062f28151f9d3c473397eb3 (commit) via e3dfa3506c0589cb4c3e91107e560c2495cdc257 (commit) via 16ba21f79abbd4729124c8c042b66da482500e9c (commit) via aa0460b34a8533ee5c0e0893b411f72b5784c842 (commit) from ed08d1d48969994e9cd4f4ff9d3815c644bfcc8d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 14:23:57 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 14:23:57 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1484-ge1098e4 Message-ID: <20151123192357.EAF99C4D1E@public.kitware.com> 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 e1098e4313117275e8e39262178012c630fc7917 (commit) via 5c60f16b1241d6ad6062f28151f9d3c473397eb3 (commit) via 36c86a814a4e94985dc792c2157bcddd53da1738 (commit) via ed08d1d48969994e9cd4f4ff9d3815c644bfcc8d (commit) via e3dfa3506c0589cb4c3e91107e560c2495cdc257 (commit) via 16ba21f79abbd4729124c8c042b66da482500e9c (commit) via aa0460b34a8533ee5c0e0893b411f72b5784c842 (commit) from a591cf634cf4fa4ce971886d0ff0f16224da0d41 (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=e1098e4313117275e8e39262178012c630fc7917 commit e1098e4313117275e8e39262178012c630fc7917 Merge: 36c86a8 5c60f16 Author: Brad King AuthorDate: Mon Nov 23 14:23:09 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 14:23:09 2015 -0500 Merge branch 'master' into next https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=36c86a814a4e94985dc792c2157bcddd53da1738 commit 36c86a814a4e94985dc792c2157bcddd53da1738 Merge: a591cf6 ed08d1d Author: Brad King AuthorDate: Mon Nov 23 13:47:35 2015 -0500 Commit: Brad King CommitDate: Mon Nov 23 13:47:35 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 14:23:58 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 14:23:58 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-16-ge3dfa35 Message-ID: <20151123192358.0F358C4D1F@public.kitware.com> 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, release has been updated via e3dfa3506c0589cb4c3e91107e560c2495cdc257 (commit) via c7ddc5f43821039f4c005271912da30ba0f213db (commit) via 16ba21f79abbd4729124c8c042b66da482500e9c (commit) via f5cd92a82600067835c05c7e82726161a150a50b (commit) via aa0460b34a8533ee5c0e0893b411f72b5784c842 (commit) via 441dba80322ec1579b34dd64e13bcfcf004f7005 (commit) from 59b6d8a81bc4f975664a1b04cd349235e5a152b7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/AppleClang-C.cmake | 3 +++ Modules/Compiler/AppleClang-CXX.cmake | 3 +++ Modules/Compiler/Clang-C.cmake | 7 +++++++ Modules/Compiler/Clang-CXX.cmake | 3 +++ Modules/Compiler/GNU-C.cmake | 7 +++++++ Modules/Compiler/GNU-CXX.cmake | 3 +++ Modules/Compiler/SunPro-CXX.cmake | 3 +++ Source/bindexplib.cxx | 2 +- Source/cmELF.cxx | 8 +++++++- Tests/RunCMake/AutoExportDll/sub/sub.cxx | 2 ++ 10 files changed, 39 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 14:31:08 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 14:31:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1486-gb62d3d1 Message-ID: <20151123193108.97B7DC4EA0@public.kitware.com> 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 b62d3d17ce22297278dd084ab11142899d91157f (commit) via 5dcc833b28eecc95486852f032a54edc64f76eec (commit) from e1098e4313117275e8e39262178012c630fc7917 (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=b62d3d17ce22297278dd084ab11142899d91157f commit b62d3d17ce22297278dd084ab11142899d91157f Merge: e1098e4 5dcc833 Author: Brad King AuthorDate: Mon Nov 23 14:31:07 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 14:31:07 2015 -0500 Merge topic 'FindXercesC-imported-targets' into next 5dcc833b FindXercesC: Add imported targets and unit test https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5dcc833b28eecc95486852f032a54edc64f76eec commit 5dcc833b28eecc95486852f032a54edc64f76eec Author: Roger Leigh AuthorDate: Wed Nov 18 16:45:54 2015 +0000 Commit: Brad King CommitDate: Mon Nov 23 14:28:05 2015 -0500 FindXercesC: Add imported targets and unit test diff --git a/Help/release/dev/FindXercesC-imported-targets.rst b/Help/release/dev/FindXercesC-imported-targets.rst new file mode 100644 index 0000000..69cec5c --- /dev/null +++ b/Help/release/dev/FindXercesC-imported-targets.rst @@ -0,0 +1,4 @@ +FindXercesC-imported-targets +---------------------------- + +* The :module:`FindXercesC` module now provides imported targets. diff --git a/Modules/FindXercesC.cmake b/Modules/FindXercesC.cmake index cf84826..a4b80e5 100644 --- a/Modules/FindXercesC.cmake +++ b/Modules/FindXercesC.cmake @@ -4,23 +4,42 @@ # # Find the Apache Xerces-C++ validating XML parser headers and libraries. # -# This module reports information about the Xerces installation in -# several variables. General variables:: +# Imported targets +# ^^^^^^^^^^^^^^^^ # -# XercesC_FOUND - true if the Xerces headers and libraries were found -# XercesC_VERSION - Xerces release version -# XercesC_INCLUDE_DIRS - the directory containing the Xerces headers -# XercesC_LIBRARIES - Xerces libraries to be linked +# This module defines the following :prop_tgt:`IMPORTED` targets: # -# The following cache variables may also be set:: +# ``XercesC::XercesC`` +# The Xerces-C++ ``xerces-c`` library, if found. # -# XercesC_INCLUDE_DIR - the directory containing the Xerces headers -# XercesC_LIBRARY - the Xerces library +# Result variables +# ^^^^^^^^^^^^^^^^ +# +# This module will set the following variables in your project: +# +# ``XercesC_FOUND`` +# true if the Xerces headers and libraries were found +# ``XercesC_VERSION`` +# Xerces release version +# ``XercesC_INCLUDE_DIRS`` +# the directory containing the Xerces headers +# ``XercesC_LIBRARIES`` +# Xerces libraries to be linked +# +# Cache variables +# ^^^^^^^^^^^^^^^ +# +# The following cache variables may also be set: +# +# ``XercesC_INCLUDE_DIR`` +# the directory containing the Xerces headers +# ``XercesC_LIBRARY`` +# the Xerces library # Written by Roger Leigh #============================================================================= -# Copyright 2014 University of Dundee +# Copyright 2014-2015 University of Dundee # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. @@ -90,4 +109,32 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC if(XercesC_FOUND) set(XercesC_INCLUDE_DIRS "${XercesC_INCLUDE_DIR}") set(XercesC_LIBRARIES "${XercesC_LIBRARY}") + + # For header-only libraries + if(NOT TARGET XercesC::XercesC) + add_library(XercesC::XercesC UNKNOWN IMPORTED) + if(XercesC_INCLUDE_DIRS) + set_target_properties(XercesC::XercesC PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${XercesC_INCLUDE_DIRS}") + endif() + if(EXISTS "${XercesC_LIBRARY}") + set_target_properties(XercesC::XercesC PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${XercesC_LIBRARY}") + endif() + if(EXISTS "${XercesC_LIBRARY_DEBUG}") + set_property(TARGET XercesC::XercesC APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(XercesC::XercesC PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" + IMPORTED_LOCATION_DEBUG "${XercesC_LIBRARY_DEBUG}") + endif() + if(EXISTS "${XercesC_LIBRARY_RELEASE}") + set_property(TARGET XercesC::XercesC APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(XercesC::XercesC PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${XercesC_LIBRARY_RELEASE}") + endif() + endif() endif() diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f381758..442f23f 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1367,6 +1367,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release add_subdirectory(FindOpenSSL) endif() + if(CMake_TEST_FindXercesC) + add_subdirectory(FindXercesC) + endif() + add_subdirectory(FindThreads) # Matlab module diff --git a/Tests/FindXercesC/CMakeLists.txt b/Tests/FindXercesC/CMakeLists.txt new file mode 100644 index 0000000..633f613 --- /dev/null +++ b/Tests/FindXercesC/CMakeLists.txt @@ -0,0 +1,10 @@ +add_test(NAME FindXercesC.Test COMMAND + ${CMAKE_CTEST_COMMAND} -C $ + --build-and-test + "${CMake_SOURCE_DIR}/Tests/FindXercesC/Test" + "${CMake_BINARY_DIR}/Tests/FindXercesC/Test" + ${build_generator_args} + --build-project TestFindXercesC + --build-options ${build_options} + --test-command ${CMAKE_CTEST_COMMAND} -V -C $ + ) diff --git a/Tests/FindXercesC/Test/CMakeLists.txt b/Tests/FindXercesC/Test/CMakeLists.txt new file mode 100644 index 0000000..8e7767c --- /dev/null +++ b/Tests/FindXercesC/Test/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.1) +project(TestFindXercesC CXX) +include(CTest) + +# CMake does not actually provide FindXercesC publicly. +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../Source/Modules) + +find_package(XercesC REQUIRED) + +add_executable(test_xercesc_tgt main.cxx) +target_link_libraries(test_xercesc_tgt XercesC::XercesC) +add_test(NAME test_xercesc_tgt COMMAND test_xercesc_tgt) + +add_executable(test_xercesc_var main.cxx) +target_include_directories(test_xercesc_var PRIVATE ${XercesC_INCLUDE_DIRS}) +target_link_libraries(test_xercesc_var PRIVATE ${XercesC_LIBRARIES}) +add_test(NAME test_xercesc_var COMMAND test_xercesc_var) diff --git a/Tests/FindXercesC/Test/main.cxx b/Tests/FindXercesC/Test/main.cxx new file mode 100644 index 0000000..1794fa6 --- /dev/null +++ b/Tests/FindXercesC/Test/main.cxx @@ -0,0 +1,7 @@ +#include + +int main() +{ + xercesc::XMLPlatformUtils::Initialize(); + xercesc::XMLPlatformUtils::Terminate(); +} ----------------------------------------------------------------------- Summary of changes: Help/release/dev/FindXercesC-imported-targets.rst | 4 ++ Modules/FindXercesC.cmake | 67 ++++++++++++++++++--- Tests/CMakeLists.txt | 4 ++ Tests/{FindJsonCpp => FindXercesC}/CMakeLists.txt | 8 +-- Tests/FindXercesC/Test/CMakeLists.txt | 17 ++++++ Tests/FindXercesC/Test/main.cxx | 7 +++ 6 files changed, 93 insertions(+), 14 deletions(-) create mode 100644 Help/release/dev/FindXercesC-imported-targets.rst copy Tests/{FindJsonCpp => FindXercesC}/CMakeLists.txt (53%) create mode 100644 Tests/FindXercesC/Test/CMakeLists.txt create mode 100644 Tests/FindXercesC/Test/main.cxx hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 23 14:34:54 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 23 Nov 2015 14:34:54 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1488-g6dd5bb8 Message-ID: <20151123193454.8E863C5016@public.kitware.com> 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 6dd5bb882afe66f252a7c925a30493cb207c9fa0 (commit) via ae1003cdb9b6c4949022ef3b24d368c467a1d15f (commit) from b62d3d17ce22297278dd084ab11142899d91157f (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=6dd5bb882afe66f252a7c925a30493cb207c9fa0 commit 6dd5bb882afe66f252a7c925a30493cb207c9fa0 Merge: b62d3d1 ae1003c Author: Brad King AuthorDate: Mon Nov 23 14:34:53 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 23 14:34:53 2015 -0500 Merge topic 'FindCUDA-aarch64' into next ae1003cd FindCUDA: Add paths for crosscompiling to aarch64 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ae1003cdb9b6c4949022ef3b24d368c467a1d15f commit ae1003cdb9b6c4949022ef3b24d368c467a1d15f Author: Alexander Szakaly AuthorDate: Mon Nov 23 15:17:52 2015 +0100 Commit: Brad King CommitDate: Mon Nov 23 14:34:08 2015 -0500 FindCUDA: Add paths for crosscompiling to aarch64 Choose a CUDA_TOOLKIT_TARGET_DIR for the aarch64 architecture automatically. diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake index 6a21078..ada5b8a 100644 --- a/Modules/FindCUDA.cmake +++ b/Modules/FindCUDA.cmake @@ -653,6 +653,9 @@ set(CUDA_VERSION_STRING "${CUDA_VERSION}") # Support for arm cross compilation with CUDA 5.5 if(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm" AND EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf") set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf" CACHE PATH "Toolkit target location.") +# Support for aarch64 cross compilation with CUDA 7.0 +elseif(CUDA_VERSION VERSION_GREATER "6.5" AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" AND EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/aarch64-linux") + set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT_DIR}/targets/aarch64-linux" CACHE PATH "Toolkit target location.") else() set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT_DIR}" CACHE PATH "Toolkit target location.") endif() ----------------------------------------------------------------------- Summary of changes: Modules/FindCUDA.cmake | 3 +++ 1 file changed, 3 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Nov 24 00:01:12 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 24 Nov 2015 00:01:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-582-gf430198 Message-ID: <20151124050113.96552C4EE1@public.kitware.com> 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, master has been updated via f430198db64a8cbf1e4c64c0d088fc9e2c79dc54 (commit) from 5c60f16b1241d6ad6062f28151f9d3c473397eb3 (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=f430198db64a8cbf1e4c64c0d088fc9e2c79dc54 commit f430198db64a8cbf1e4c64c0d088fc9e2c79dc54 Author: Kitware Robot AuthorDate: Tue Nov 24 00:01:08 2015 -0500 Commit: Kitware Robot CommitDate: Tue Nov 24 00:01:08 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1ad15fc..995a72d 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151123) +set(CMake_VERSION_PATCH 20151124) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:29 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:29 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-584-g2bcc63e Message-ID: <20151124142629.C3203C4DB0@public.kitware.com> 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, master has been updated via 2bcc63e5b5fe0612189400d2b6d3c13acc12e0af (commit) via 5d74c870d907eed9afc9c544e7e6786fd1ea53c8 (commit) from f430198db64a8cbf1e4c64c0d088fc9e2c79dc54 (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=2bcc63e5b5fe0612189400d2b6d3c13acc12e0af commit 2bcc63e5b5fe0612189400d2b6d3c13acc12e0af Merge: f430198 5d74c87 Author: Brad King AuthorDate: Tue Nov 24 09:26:28 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:28 2015 -0500 Merge topic 'doc-ios-support' 5d74c870 Help: Update documentation to reflect support for iOS ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-buildsystem.7.rst | 9 ++++--- Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst | 34 ++++++++++++++----------- Help/prop_tgt/BUNDLE.rst | 6 ++--- Help/prop_tgt/BUNDLE_EXTENSION.rst | 4 +-- Help/prop_tgt/ENABLE_EXPORTS.rst | 4 +-- Help/prop_tgt/FRAMEWORK.rst | 28 +++++++++++++++++--- Help/prop_tgt/FRAMEWORK_VERSION.rst | 3 +++ Help/prop_tgt/MACOSX_BUNDLE.rst | 16 ++++++------ Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst | 4 +-- Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst | 4 +-- Help/prop_tgt/MACOSX_RPATH.rst | 6 ++--- Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst | 2 +- Help/prop_tgt/PRIVATE_HEADER.rst | 10 ++++---- Help/prop_tgt/PUBLIC_HEADER.rst | 12 ++++----- Help/prop_tgt/RESOURCE.rst | 12 ++++----- Help/variable/APPLE.rst | 4 +-- Help/variable/CMAKE_ENABLE_EXPORTS.rst | 8 +++--- Help/variable/CMAKE_HOST_SYSTEM_NAME.rst | 2 +- Help/variable/CMAKE_INSTALL_NAME_DIR.rst | 2 +- Help/variable/CMAKE_MACOSX_RPATH.rst | 2 +- Help/variable/CMAKE_OSX_ARCHITECTURES.rst | 2 +- 21 files changed, 102 insertions(+), 72 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:32 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:32 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-586-gb2de70a Message-ID: <20151124142633.39E0CC4DBB@public.kitware.com> 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, master has been updated via b2de70a036cb3e1ae677b0a923c05276af4e6054 (commit) via 9682de566e264c53018cccd05465f2c5d91ccf73 (commit) from 2bcc63e5b5fe0612189400d2b6d3c13acc12e0af (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=b2de70a036cb3e1ae677b0a923c05276af4e6054 commit b2de70a036cb3e1ae677b0a923c05276af4e6054 Merge: 2bcc63e 9682de5 Author: Brad King AuthorDate: Tue Nov 24 09:26:31 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:31 2015 -0500 Merge topic 'revert-compiler-links-statically' 9682de56 Revert "Disable shared library support when compiler links statically" (#15855) ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompiler.cmake.in | 1 - Modules/CMakeCInformation.cmake | 4 ---- Modules/CMakeCXXCompiler.cmake.in | 1 - Modules/CMakeCXXInformation.cmake | 4 ---- Modules/CMakeDetermineCompilerId.cmake | 8 -------- Modules/CMakeFortranCompiler.cmake.in | 1 - Modules/CMakeFortranInformation.cmake | 4 ---- 7 files changed, 23 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:36 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:36 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-588-g7c74de8 Message-ID: <20151124142636.11BCFC4DBA@public.kitware.com> 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, master has been updated via 7c74de8de8be5a03a572f476bedc9d4c5ca6c0a0 (commit) via 0c5b96bf7ca781b9ff7bb00b79790215956d68e6 (commit) from b2de70a036cb3e1ae677b0a923c05276af4e6054 (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=7c74de8de8be5a03a572f476bedc9d4c5ca6c0a0 commit 7c74de8de8be5a03a572f476bedc9d4c5ca6c0a0 Merge: b2de70a 0c5b96b Author: Brad King AuthorDate: Tue Nov 24 09:26:34 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:34 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' 0c5b96bf CPack/DragNDrop: Use documented CPACK_DMG_SLA_LANGUAGES variable ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackDragNDropGenerator.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:39 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:39 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-590-gdb74574 Message-ID: <20151124142639.1F062C4DC1@public.kitware.com> 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, master has been updated via db7457452cfbf6734d0ff6e3ba8700e9df46c2ae (commit) via 010c5959864a10f4b83907fb058006e118dd740d (commit) from 7c74de8de8be5a03a572f476bedc9d4c5ca6c0a0 (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=db7457452cfbf6734d0ff6e3ba8700e9df46c2ae commit db7457452cfbf6734d0ff6e3ba8700e9df46c2ae Merge: 7c74de8 010c595 Author: Brad King AuthorDate: Tue Nov 24 09:26:37 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:37 2015 -0500 Merge topic 'test-add_subdirectory-in-function' 010c5959 Tests: Add case for add_subdirectory inside a function ----------------------------------------------------------------------- Summary of changes: Tests/RunCMake/add_subdirectory/Function-stdout.txt | 10 ++++++++++ Tests/RunCMake/add_subdirectory/Function.cmake | 17 +++++++++++++++++ .../RunCMake/add_subdirectory/Function/CMakeLists.txt | 5 +++++ Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake | 1 + 4 files changed, 33 insertions(+) create mode 100644 Tests/RunCMake/add_subdirectory/Function-stdout.txt create mode 100644 Tests/RunCMake/add_subdirectory/Function.cmake create mode 100644 Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:41 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:41 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-592-gbc1136b Message-ID: <20151124142641.BDA90C4DBE@public.kitware.com> 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, master has been updated via bc1136b2753e82f9d98a4870f2ff026fbefe7ace (commit) via 15c454fe82818c3f317db83ddf9ca90347e2b510 (commit) from db7457452cfbf6734d0ff6e3ba8700e9df46c2ae (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=bc1136b2753e82f9d98a4870f2ff026fbefe7ace commit bc1136b2753e82f9d98a4870f2ff026fbefe7ace Merge: db74574 15c454f Author: Brad King AuthorDate: Tue Nov 24 09:26:40 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:40 2015 -0500 Merge topic 'doc-CLEAN_NO_CUSTOM-makefile-only' 15c454fe Help: Document CLEAN_NO_CUSTOM as for Makefile generators only (#15856) ----------------------------------------------------------------------- Summary of changes: Help/prop_dir/CLEAN_NO_CUSTOM.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:44 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:44 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-594-gf66f6e2 Message-ID: <20151124142644.E79B3C4DCB@public.kitware.com> 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, master has been updated via f66f6e2490a883ecb9a9505d87f76869980e776f (commit) via 5dcc833b28eecc95486852f032a54edc64f76eec (commit) from bc1136b2753e82f9d98a4870f2ff026fbefe7ace (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=f66f6e2490a883ecb9a9505d87f76869980e776f commit f66f6e2490a883ecb9a9505d87f76869980e776f Merge: bc1136b 5dcc833 Author: Brad King AuthorDate: Tue Nov 24 09:26:42 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:42 2015 -0500 Merge topic 'FindXercesC-imported-targets' 5dcc833b FindXercesC: Add imported targets and unit test ----------------------------------------------------------------------- Summary of changes: Help/release/dev/FindXercesC-imported-targets.rst | 4 ++ Modules/FindXercesC.cmake | 67 ++++++++++++++++++--- Tests/CMakeLists.txt | 4 ++ Tests/{FindJsonCpp => FindXercesC}/CMakeLists.txt | 8 +-- Tests/FindXercesC/Test/CMakeLists.txt | 17 ++++++ Tests/FindXercesC/Test/main.cxx | 7 +++ 6 files changed, 93 insertions(+), 14 deletions(-) create mode 100644 Help/release/dev/FindXercesC-imported-targets.rst copy Tests/{FindJsonCpp => FindXercesC}/CMakeLists.txt (53%) create mode 100644 Tests/FindXercesC/Test/CMakeLists.txt create mode 100644 Tests/FindXercesC/Test/main.cxx hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:26:47 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:26:47 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-596-g0561151 Message-ID: <20151124142647.3A509C4DE0@public.kitware.com> 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, master has been updated via 056115106a91df5396ef691a58ea4e5563fec24f (commit) via ae1003cdb9b6c4949022ef3b24d368c467a1d15f (commit) from f66f6e2490a883ecb9a9505d87f76869980e776f (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=056115106a91df5396ef691a58ea4e5563fec24f commit 056115106a91df5396ef691a58ea4e5563fec24f Merge: f66f6e2 ae1003c Author: Brad King AuthorDate: Tue Nov 24 09:26:45 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:26:45 2015 -0500 Merge topic 'FindCUDA-aarch64' ae1003cd FindCUDA: Add paths for crosscompiling to aarch64 ----------------------------------------------------------------------- Summary of changes: Modules/FindCUDA.cmake | 3 +++ 1 file changed, 3 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:27:38 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:27:38 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1497-gc87c437 Message-ID: <20151124142738.46E82C4DFA@public.kitware.com> 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 c87c437dd7e2fe613026fe7efeb3472adbd288ec (commit) via 056115106a91df5396ef691a58ea4e5563fec24f (commit) via f66f6e2490a883ecb9a9505d87f76869980e776f (commit) via bc1136b2753e82f9d98a4870f2ff026fbefe7ace (commit) via db7457452cfbf6734d0ff6e3ba8700e9df46c2ae (commit) via 7c74de8de8be5a03a572f476bedc9d4c5ca6c0a0 (commit) via b2de70a036cb3e1ae677b0a923c05276af4e6054 (commit) via 2bcc63e5b5fe0612189400d2b6d3c13acc12e0af (commit) via f430198db64a8cbf1e4c64c0d088fc9e2c79dc54 (commit) from 6dd5bb882afe66f252a7c925a30493cb207c9fa0 (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=c87c437dd7e2fe613026fe7efeb3472adbd288ec commit c87c437dd7e2fe613026fe7efeb3472adbd288ec Merge: 6dd5bb8 0561151 Author: Brad King AuthorDate: Tue Nov 24 09:27:27 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 09:27:27 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 09:30:42 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 09:30:42 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1499-g9b40c5d Message-ID: <20151124143042.33AD8C4F6C@public.kitware.com> 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 9b40c5d41d8ab3cea48dc0387d6f2b237628c985 (commit) via 378185fb7f672113257502ef96cf7106c22dd39f (commit) from c87c437dd7e2fe613026fe7efeb3472adbd288ec (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=9b40c5d41d8ab3cea48dc0387d6f2b237628c985 commit 9b40c5d41d8ab3cea48dc0387d6f2b237628c985 Merge: c87c437 378185f Author: Brad King AuthorDate: Tue Nov 24 09:30:41 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 09:30:41 2015 -0500 Merge topic 'test-cmake_policy-unmatched' into next 378185fb Tests: Add case for unmatched cmake_policy({PUSH,POP}) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=378185fb7f672113257502ef96cf7106c22dd39f commit 378185fb7f672113257502ef96cf7106c22dd39f Author: Brad King AuthorDate: Tue Nov 24 09:12:58 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 09:30:16 2015 -0500 Tests: Add case for unmatched cmake_policy({PUSH,POP}) diff --git a/Tests/RunCMake/PolicyScope/NotClosed-result.txt b/Tests/RunCMake/PolicyScope/NotClosed-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/PolicyScope/NotClosed-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/PolicyScope/NotClosed-stderr.txt b/Tests/RunCMake/PolicyScope/NotClosed-stderr.txt new file mode 100644 index 0000000..293d161 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/NotClosed-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at NotClosed.cmake:[0-9]+ \(include\): + cmake_policy PUSH without matching POP +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/PolicyScope/NotClosed.cmake b/Tests/RunCMake/PolicyScope/NotClosed.cmake new file mode 100644 index 0000000..19b880e --- /dev/null +++ b/Tests/RunCMake/PolicyScope/NotClosed.cmake @@ -0,0 +1 @@ +cmake_policy(PUSH) diff --git a/Tests/RunCMake/PolicyScope/NotOpened-result.txt b/Tests/RunCMake/PolicyScope/NotOpened-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/PolicyScope/NotOpened-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/PolicyScope/NotOpened-stderr.txt b/Tests/RunCMake/PolicyScope/NotOpened-stderr.txt new file mode 100644 index 0000000..f27aac8 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/NotOpened-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at NotOpened.cmake:[0-9]+ \(cmake_policy\): + cmake_policy POP without matching PUSH +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/PolicyScope/NotOpened.cmake b/Tests/RunCMake/PolicyScope/NotOpened.cmake new file mode 100644 index 0000000..bb9f3a3 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/NotOpened.cmake @@ -0,0 +1 @@ +cmake_policy(POP) diff --git a/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake b/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake index d6c021f..abd27f4 100644 --- a/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake +++ b/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake @@ -1,4 +1,6 @@ include(RunCMake) +run_cmake(NotClosed) +run_cmake(NotOpened) run_cmake(parent-dir-generate-time) run_cmake(dir-in-macro-generate-time) ----------------------------------------------------------------------- Summary of changes: .../CMP0004-NEW-result.txt => PolicyScope/NotClosed-result.txt} | 0 Tests/RunCMake/PolicyScope/NotClosed-stderr.txt | 4 ++++ Tests/RunCMake/PolicyScope/NotClosed.cmake | 1 + .../CMP0004-NEW-result.txt => PolicyScope/NotOpened-result.txt} | 0 Tests/RunCMake/PolicyScope/NotOpened-stderr.txt | 4 ++++ Tests/RunCMake/PolicyScope/NotOpened.cmake | 1 + Tests/RunCMake/PolicyScope/RunCMakeTest.cmake | 2 ++ 7 files changed, 12 insertions(+) copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => PolicyScope/NotClosed-result.txt} (100%) create mode 100644 Tests/RunCMake/PolicyScope/NotClosed-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/NotClosed.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => PolicyScope/NotOpened-result.txt} (100%) create mode 100644 Tests/RunCMake/PolicyScope/NotOpened-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/NotOpened.cmake hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 13:41:08 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 13:41:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1501-g257e743 Message-ID: <20151124184108.A5EACC454C@public.kitware.com> 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 257e7438abb7a536dd59c5e85a5ab5b7c74873a2 (commit) via b0e539efd846e166441cf219029daae363ffacaa (commit) from 9b40c5d41d8ab3cea48dc0387d6f2b237628c985 (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=257e7438abb7a536dd59c5e85a5ab5b7c74873a2 commit 257e7438abb7a536dd59c5e85a5ab5b7c74873a2 Merge: 9b40c5d b0e539e Author: Brad King AuthorDate: Tue Nov 24 13:41:07 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 13:41:07 2015 -0500 Merge topic 'test-cmake_policy-unmatched' into next b0e539ef Tests: Add case for package version file unmatched policy scope https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b0e539efd846e166441cf219029daae363ffacaa commit b0e539efd846e166441cf219029daae363ffacaa Author: Brad King AuthorDate: Tue Nov 24 13:36:18 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 13:40:49 2015 -0500 Tests: Add case for package version file unmatched policy scope diff --git a/Tests/RunCMake/find_package/PolicyPop-result.txt b/Tests/RunCMake/find_package/PolicyPop-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/find_package/PolicyPop-stderr.txt b/Tests/RunCMake/find_package/PolicyPop-stderr.txt new file mode 100644 index 0000000..745d39a --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at PolicyPop/PolicyPopConfigVersion.cmake:3 \(cmake_policy\): + cmake_policy POP without matching PUSH +Call Stack \(most recent call first\): + PolicyPop.cmake:1 \(find_package\) + CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/find_package/PolicyPop.cmake b/Tests/RunCMake/find_package/PolicyPop.cmake new file mode 100644 index 0000000..4866f24 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop.cmake @@ -0,0 +1 @@ +find_package(PolicyPop 1 CONFIG PATHS ${CMAKE_CURRENT_SOURCE_DIR}/PolicyPop NO_DEFAULT_PATH) diff --git a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake new file mode 100644 index 0000000..483fb10 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake @@ -0,0 +1,3 @@ +set(PACKAGE_VERSION 1) +set(PACKAGE_VERSION_COMPATIBLE 1) +cmake_policy(POP) diff --git a/Tests/RunCMake/find_package/PolicyPush-result.txt b/Tests/RunCMake/find_package/PolicyPush-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/find_package/PolicyPush-stderr.txt b/Tests/RunCMake/find_package/PolicyPush-stderr.txt new file mode 100644 index 0000000..1afcb16 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at PolicyPush/PolicyPushConfigVersion.cmake:1 \(find_package\): + cmake_policy PUSH without matching POP +Call Stack \(most recent call first\): + PolicyPush.cmake:1 \(find_package\) + CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/find_package/PolicyPush.cmake b/Tests/RunCMake/find_package/PolicyPush.cmake new file mode 100644 index 0000000..30c3ce2 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush.cmake @@ -0,0 +1 @@ +find_package(PolicyPush 1 CONFIG PATHS ${CMAKE_CURRENT_SOURCE_DIR}/PolicyPush NO_DEFAULT_PATH) diff --git a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake new file mode 100644 index 0000000..45a8dbd --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake @@ -0,0 +1,3 @@ +set(PACKAGE_VERSION 1) +set(PACKAGE_VERSION_COMPATIBLE 1) +cmake_policy(PUSH) diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake index 42705b7..81b2906 100644 --- a/Tests/RunCMake/find_package/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -13,4 +13,6 @@ run_cmake(MissingConfigOneName) run_cmake(MissingConfigRequired) run_cmake(MissingConfigVersion) run_cmake(MixedModeOptions) +run_cmake(PolicyPush) +run_cmake(PolicyPop) run_cmake(SetFoundFALSE) ----------------------------------------------------------------------- Summary of changes: .../CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} | 0 Tests/RunCMake/find_package/PolicyPop-stderr.txt | 5 +++++ Tests/RunCMake/find_package/PolicyPop.cmake | 1 + .../RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake | 0 .../RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake | 3 +++ .../CMP0004-NEW-result.txt => find_package/PolicyPush-result.txt} | 0 Tests/RunCMake/find_package/PolicyPush-stderr.txt | 5 +++++ Tests/RunCMake/find_package/PolicyPush.cmake | 1 + .../RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake | 0 .../find_package/PolicyPush/PolicyPushConfigVersion.cmake | 3 +++ Tests/RunCMake/find_package/RunCMakeTest.cmake | 2 ++ 11 files changed, 20 insertions(+) copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPop.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPush-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPush.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 14:00:53 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 14:00:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1503-ga235861 Message-ID: <20151124190053.5E82FC4EFA@public.kitware.com> 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 a2358610481fa1206418d43bbc95aaeda3f54816 (commit) via d8dd2a7aa7f94982975fd1786dfcc0203ccc8428 (commit) from 257e7438abb7a536dd59c5e85a5ab5b7c74873a2 (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=a2358610481fa1206418d43bbc95aaeda3f54816 commit a2358610481fa1206418d43bbc95aaeda3f54816 Merge: 257e743 d8dd2a7 Author: Brad King AuthorDate: Tue Nov 24 14:00:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 14:00:52 2015 -0500 Merge topic 'test-cmake_policy-unmatched' into next d8dd2a7a Revert "Tests: Add case for package version file unmatched policy scope" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d8dd2a7aa7f94982975fd1786dfcc0203ccc8428 commit d8dd2a7aa7f94982975fd1786dfcc0203ccc8428 Author: Brad King AuthorDate: Tue Nov 24 14:00:32 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 14:00:32 2015 -0500 Revert "Tests: Add case for package version file unmatched policy scope" This reverts commit b0e539efd846e166441cf219029daae363ffacaa. diff --git a/Tests/RunCMake/find_package/PolicyPop-result.txt b/Tests/RunCMake/find_package/PolicyPop-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/find_package/PolicyPop-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/find_package/PolicyPop-stderr.txt b/Tests/RunCMake/find_package/PolicyPop-stderr.txt deleted file mode 100644 index 745d39a..0000000 --- a/Tests/RunCMake/find_package/PolicyPop-stderr.txt +++ /dev/null @@ -1,5 +0,0 @@ -^CMake Error at PolicyPop/PolicyPopConfigVersion.cmake:3 \(cmake_policy\): - cmake_policy POP without matching PUSH -Call Stack \(most recent call first\): - PolicyPop.cmake:1 \(find_package\) - CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/find_package/PolicyPop.cmake b/Tests/RunCMake/find_package/PolicyPop.cmake deleted file mode 100644 index 4866f24..0000000 --- a/Tests/RunCMake/find_package/PolicyPop.cmake +++ /dev/null @@ -1 +0,0 @@ -find_package(PolicyPop 1 CONFIG PATHS ${CMAKE_CURRENT_SOURCE_DIR}/PolicyPop NO_DEFAULT_PATH) diff --git a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake deleted file mode 100644 index 483fb10..0000000 --- a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(PACKAGE_VERSION 1) -set(PACKAGE_VERSION_COMPATIBLE 1) -cmake_policy(POP) diff --git a/Tests/RunCMake/find_package/PolicyPush-result.txt b/Tests/RunCMake/find_package/PolicyPush-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/find_package/PolicyPush-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/find_package/PolicyPush-stderr.txt b/Tests/RunCMake/find_package/PolicyPush-stderr.txt deleted file mode 100644 index 1afcb16..0000000 --- a/Tests/RunCMake/find_package/PolicyPush-stderr.txt +++ /dev/null @@ -1,5 +0,0 @@ -^CMake Error at PolicyPush/PolicyPushConfigVersion.cmake:1 \(find_package\): - cmake_policy PUSH without matching POP -Call Stack \(most recent call first\): - PolicyPush.cmake:1 \(find_package\) - CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/find_package/PolicyPush.cmake b/Tests/RunCMake/find_package/PolicyPush.cmake deleted file mode 100644 index 30c3ce2..0000000 --- a/Tests/RunCMake/find_package/PolicyPush.cmake +++ /dev/null @@ -1 +0,0 @@ -find_package(PolicyPush 1 CONFIG PATHS ${CMAKE_CURRENT_SOURCE_DIR}/PolicyPush NO_DEFAULT_PATH) diff --git a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake deleted file mode 100644 index 45a8dbd..0000000 --- a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(PACKAGE_VERSION 1) -set(PACKAGE_VERSION_COMPATIBLE 1) -cmake_policy(PUSH) diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake index 81b2906..42705b7 100644 --- a/Tests/RunCMake/find_package/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -13,6 +13,4 @@ run_cmake(MissingConfigOneName) run_cmake(MissingConfigRequired) run_cmake(MissingConfigVersion) run_cmake(MixedModeOptions) -run_cmake(PolicyPush) -run_cmake(PolicyPop) run_cmake(SetFoundFALSE) ----------------------------------------------------------------------- Summary of changes: Tests/RunCMake/find_package/PolicyPop-result.txt | 1 - Tests/RunCMake/find_package/PolicyPop-stderr.txt | 5 ----- Tests/RunCMake/find_package/PolicyPop.cmake | 1 - .../RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake | 3 --- Tests/RunCMake/find_package/PolicyPush-result.txt | 1 - Tests/RunCMake/find_package/PolicyPush-stderr.txt | 5 ----- Tests/RunCMake/find_package/PolicyPush.cmake | 1 - .../find_package/PolicyPush/PolicyPushConfigVersion.cmake | 3 --- Tests/RunCMake/find_package/RunCMakeTest.cmake | 2 -- 9 files changed, 22 deletions(-) delete mode 100644 Tests/RunCMake/find_package/PolicyPop-result.txt delete mode 100644 Tests/RunCMake/find_package/PolicyPop-stderr.txt delete mode 100644 Tests/RunCMake/find_package/PolicyPop.cmake delete mode 100644 Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake delete mode 100644 Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake delete mode 100644 Tests/RunCMake/find_package/PolicyPush-result.txt delete mode 100644 Tests/RunCMake/find_package/PolicyPush-stderr.txt delete mode 100644 Tests/RunCMake/find_package/PolicyPush.cmake delete mode 100644 Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake delete mode 100644 Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake hooks/post-receive -- CMake From brad.king at kitware.com Tue Nov 24 14:12:19 2015 From: brad.king at kitware.com (Brad King) Date: Tue, 24 Nov 2015 14:12:19 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1507-gf368abb Message-ID: <20151124191219.CE49BC457D@public.kitware.com> 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 f368abbf74ff9b59b40e142a9c54ccf88c7c49ea (commit) via 62126b67e0048800a833d3c4ea86d2307f1a4a06 (commit) via 2e28c619f8997a2b86c72b53659be371ff10a790 (commit) via b219ff94acf0b6c934c35e2ce42dfbf99580f1e8 (commit) from a2358610481fa1206418d43bbc95aaeda3f54816 (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=f368abbf74ff9b59b40e142a9c54ccf88c7c49ea commit f368abbf74ff9b59b40e142a9c54ccf88c7c49ea Merge: a235861 62126b6 Author: Brad King AuthorDate: Tue Nov 24 14:12:18 2015 -0500 Commit: CMake Topic Stage CommitDate: Tue Nov 24 14:12:18 2015 -0500 Merge topic 'fix-find_package-version-file-error-stack' into next 62126b67 Merge branch 'test-cmake_policy-unmatched' into fix-find_package-version-file-error-stack 2e28c619 cmState: Skip variable scope snapshots to avoid call stack duplicates b219ff94 Tests: Add case for package version file unmatched policy scope https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62126b67e0048800a833d3c4ea86d2307f1a4a06 commit 62126b67e0048800a833d3c4ea86d2307f1a4a06 Merge: 2e28c61 b219ff9 Author: Brad King AuthorDate: Tue Nov 24 14:09:54 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 14:09:54 2015 -0500 Merge branch 'test-cmake_policy-unmatched' into fix-find_package-version-file-error-stack https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e28c619f8997a2b86c72b53659be371ff10a790 commit 2e28c619f8997a2b86c72b53659be371ff10a790 Author: Brad King AuthorDate: Tue Nov 24 14:05:43 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 14:09:27 2015 -0500 cmState: Skip variable scope snapshots to avoid call stack duplicates Since commit v3.4.0-rc1~179^2~1 (cmState: Add a VariableScope snapshot type, 2015-08-23) the snapshot stack may have a VariableScopeType entry. Skip over these when constructing the call stack, just as we do for policy scopes. Otherwise we report the command causing the variable scope to be entered twice (e.g. find_package while loading a package version file). diff --git a/Source/cmState.cxx b/Source/cmState.cxx index ce9ff32..363d2bf 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -1081,7 +1081,8 @@ cmState::Snapshot cmState::Snapshot::GetCallStackParent() const Snapshot snapshot; PositionType parentPos = this->Position; - while(parentPos->SnapshotType == cmState::PolicyScopeType) + while (parentPos->SnapshotType == cmState::PolicyScopeType || + parentPos->SnapshotType == cmState::VariableScopeType) { ++parentPos; } @@ -1092,7 +1093,8 @@ cmState::Snapshot cmState::Snapshot::GetCallStackParent() const } ++parentPos; - while(parentPos->SnapshotType == cmState::PolicyScopeType) + while (parentPos->SnapshotType == cmState::PolicyScopeType || + parentPos->SnapshotType == cmState::VariableScopeType) { ++parentPos; } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b219ff94acf0b6c934c35e2ce42dfbf99580f1e8 commit b219ff94acf0b6c934c35e2ce42dfbf99580f1e8 Author: Brad King AuthorDate: Tue Nov 24 13:36:18 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 14:01:21 2015 -0500 Tests: Add case for package version file unmatched policy scope diff --git a/Tests/RunCMake/find_package/PolicyPop-result.txt b/Tests/RunCMake/find_package/PolicyPop-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/find_package/PolicyPop-stderr.txt b/Tests/RunCMake/find_package/PolicyPop-stderr.txt new file mode 100644 index 0000000..745d39a --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at PolicyPop/PolicyPopConfigVersion.cmake:3 \(cmake_policy\): + cmake_policy POP without matching PUSH +Call Stack \(most recent call first\): + PolicyPop.cmake:1 \(find_package\) + CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/find_package/PolicyPop.cmake b/Tests/RunCMake/find_package/PolicyPop.cmake new file mode 100644 index 0000000..4866f24 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop.cmake @@ -0,0 +1 @@ +find_package(PolicyPop 1 CONFIG PATHS ${CMAKE_CURRENT_SOURCE_DIR}/PolicyPop NO_DEFAULT_PATH) diff --git a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake new file mode 100644 index 0000000..483fb10 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake @@ -0,0 +1,3 @@ +set(PACKAGE_VERSION 1) +set(PACKAGE_VERSION_COMPATIBLE 1) +cmake_policy(POP) diff --git a/Tests/RunCMake/find_package/PolicyPush-result.txt b/Tests/RunCMake/find_package/PolicyPush-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/find_package/PolicyPush-stderr.txt b/Tests/RunCMake/find_package/PolicyPush-stderr.txt new file mode 100644 index 0000000..1afcb16 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at PolicyPush/PolicyPushConfigVersion.cmake:1 \(find_package\): + cmake_policy PUSH without matching POP +Call Stack \(most recent call first\): + PolicyPush.cmake:1 \(find_package\) + CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/find_package/PolicyPush.cmake b/Tests/RunCMake/find_package/PolicyPush.cmake new file mode 100644 index 0000000..30c3ce2 --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush.cmake @@ -0,0 +1 @@ +find_package(PolicyPush 1 CONFIG PATHS ${CMAKE_CURRENT_SOURCE_DIR}/PolicyPush NO_DEFAULT_PATH) diff --git a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake new file mode 100644 index 0000000..45a8dbd --- /dev/null +++ b/Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake @@ -0,0 +1,3 @@ +set(PACKAGE_VERSION 1) +set(PACKAGE_VERSION_COMPATIBLE 1) +cmake_policy(PUSH) diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake index 42705b7..81b2906 100644 --- a/Tests/RunCMake/find_package/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -13,4 +13,6 @@ run_cmake(MissingConfigOneName) run_cmake(MissingConfigRequired) run_cmake(MissingConfigVersion) run_cmake(MixedModeOptions) +run_cmake(PolicyPush) +run_cmake(PolicyPop) run_cmake(SetFoundFALSE) ----------------------------------------------------------------------- Summary of changes: Source/cmState.cxx | 6 ++++-- .../CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} | 0 Tests/RunCMake/find_package/PolicyPop-stderr.txt | 5 +++++ Tests/RunCMake/find_package/PolicyPop.cmake | 1 + .../RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake | 0 .../RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake | 3 +++ .../PolicyPush-result.txt} | 0 Tests/RunCMake/find_package/PolicyPush-stderr.txt | 5 +++++ Tests/RunCMake/find_package/PolicyPush.cmake | 1 + .../RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake | 0 .../find_package/PolicyPush/PolicyPushConfigVersion.cmake | 3 +++ Tests/RunCMake/find_package/RunCMakeTest.cmake | 2 ++ 12 files changed, 24 insertions(+), 2 deletions(-) copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPop.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPush-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPush.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Wed Nov 25 00:01:11 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 25 Nov 2015 00:01:11 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-597-g75c7327 Message-ID: <20151125050111.78AE2C50C1@public.kitware.com> 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, master has been updated via 75c73272862285b1b35575b04abbe871ac5e9b2e (commit) from 056115106a91df5396ef691a58ea4e5563fec24f (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=75c73272862285b1b35575b04abbe871ac5e9b2e commit 75c73272862285b1b35575b04abbe871ac5e9b2e Author: Kitware Robot AuthorDate: Wed Nov 25 00:01:08 2015 -0500 Commit: Kitware Robot CommitDate: Wed Nov 25 00:01:08 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 995a72d..c5a9682 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151124) +set(CMake_VERSION_PATCH 20151125) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 25 09:21:47 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 25 Nov 2015 09:21:47 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-599-g2b24fbf Message-ID: <20151125142147.EF394C4F10@public.kitware.com> 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, master has been updated via 2b24fbf48ce00777738c306354c8c7ec2cb3237b (commit) via 378185fb7f672113257502ef96cf7106c22dd39f (commit) from 75c73272862285b1b35575b04abbe871ac5e9b2e (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=2b24fbf48ce00777738c306354c8c7ec2cb3237b commit 2b24fbf48ce00777738c306354c8c7ec2cb3237b Merge: 75c7327 378185f Author: Brad King AuthorDate: Wed Nov 25 09:21:45 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 25 09:21:45 2015 -0500 Merge topic 'test-cmake_policy-unmatched' 378185fb Tests: Add case for unmatched cmake_policy({PUSH,POP}) ----------------------------------------------------------------------- Summary of changes: .../CMP0004-NEW-result.txt => PolicyScope/NotClosed-result.txt} | 0 Tests/RunCMake/PolicyScope/NotClosed-stderr.txt | 4 ++++ Tests/RunCMake/PolicyScope/NotClosed.cmake | 1 + .../CMP0004-NEW-result.txt => PolicyScope/NotOpened-result.txt} | 0 Tests/RunCMake/PolicyScope/NotOpened-stderr.txt | 4 ++++ Tests/RunCMake/PolicyScope/NotOpened.cmake | 1 + Tests/RunCMake/PolicyScope/RunCMakeTest.cmake | 2 ++ 7 files changed, 12 insertions(+) copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => PolicyScope/NotClosed-result.txt} (100%) create mode 100644 Tests/RunCMake/PolicyScope/NotClosed-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/NotClosed.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => PolicyScope/NotOpened-result.txt} (100%) create mode 100644 Tests/RunCMake/PolicyScope/NotOpened-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/NotOpened.cmake hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 25 09:21:51 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 25 Nov 2015 09:21:51 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-603-g99533c8 Message-ID: <20151125142151.4157CC49BF@public.kitware.com> 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, master has been updated via 99533c8e345c627f5f5a98be5cda7b7624756fb9 (commit) via 62126b67e0048800a833d3c4ea86d2307f1a4a06 (commit) via 2e28c619f8997a2b86c72b53659be371ff10a790 (commit) via b219ff94acf0b6c934c35e2ce42dfbf99580f1e8 (commit) from 2b24fbf48ce00777738c306354c8c7ec2cb3237b (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=99533c8e345c627f5f5a98be5cda7b7624756fb9 commit 99533c8e345c627f5f5a98be5cda7b7624756fb9 Merge: 2b24fbf 62126b6 Author: Brad King AuthorDate: Wed Nov 25 09:21:49 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 25 09:21:49 2015 -0500 Merge topic 'fix-find_package-version-file-error-stack' 62126b67 Merge branch 'test-cmake_policy-unmatched' into fix-find_package-version-file-error-stack 2e28c619 cmState: Skip variable scope snapshots to avoid call stack duplicates b219ff94 Tests: Add case for package version file unmatched policy scope ----------------------------------------------------------------------- Summary of changes: Source/cmState.cxx | 6 ++++-- .../CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} | 0 Tests/RunCMake/find_package/PolicyPop-stderr.txt | 5 +++++ Tests/RunCMake/find_package/PolicyPop.cmake | 1 + .../RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake | 0 .../RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake | 3 +++ .../PolicyPush-result.txt} | 0 Tests/RunCMake/find_package/PolicyPush-stderr.txt | 5 +++++ Tests/RunCMake/find_package/PolicyPush.cmake | 1 + .../RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake | 0 .../find_package/PolicyPush/PolicyPushConfigVersion.cmake | 3 +++ Tests/RunCMake/find_package/RunCMakeTest.cmake | 2 ++ 12 files changed, 24 insertions(+), 2 deletions(-) copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPop.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPush-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPush.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 25 09:22:19 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 25 Nov 2015 09:22:19 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1511-g35ab6c4 Message-ID: <20151125142219.D68B8C4F4C@public.kitware.com> 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 35ab6c4b9ecbdcec4b5fbb9a14ae4381c2d99906 (commit) via 99533c8e345c627f5f5a98be5cda7b7624756fb9 (commit) via 2b24fbf48ce00777738c306354c8c7ec2cb3237b (commit) via 75c73272862285b1b35575b04abbe871ac5e9b2e (commit) from f368abbf74ff9b59b40e142a9c54ccf88c7c49ea (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=35ab6c4b9ecbdcec4b5fbb9a14ae4381c2d99906 commit 35ab6c4b9ecbdcec4b5fbb9a14ae4381c2d99906 Merge: f368abb 99533c8 Author: Brad King AuthorDate: Wed Nov 25 09:22:06 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 09:22:06 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Nov 25 12:39:49 2015 From: brad.king at kitware.com (Brad King) Date: Wed, 25 Nov 2015 12:39:49 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1522-gac4154f Message-ID: <20151125173949.DD368C44AF@public.kitware.com> 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 ac4154fb048ce3291651ae97d4d92b2a6440962b (commit) via 9342a4c2033ce7bb6845afd3625ac9c195a8e22d (commit) via 5f860ebb67e86e0aa407e26ddf79652f73742211 (commit) via f21dc4a81c05c79b873c9918f6fe8aff4bf02133 (commit) via bc1d3a8a8783848016ef12044a02a28b620c41a0 (commit) via 85fe26b5f742b704b51a7e15b4806366feab3a23 (commit) via 518d6b22f6705c4747c713031587705641540364 (commit) via 32edac6fddfbe91e47b34506cda855232d5a9e2c (commit) via 0fa7f143a08b62459900bd811c2c0674562bb8be (commit) via d85c9176ae15f4fb203e501d777cfce8304bf256 (commit) via 8e1be7bf688dc282408aa0403e9896fa5a142ec4 (commit) from 35ab6c4b9ecbdcec4b5fbb9a14ae4381c2d99906 (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=ac4154fb048ce3291651ae97d4d92b2a6440962b commit ac4154fb048ce3291651ae97d4d92b2a6440962b Merge: 35ab6c4 9342a4c Author: Brad King AuthorDate: Wed Nov 25 12:39:47 2015 -0500 Commit: CMake Topic Stage CommitDate: Wed Nov 25 12:39:47 2015 -0500 Merge topic 'reduce-cmState-accumulation-for-master' into next 9342a4c2 Merge branch 'reduce-cmState-accumulation' into reduce-cmState-accumulation-for-master 5f860ebb cmState: Avoid accumulating snapshot storage for short-lived scopes f21dc4a8 cmState: Avoid accumulating policy stack storage for short-lived scopes bc1d3a8a cmListFileCache: Implement cmListFileBacktrace ctor/dtor out-of-line 85fe26b5 cmLinkedTree: Add Pop method 518d6b22 cmLinkedTree: Rename 'Extend' method to 'Push' 32edac6f cmState: Enforce policy scope balancing around variable scopes 0fa7f143 cmLocalGenerator: Use ScopePushPop RAII class to manage local variable scopes d85c9176 cmMakefile: Remove unused PolicyPushPop interfaces 8e1be7bf cmMakefile: Clarify purpose of method that pops a scope snapshot https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9342a4c2033ce7bb6845afd3625ac9c195a8e22d commit 9342a4c2033ce7bb6845afd3625ac9c195a8e22d Merge: 99533c8 5f860eb Author: Brad King AuthorDate: Wed Nov 25 12:33:06 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 12:33:06 2015 -0500 Merge branch 'reduce-cmState-accumulation' into reduce-cmState-accumulation-for-master diff --cc Source/cmState.cxx index 4362157,c1ead6c..b8e604b --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@@ -334,14 -288,8 +335,14 @@@ cmState::Snapshot cmState::Reset( pos->PolicyScope = this->PolicyStack.Root(); assert(pos->Policies.IsValid()); assert(pos->PolicyRoot.IsValid()); + + { + std::string srcDir = + cmDefinitions::Get("CMAKE_SOURCE_DIR", pos->Vars, pos->Root); + std::string binDir = + cmDefinitions::Get("CMAKE_BINARY_DIR", pos->Vars, pos->Root); this->VarTree.Clear(); - pos->Vars = this->VarTree.Extend(this->VarTree.Root()); + pos->Vars = this->VarTree.Push(this->VarTree.Root()); pos->Parent = this->VarTree.Root(); pos->Root = this->VarTree.Root(); @@@ -871,13 -807,9 +874,13 @@@ cmState::CreateBuildsystemDirectorySnap originSnapshot.Position->Vars; pos->Parent = origin; pos->Root = origin; - pos->Vars = this->VarTree.Extend(origin); + pos->Vars = this->VarTree.Push(origin); + cmState::Snapshot snapshot = cmState::Snapshot(this, pos); originSnapshot.Position->BuildSystemDirectory->Children.push_back(snapshot); + snapshot.SetDefaultDefinitions(); + snapshot.InitializeFromParent(); + snapshot.SetDirectoryDefinitions(); return snapshot; } @@@ -1069,10 -1021,13 +1094,15 @@@ void cmState::Directory::SetCurrentBina loc, this->DirectoryState->CurrentBinaryDirectoryComponents); this->ComputeRelativePathTopBinary(); + + this->Snapshot_.SetDefinition("CMAKE_CURRENT_BINARY_DIR", loc.c_str()); } + void cmState::Snapshot::Keep() + { + this->Position->Keep = true; + } + void cmState::Snapshot::SetListFile(const std::string& listfile) { *this->Position->ExecutionListFile = listfile; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5f860ebb67e86e0aa407e26ddf79652f73742211 commit 5f860ebb67e86e0aa407e26ddf79652f73742211 Author: Brad King AuthorDate: Tue Nov 24 15:00:47 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 12:30:13 2015 -0500 cmState: Avoid accumulating snapshot storage for short-lived scopes We need to keep only certain snapshot types and their ancestors. Also keep those needed for backtraces. diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index 676074f..1465f90 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -403,6 +403,10 @@ cmListFileBacktrace::cmListFileBacktrace(cmState::Snapshot snapshot, : Context(cc) , Snapshot(snapshot) { + if (this->Snapshot.IsValid()) + { + this->Snapshot.Keep(); + } } cmListFileBacktrace::~cmListFileBacktrace() diff --git a/Source/cmState.cxx b/Source/cmState.cxx index f9e96f1..c1ead6c 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -27,6 +27,7 @@ struct cmState::SnapshotDataType cmLinkedTree::iterator PolicyRoot; cmLinkedTree::iterator PolicyScope; cmState::SnapshotType SnapshotType; + bool Keep; cmLinkedTree::iterator ExecutionListFile; cmLinkedTree::iterator BuildSystemDirectory; @@ -755,6 +756,7 @@ cmState::Snapshot cmState::CreateBaseSnapshot() pos->DirectoryParent = this->SnapshotData.Root(); pos->ScopeParent = this->SnapshotData.Root(); pos->SnapshotType = BaseType; + pos->Keep = true; pos->BuildSystemDirectory = this->BuildsystemDirectory.Push(this->BuildsystemDirectory.Root()); pos->ExecutionListFile = @@ -787,6 +789,7 @@ cmState::CreateBuildsystemDirectorySnapshot(Snapshot originSnapshot, pos->DirectoryParent = originSnapshot.Position; pos->ScopeParent = originSnapshot.Position; pos->SnapshotType = BuildsystemDirectoryType; + pos->Keep = true; pos->BuildSystemDirectory = this->BuildsystemDirectory.Push( originSnapshot.Position->BuildSystemDirectory); @@ -822,6 +825,7 @@ cmState::CreateFunctionCallSnapshot(cmState::Snapshot originSnapshot, pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = FunctionCallType; + pos->Keep = false; pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); pos->BuildSystemDirectory->DirectoryEnd = pos; @@ -846,6 +850,7 @@ cmState::CreateMacroCallSnapshot(cmState::Snapshot originSnapshot, pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = MacroCallType; + pos->Keep = false; pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); assert(originSnapshot.Position->Vars.IsValid()); @@ -865,6 +870,7 @@ cmState::CreateCallStackSnapshot(cmState::Snapshot originSnapshot, pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = CallStackType; + pos->Keep = true; pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); assert(originSnapshot.Position->Vars.IsValid()); @@ -884,6 +890,7 @@ cmState::CreateVariableScopeSnapshot(cmState::Snapshot originSnapshot, pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = VariableScopeType; + pos->Keep = false; pos->PolicyScope = originSnapshot.Position->Policies; assert(originSnapshot.Position->Vars.IsValid()); @@ -906,6 +913,7 @@ cmState::CreateInlineListFileSnapshot(cmState::Snapshot originSnapshot, pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = InlineListFileType; + pos->Keep = true; pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); pos->BuildSystemDirectory->DirectoryEnd = pos; @@ -919,6 +927,7 @@ cmState::CreatePolicyScopeSnapshot(cmState::Snapshot originSnapshot) PositionType pos = this->SnapshotData.Push(originSnapshot.Position, *originSnapshot.Position); pos->SnapshotType = PolicyScopeType; + pos->Keep = false; pos->BuildSystemDirectory->DirectoryEnd = pos; pos->PolicyScope = originSnapshot.Position->Policies; return cmState::Snapshot(this, pos); @@ -937,6 +946,21 @@ cmState::Snapshot cmState::Pop(cmState::Snapshot originSnapshot) prevPos->BuildSystemDirectory->CompileOptions.size(); prevPos->BuildSystemDirectory->DirectoryEnd = prevPos; + if (!pos->Keep && this->SnapshotData.IsLast(pos)) + { + if (pos->Vars != prevPos->Vars) + { + assert(this->VarTree.IsLast(pos->Vars)); + this->VarTree.Pop(pos->Vars); + } + if (pos->ExecutionListFile != prevPos->ExecutionListFile) + { + assert(this->ExecutionListFiles.IsLast(pos->ExecutionListFile)); + this->ExecutionListFiles.Pop(pos->ExecutionListFile); + } + this->SnapshotData.Pop(pos); + } + return Snapshot(this, prevPos); } @@ -999,6 +1023,11 @@ void cmState::Directory::SetCurrentBinary(std::string const& dir) this->ComputeRelativePathTopBinary(); } +void cmState::Snapshot::Keep() +{ + this->Position->Keep = true; +} + void cmState::Snapshot::SetListFile(const std::string& listfile) { *this->Position->ExecutionListFile = listfile; diff --git a/Source/cmState.h b/Source/cmState.h index 99e537c..a66603f 100644 --- a/Source/cmState.h +++ b/Source/cmState.h @@ -62,6 +62,7 @@ public: std::vector ClosureKeys() const; bool RaiseScope(std::string const& var, const char* varDef); + void Keep(); void SetListFile(std::string const& listfile); std::string GetExecutionListFile() const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f21dc4a81c05c79b873c9918f6fe8aff4bf02133 commit f21dc4a81c05c79b873c9918f6fe8aff4bf02133 Author: Brad King AuthorDate: Tue Nov 24 14:44:19 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 10:37:59 2015 -0500 cmState: Avoid accumulating policy stack storage for short-lived scopes We enforce policy push/pop balance around any scope that pushes/pops a snapshot. Therefore a snapshot may never reference entries of PolicyStack that were created in nested scopes. Free storage of short-lived policy stack entries when they are popped. diff --git a/Source/cmState.cxx b/Source/cmState.cxx index 3c96d46..f9e96f1 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -1124,7 +1124,7 @@ bool cmState::Snapshot::PopPolicy() { return false; } - ++pos->Policies; + pos->Policies = this->State->PolicyStack.Pop(pos->Policies); return true; } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bc1d3a8a8783848016ef12044a02a28b620c41a0 commit bc1d3a8a8783848016ef12044a02a28b620c41a0 Author: Brad King AuthorDate: Tue Nov 24 19:43:04 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 10:36:52 2015 -0500 cmListFileCache: Implement cmListFileBacktrace ctor/dtor out-of-line diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index bff2986..676074f 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -398,6 +398,17 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token, } } +cmListFileBacktrace::cmListFileBacktrace(cmState::Snapshot snapshot, + cmCommandContext const& cc) + : Context(cc) + , Snapshot(snapshot) +{ +} + +cmListFileBacktrace::~cmListFileBacktrace() +{ +} + void cmListFileBacktrace::PrintTitle(std::ostream& out) const { if (!this->Snapshot.IsValid()) diff --git a/Source/cmListFileCache.h b/Source/cmListFileCache.h index 0afd7f5..17ee10f 100644 --- a/Source/cmListFileCache.h +++ b/Source/cmListFileCache.h @@ -90,10 +90,8 @@ class cmListFileBacktrace { public: cmListFileBacktrace(cmState::Snapshot snapshot = cmState::Snapshot(), - cmCommandContext const& cc = cmCommandContext()) - : Context(cc), Snapshot(snapshot) - { - } + cmCommandContext const& cc = cmCommandContext()); + ~cmListFileBacktrace(); void PrintTitle(std::ostream& out) const; void PrintCallStack(std::ostream& out) const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=85fe26b5f742b704b51a7e15b4806366feab3a23 commit 85fe26b5f742b704b51a7e15b4806366feab3a23 Author: Brad King AuthorDate: Tue Nov 24 14:42:20 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 10:33:26 2015 -0500 cmLinkedTree: Add Pop method Add a method to increment an iterator (follow the "up" pointer) to the previous level in the stack of scopes and free storage of the top of the stack if possible. This will allow short-lived scopes to be created and destroyed by matching Push/Pop pairs without accumulating storage. diff --git a/Source/cmLinkedTree.h b/Source/cmLinkedTree.h index 93d801e..3b41459 100644 --- a/Source/cmLinkedTree.h +++ b/Source/cmLinkedTree.h @@ -152,6 +152,27 @@ public: return Push_impl(it, t); } + bool IsLast(iterator it) + { + return it.Position == this->Data.size(); + } + + iterator Pop(iterator it) + { + assert(!this->Data.empty()); + assert(this->UpPositions.size() == this->Data.size()); + bool const isLast = this->IsLast(it); + ++it; + // If this is the last entry then no other entry can refer + // to it so we can drop its storage. + if (isLast) + { + this->Data.pop_back(); + this->UpPositions.pop_back(); + } + return it; + } + iterator Truncate() { assert(this->UpPositions.size() > 0); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=518d6b22f6705c4747c713031587705641540364 commit 518d6b22f6705c4747c713031587705641540364 Author: Brad King AuthorDate: Wed Nov 25 10:23:05 2015 -0500 Commit: Brad King CommitDate: Wed Nov 25 10:23:05 2015 -0500 cmLinkedTree: Rename 'Extend' method to 'Push' Logically the method pushes a nested scope on top of a given scope because the "up" pointer sequence forms a stack independent of any other branches of the tree. diff --git a/Source/cmLinkedTree.h b/Source/cmLinkedTree.h index 721a246..93d801e 100644 --- a/Source/cmLinkedTree.h +++ b/Source/cmLinkedTree.h @@ -24,7 +24,7 @@ needs of the cmState. For example, the Truncate() method is a specific requirement of the cmState. - An empty cmLinkedTree provides a Root() method, and an Extend() method, + An empty cmLinkedTree provides a Root() method, and an Push() method, each of which return iterators. A Tree can be built up by extending from the root, and then extending from any other iterator. @@ -142,14 +142,14 @@ public: return iterator(const_cast(this), 0); } - iterator Extend(iterator it) + iterator Push(iterator it) { - return Extend_impl(it, T()); + return Push_impl(it, T()); } - iterator Extend(iterator it, T t) + iterator Push(iterator it, T t) { - return Extend_impl(it, t); + return Push_impl(it, t); } iterator Truncate() @@ -179,7 +179,7 @@ private: return &this->Data[pos]; } - iterator Extend_impl(iterator it, T t) + iterator Push_impl(iterator it, T t) { assert(this->UpPositions.size() == this->Data.size()); assert(it.Position <= this->UpPositions.size()); diff --git a/Source/cmState.cxx b/Source/cmState.cxx index e20ac89..3c96d46 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -288,7 +288,7 @@ cmState::Snapshot cmState::Reset() assert(pos->Policies.IsValid()); assert(pos->PolicyRoot.IsValid()); this->VarTree.Clear(); - pos->Vars = this->VarTree.Extend(this->VarTree.Root()); + pos->Vars = this->VarTree.Push(this->VarTree.Root()); pos->Parent = this->VarTree.Root(); pos->Root = this->VarTree.Root(); @@ -751,14 +751,14 @@ void cmState::Directory::ComputeRelativePathTopBinary() cmState::Snapshot cmState::CreateBaseSnapshot() { - PositionType pos = this->SnapshotData.Extend(this->SnapshotData.Root()); + PositionType pos = this->SnapshotData.Push(this->SnapshotData.Root()); pos->DirectoryParent = this->SnapshotData.Root(); pos->ScopeParent = this->SnapshotData.Root(); pos->SnapshotType = BaseType; pos->BuildSystemDirectory = - this->BuildsystemDirectory.Extend(this->BuildsystemDirectory.Root()); + this->BuildsystemDirectory.Push(this->BuildsystemDirectory.Root()); pos->ExecutionListFile = - this->ExecutionListFiles.Extend(this->ExecutionListFiles.Root()); + this->ExecutionListFiles.Push(this->ExecutionListFiles.Root()); pos->IncludeDirectoryPosition = 0; pos->CompileDefinitionsPosition = 0; pos->CompileOptionsPosition = 0; @@ -768,7 +768,7 @@ cmState::Snapshot cmState::CreateBaseSnapshot() pos->PolicyScope = this->PolicyStack.Root(); assert(pos->Policies.IsValid()); assert(pos->PolicyRoot.IsValid()); - pos->Vars = this->VarTree.Extend(this->VarTree.Root()); + pos->Vars = this->VarTree.Push(this->VarTree.Root()); assert(pos->Vars.IsValid()); pos->Parent = this->VarTree.Root(); pos->Root = this->VarTree.Root(); @@ -781,17 +781,17 @@ cmState::CreateBuildsystemDirectorySnapshot(Snapshot originSnapshot, long entryPointLine) { assert(originSnapshot.IsValid()); - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position); pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->DirectoryParent = originSnapshot.Position; pos->ScopeParent = originSnapshot.Position; pos->SnapshotType = BuildsystemDirectoryType; pos->BuildSystemDirectory = - this->BuildsystemDirectory.Extend( + this->BuildsystemDirectory.Push( originSnapshot.Position->BuildSystemDirectory); pos->ExecutionListFile = - this->ExecutionListFiles.Extend( + this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile); pos->BuildSystemDirectory->DirectoryEnd = pos; pos->Policies = originSnapshot.Position->Policies; @@ -804,7 +804,7 @@ cmState::CreateBuildsystemDirectorySnapshot(Snapshot originSnapshot, originSnapshot.Position->Vars; pos->Parent = origin; pos->Root = origin; - pos->Vars = this->VarTree.Extend(origin); + pos->Vars = this->VarTree.Push(origin); cmState::Snapshot snapshot = cmState::Snapshot(this, pos); originSnapshot.Position->BuildSystemDirectory->Children.push_back(snapshot); return snapshot; @@ -816,13 +816,13 @@ cmState::CreateFunctionCallSnapshot(cmState::Snapshot originSnapshot, long entryPointLine, std::string const& fileName) { - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position, - *originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position, + *originSnapshot.Position); pos->ScopeParent = originSnapshot.Position; pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = FunctionCallType; - pos->ExecutionListFile = this->ExecutionListFiles.Extend( + pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); pos->BuildSystemDirectory->DirectoryEnd = pos; pos->PolicyScope = originSnapshot.Position->Policies; @@ -830,7 +830,7 @@ cmState::CreateFunctionCallSnapshot(cmState::Snapshot originSnapshot, cmLinkedTree::iterator origin = originSnapshot.Position->Vars; pos->Parent = origin; - pos->Vars = this->VarTree.Extend(origin); + pos->Vars = this->VarTree.Push(origin); return cmState::Snapshot(this, pos); } @@ -841,12 +841,12 @@ cmState::CreateMacroCallSnapshot(cmState::Snapshot originSnapshot, long entryPointLine, std::string const& fileName) { - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position, - *originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position, + *originSnapshot.Position); pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = MacroCallType; - pos->ExecutionListFile = this->ExecutionListFiles.Extend( + pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); assert(originSnapshot.Position->Vars.IsValid()); pos->BuildSystemDirectory->DirectoryEnd = pos; @@ -860,12 +860,12 @@ cmState::CreateCallStackSnapshot(cmState::Snapshot originSnapshot, long entryPointLine, const std::string& fileName) { - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position, - *originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position, + *originSnapshot.Position); pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = CallStackType; - pos->ExecutionListFile = this->ExecutionListFiles.Extend( + pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); assert(originSnapshot.Position->Vars.IsValid()); pos->BuildSystemDirectory->DirectoryEnd = pos; @@ -878,8 +878,8 @@ cmState::CreateVariableScopeSnapshot(cmState::Snapshot originSnapshot, std::string const& entryPointCommand, long entryPointLine) { - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position, - *originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position, + *originSnapshot.Position); pos->ScopeParent = originSnapshot.Position; pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; @@ -890,7 +890,7 @@ cmState::CreateVariableScopeSnapshot(cmState::Snapshot originSnapshot, cmLinkedTree::iterator origin = originSnapshot.Position->Vars; pos->Parent = origin; - pos->Vars = this->VarTree.Extend(origin); + pos->Vars = this->VarTree.Push(origin); assert(pos->Vars.IsValid()); return cmState::Snapshot(this, pos); } @@ -901,12 +901,12 @@ cmState::CreateInlineListFileSnapshot(cmState::Snapshot originSnapshot, long entryPointLine, const std::string& fileName) { - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position, - *originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position, + *originSnapshot.Position); pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = InlineListFileType; - pos->ExecutionListFile = this->ExecutionListFiles.Extend( + pos->ExecutionListFile = this->ExecutionListFiles.Push( originSnapshot.Position->ExecutionListFile, fileName); pos->BuildSystemDirectory->DirectoryEnd = pos; pos->PolicyScope = originSnapshot.Position->Policies; @@ -916,8 +916,8 @@ cmState::CreateInlineListFileSnapshot(cmState::Snapshot originSnapshot, cmState::Snapshot cmState::CreatePolicyScopeSnapshot(cmState::Snapshot originSnapshot) { - PositionType pos = this->SnapshotData.Extend(originSnapshot.Position, - *originSnapshot.Position); + PositionType pos = this->SnapshotData.Push(originSnapshot.Position, + *originSnapshot.Position); pos->SnapshotType = PolicyScopeType; pos->BuildSystemDirectory->DirectoryEnd = pos; pos->PolicyScope = originSnapshot.Position->Policies; @@ -1113,8 +1113,8 @@ void cmState::Snapshot::PushPolicy(cmPolicies::PolicyMap entry, bool weak) { PositionType pos = this->Position; pos->Policies = - this->State->PolicyStack.Extend(pos->Policies, - PolicyStackEntry(entry, weak)); + this->State->PolicyStack.Push(pos->Policies, + PolicyStackEntry(entry, weak)); } bool cmState::Snapshot::PopPolicy() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=32edac6fddfbe91e47b34506cda855232d5a9e2c commit 32edac6fddfbe91e47b34506cda855232d5a9e2c Author: Brad King AuthorDate: Tue Nov 24 13:37:34 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 19:38:36 2015 -0500 cmState: Enforce policy scope balancing around variable scopes Everywhere we use cmMakefile::ScopePushPop to manage variable scopes also expects policy scopes to be balanced. There is no place that we use cmMakefile::PolicyPushPop without also using ScopePushPop. Relieve PolicyPushPop of responsibility for policy scope balance checks by moving it to ScopePushPop. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 6888882..3c19f55 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -4233,9 +4233,7 @@ void cmMakefile::PopScope() this->CheckForUnusedVariables(); - this->StateSnapshot = - this->GetState()->Pop(this->StateSnapshot); - assert(this->StateSnapshot.IsValid()); + this->PopSnapshot(); } void cmMakefile::RaiseScope(const std::string& var, const char *varDef) @@ -4603,8 +4601,6 @@ bool cmMakefile::SetPolicy(cmPolicies::PolicyID id, //---------------------------------------------------------------------------- cmMakefile::PolicyPushPop::PolicyPushPop(cmMakefile* m): Makefile(m) { - this->Makefile->StateSnapshot = this->Makefile->StateSnapshot.GetState() - ->CreatePolicyScopeSnapshot(this->Makefile->StateSnapshot); this->Makefile->PushPolicy(); } @@ -4612,7 +4608,6 @@ cmMakefile::PolicyPushPop::PolicyPushPop(cmMakefile* m): Makefile(m) cmMakefile::PolicyPushPop::~PolicyPushPop() { this->Makefile->PopPolicy(); - this->Makefile->PopSnapshot(); } //---------------------------------------------------------------------------- diff --git a/Source/cmState.cxx b/Source/cmState.cxx index 363d2bf..e20ac89 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -884,6 +884,7 @@ cmState::CreateVariableScopeSnapshot(cmState::Snapshot originSnapshot, pos->EntryPointLine = entryPointLine; pos->EntryPointCommand = entryPointCommand; pos->SnapshotType = VariableScopeType; + pos->PolicyScope = originSnapshot.Position->Policies; assert(originSnapshot.Position->Vars.IsValid()); cmLinkedTree::iterator origin = https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0fa7f143a08b62459900bd811c2c0674562bb8be commit 0fa7f143a08b62459900bd811c2c0674562bb8be Author: Brad King AuthorDate: Tue Nov 24 13:11:09 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 19:38:34 2015 -0500 cmLocalGenerator: Use ScopePushPop RAII class to manage local variable scopes diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 3230403..233e7fe 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -3003,7 +3003,7 @@ void cmLocalGenerator::GenerateAppleInfoPList(cmTarget* target, // override user make variables. If not the configuration will fall // back to the directory-level values set by the user. cmMakefile* mf = this->Makefile; - mf->PushScope(); + cmMakefile::ScopePushPop varScope(mf); mf->AddDefinition("MACOSX_BUNDLE_EXECUTABLE_NAME", targetName.c_str()); cmLGInfoProp(mf, target, "MACOSX_BUNDLE_INFO_STRING"); cmLGInfoProp(mf, target, "MACOSX_BUNDLE_ICON_FILE"); @@ -3014,7 +3014,6 @@ void cmLocalGenerator::GenerateAppleInfoPList(cmTarget* target, cmLGInfoProp(mf, target, "MACOSX_BUNDLE_BUNDLE_VERSION"); cmLGInfoProp(mf, target, "MACOSX_BUNDLE_COPYRIGHT"); mf->ConfigureFile(inFile.c_str(), fname, false, false, false); - mf->PopScope(); } //---------------------------------------------------------------------------- @@ -3047,12 +3046,11 @@ void cmLocalGenerator::GenerateFrameworkInfoPList(cmTarget* target, // override user make variables. If not the configuration will fall // back to the directory-level values set by the user. cmMakefile* mf = this->Makefile; - mf->PushScope(); + cmMakefile::ScopePushPop varScope(mf); mf->AddDefinition("MACOSX_FRAMEWORK_NAME", targetName.c_str()); cmLGInfoProp(mf, target, "MACOSX_FRAMEWORK_ICON_FILE"); cmLGInfoProp(mf, target, "MACOSX_FRAMEWORK_IDENTIFIER"); cmLGInfoProp(mf, target, "MACOSX_FRAMEWORK_SHORT_VERSION_STRING"); cmLGInfoProp(mf, target, "MACOSX_FRAMEWORK_BUNDLE_VERSION"); mf->ConfigureFile(inFile.c_str(), fname, false, false, false); - mf->PopScope(); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d85c9176ae15f4fb203e501d777cfce8304bf256 commit d85c9176ae15f4fb203e501d777cfce8304bf256 Author: Brad King AuthorDate: Tue Nov 24 13:06:42 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 19:38:33 2015 -0500 cmMakefile: Remove unused PolicyPushPop interfaces The PolicyPushPop constructor arguments and Quiet method were used to pass non-default arguments to PushPolicy and PopSnapshot, but no clients use them anymore. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 2c05628..6888882 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -4601,20 +4601,18 @@ bool cmMakefile::SetPolicy(cmPolicies::PolicyID id, } //---------------------------------------------------------------------------- -cmMakefile::PolicyPushPop::PolicyPushPop(cmMakefile* m, bool weak, - cmPolicies::PolicyMap const& pm): - Makefile(m), ReportError(true) +cmMakefile::PolicyPushPop::PolicyPushPop(cmMakefile* m): Makefile(m) { this->Makefile->StateSnapshot = this->Makefile->StateSnapshot.GetState() ->CreatePolicyScopeSnapshot(this->Makefile->StateSnapshot); - this->Makefile->PushPolicy(weak, pm); + this->Makefile->PushPolicy(); } //---------------------------------------------------------------------------- cmMakefile::PolicyPushPop::~PolicyPushPop() { this->Makefile->PopPolicy(); - this->Makefile->PopSnapshot(this->ReportError); + this->Makefile->PopSnapshot(); } //---------------------------------------------------------------------------- diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index a112d57..1edffdc 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -321,14 +321,10 @@ public: class PolicyPushPop { public: - PolicyPushPop(cmMakefile* m, - bool weak = false, - cmPolicies::PolicyMap const& pm = cmPolicies::PolicyMap()); + PolicyPushPop(cmMakefile* m); ~PolicyPushPop(); - void Quiet() { this->ReportError = false; } private: cmMakefile* Makefile; - bool ReportError; }; friend class PolicyPushPop; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8e1be7bf688dc282408aa0403e9896fa5a142ec4 commit 8e1be7bf688dc282408aa0403e9896fa5a142ec4 Author: Brad King AuthorDate: Tue Nov 24 11:44:57 2015 -0500 Commit: Brad King CommitDate: Tue Nov 24 19:38:31 2015 -0500 cmMakefile: Clarify purpose of method that pops a scope snapshot The `PopPolicyBarrier` method is actually responsible for closing any scope opened by creating a snapshot. Rename it to `PopSnapshot` and add a comment explaining the purpose of the poilcy-scope-specific part of the method. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index cb66a75..2c05628 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -435,7 +435,7 @@ cmMakefile::IncludeScope::~IncludeScope() this->EnforceCMP0011(); } } - this->Makefile->PopPolicyBarrier(this->ReportError); + this->Makefile->PopSnapshot(this->ReportError); this->Makefile->PopFunctionBlockerBarrier(this->ReportError); } @@ -549,7 +549,7 @@ public: ~ListFileScope() { - this->Makefile->PopPolicyBarrier(this->ReportError); + this->Makefile->PopSnapshot(this->ReportError); this->Makefile->PopFunctionBlockerBarrier(this->ReportError); } @@ -1551,7 +1551,7 @@ void cmMakefile::PopFunctionScope(bool reportError) { this->PopPolicy(); - this->PopPolicyBarrier(reportError); + this->PopSnapshot(reportError); this->PopFunctionBlockerBarrier(reportError); @@ -1582,7 +1582,7 @@ void cmMakefile::PushMacroScope(std::string const& fileName, void cmMakefile::PopMacroScope(bool reportError) { this->PopPolicy(); - this->PopPolicyBarrier(reportError); + this->PopSnapshot(reportError); this->PopFunctionBlockerBarrier(reportError); } @@ -1619,7 +1619,7 @@ public: ~BuildsystemFileScope() { this->Makefile->PopFunctionBlockerBarrier(this->ReportError); - this->Makefile->PopPolicyBarrier(this->ReportError); + this->Makefile->PopSnapshot(this->ReportError); #if defined(CMAKE_BUILD_WITH_CMAKE) this->GG->GetFileLockPool().PopFileScope(); #endif @@ -4614,7 +4614,7 @@ cmMakefile::PolicyPushPop::PolicyPushPop(cmMakefile* m, bool weak, cmMakefile::PolicyPushPop::~PolicyPushPop() { this->Makefile->PopPolicy(); - this->Makefile->PopPolicyBarrier(this->ReportError); + this->Makefile->PopSnapshot(this->ReportError); } //---------------------------------------------------------------------------- @@ -4634,8 +4634,11 @@ void cmMakefile::PopPolicy() } //---------------------------------------------------------------------------- -void cmMakefile::PopPolicyBarrier(bool reportError) +void cmMakefile::PopSnapshot(bool reportError) { + // cmState::Snapshot manages nested policy scopes within it. + // Since the scope corresponding to the snapshot is closing, + // reject any still-open nested policy scopes with an error. while (!this->StateSnapshot.CanPopPolicyScope()) { if(reportError) diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 111f074..a112d57 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -904,7 +904,7 @@ private: void PushPolicy(bool weak = false, cmPolicies::PolicyMap const& pm = cmPolicies::PolicyMap()); void PopPolicy(); - void PopPolicyBarrier(bool reportError = true); + void PopSnapshot(bool reportError = true); friend class cmCMakePolicyCommand; class IncludeScope; friend class IncludeScope; ----------------------------------------------------------------------- Summary of changes: Source/cmLinkedTree.h | 33 +++++++++++++--- Source/cmListFileCache.cxx | 15 ++++++++ Source/cmListFileCache.h | 6 +-- Source/cmLocalGenerator.cxx | 6 +-- Source/cmMakefile.cxx | 28 ++++++-------- Source/cmMakefile.h | 8 +--- Source/cmState.cxx | 90 ++++++++++++++++++++++++++++--------------- Source/cmState.h | 1 + 8 files changed, 121 insertions(+), 66 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Nov 26 00:01:10 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 26 Nov 2015 00:01:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-604-g2b87b58 Message-ID: <20151126050110.1E921C5C66@public.kitware.com> 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, master has been updated via 2b87b58dced5ebab753f1cca8b4a90f2821bc450 (commit) from 99533c8e345c627f5f5a98be5cda7b7624756fb9 (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=2b87b58dced5ebab753f1cca8b4a90f2821bc450 commit 2b87b58dced5ebab753f1cca8b4a90f2821bc450 Author: Kitware Robot AuthorDate: Thu Nov 26 00:01:07 2015 -0500 Commit: Kitware Robot CommitDate: Thu Nov 26 00:01:07 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index c5a9682..aec45f7 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151125) +set(CMake_VERSION_PATCH 20151126) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Nov 27 00:01:10 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 27 Nov 2015 00:01:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-605-g74a6d43 Message-ID: <20151127050110.461D7C58F0@public.kitware.com> 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, master has been updated via 74a6d43ea04cd0a2813076feb04f623a52c4928d (commit) from 2b87b58dced5ebab753f1cca8b4a90f2821bc450 (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=74a6d43ea04cd0a2813076feb04f623a52c4928d commit 74a6d43ea04cd0a2813076feb04f623a52c4928d Author: Kitware Robot AuthorDate: Fri Nov 27 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Fri Nov 27 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index aec45f7..8f8cfa7 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151126) +set(CMake_VERSION_PATCH 20151127) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Nov 28 00:01:09 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 28 Nov 2015 00:01:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-606-g61f677e Message-ID: <20151128050109.49004C59D9@public.kitware.com> 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, master has been updated via 61f677edf8bd1f24ee4db39984f7a18a92ad533e (commit) from 74a6d43ea04cd0a2813076feb04f623a52c4928d (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=61f677edf8bd1f24ee4db39984f7a18a92ad533e commit 61f677edf8bd1f24ee4db39984f7a18a92ad533e Author: Kitware Robot AuthorDate: Sat Nov 28 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Sat Nov 28 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 8f8cfa7..ed61ee1 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151127) +set(CMake_VERSION_PATCH 20151128) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Nov 29 00:01:08 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 29 Nov 2015 00:01:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-607-g9cbb805 Message-ID: <20151129050108.D0917D33CB@public.kitware.com> 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, master has been updated via 9cbb8058ca843c1a3f3b67d155718b03a3e91d6c (commit) from 61f677edf8bd1f24ee4db39984f7a18a92ad533e (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=9cbb8058ca843c1a3f3b67d155718b03a3e91d6c commit 9cbb8058ca843c1a3f3b67d155718b03a3e91d6c Author: Kitware Robot AuthorDate: Sun Nov 29 00:01:05 2015 -0500 Commit: Kitware Robot CommitDate: Sun Nov 29 00:01:05 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index ed61ee1..51664fa 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151128) +set(CMake_VERSION_PATCH 20151129) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From gjasny at googlemail.com Sun Nov 29 09:54:35 2015 From: gjasny at googlemail.com (Gregor Jasny) Date: Sun, 29 Nov 2015 09:54:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1528-gf312371 Message-ID: <20151129145435.A4C9AD5D46@public.kitware.com> 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 f3123711dfcaea5e1e340e4b0203f23e8e5fc3d9 (commit) via e43f7fc454d9f8551ca6b2740326ad89ebc05dd3 (commit) via 9cbb8058ca843c1a3f3b67d155718b03a3e91d6c (commit) via 61f677edf8bd1f24ee4db39984f7a18a92ad533e (commit) via 74a6d43ea04cd0a2813076feb04f623a52c4928d (commit) via 2b87b58dced5ebab753f1cca8b4a90f2821bc450 (commit) from ac4154fb048ce3291651ae97d4d92b2a6440962b (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=f3123711dfcaea5e1e340e4b0203f23e8e5fc3d9 commit f3123711dfcaea5e1e340e4b0203f23e8e5fc3d9 Merge: ac4154f e43f7fc Author: Gregor Jasny AuthorDate: Sun Nov 29 09:54:34 2015 -0500 Commit: CMake Topic Stage CommitDate: Sun Nov 29 09:54:34 2015 -0500 Merge topic 'regex-explorer' into next e43f7fc4 cmake-gui: Add regex explorer window 9cbb8058 CMake Nightly Date Stamp 61f677ed CMake Nightly Date Stamp 74a6d43e CMake Nightly Date Stamp 2b87b58d CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e43f7fc454d9f8551ca6b2740326ad89ebc05dd3 commit e43f7fc454d9f8551ca6b2740326ad89ebc05dd3 Author: Gregor Jasny AuthorDate: Wed Nov 18 22:40:59 2015 +0100 Commit: Gregor Jasny CommitDate: Sun Nov 29 15:52:23 2015 +0100 cmake-gui: Add regex explorer window diff --git a/Help/release/dev/regex-explorer.rst b/Help/release/dev/regex-explorer.rst new file mode 100644 index 0000000..5c7ae3a --- /dev/null +++ b/Help/release/dev/regex-explorer.rst @@ -0,0 +1,6 @@ +regex-explorer +-------------- + +* The Qt base CMake GUI got a Regular Expression Explorer which could be used to + create and evaluate regular expressions in real-time. The explorer window + is available via the ``Tools``menu. diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index 66fd18b..cad11f5 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -113,12 +113,15 @@ set(SRCS QCMakeCacheView.h QCMakeWidgets.cxx QCMakeWidgets.h + RegexExplorer.cxx + RegexExplorer.h ) QT4_WRAP_UI(UI_SRCS CMakeSetupDialog.ui Compilers.ui CrossCompiler.ui AddCacheEntry.ui + RegexExplorer.ui ) QT4_WRAP_CPP(MOC_SRCS AddCacheEntry.h @@ -128,6 +131,7 @@ QT4_WRAP_CPP(MOC_SRCS QCMake.h QCMakeCacheView.h QCMakeWidgets.h + RegexExplorer.h ) QT4_ADD_RESOURCES(RC_SRCS CMakeSetup.qrc) diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index 748dd7d..2b12834 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx @@ -33,6 +33,7 @@ #include "QCMakeCacheView.h" #include "AddCacheEntry.h" #include "FirstConfigure.h" +#include "RegexExplorer.h" #include "cmSystemTools.h" #include "cmVersion.h" @@ -125,6 +126,9 @@ CMakeSetupDialog::CMakeSetupDialog() this, SLOT(doInstallForCommandLine())); #endif ToolsMenu->addSeparator(); + ToolsMenu->addAction(tr("Regular Expression Explorer..."), + this, SLOT(doRegexExplorerDialog())); + ToolsMenu->addSeparator(); ToolsMenu->addAction(tr("&Find in Output..."), this, SLOT(doOutputFindDialog()), QKeySequence::Find); @@ -1272,6 +1276,12 @@ void CMakeSetupDialog::doOutputFindDialog() } } +void CMakeSetupDialog::doRegexExplorerDialog() +{ + RegexExplorer dialog(this); + dialog.exec(); +} + void CMakeSetupDialog::doOutputFindPrev() { doOutputFindNext(false); diff --git a/Source/QtDialog/CMakeSetupDialog.h b/Source/QtDialog/CMakeSetupDialog.h index 1b26c64..bfd2bc9 100644 --- a/Source/QtDialog/CMakeSetupDialog.h +++ b/Source/QtDialog/CMakeSetupDialog.h @@ -82,6 +82,7 @@ protected slots: void doOutputFindNext(bool directionForward = true); void doOutputFindPrev(); void doOutputErrorNext(); + void doRegexExplorerDialog(); protected: diff --git a/Source/QtDialog/RegexExplorer.cxx b/Source/QtDialog/RegexExplorer.cxx new file mode 100644 index 0000000..04fb5fb --- /dev/null +++ b/Source/QtDialog/RegexExplorer.cxx @@ -0,0 +1,117 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2015 Kitware, Inc., Gregor Jasny + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#include "RegexExplorer.h" + +RegexExplorer::RegexExplorer(QWidget* p) : m_matched(false) +{ + this->setupUi(this); + + for(int i = 1; i < cmsys::RegularExpression::NSUBEXP; ++i) + { + matchNumber->addItem( + QString("Match %1").arg(QString::number(i)), + QVariant(i)); + } + matchNumber->setCurrentIndex(0); +} + +void RegexExplorer::setStatusColor(QWidget* widget, bool successful) +{ + QColor color = successful ? QColor(0, 127, 0) : Qt::red; + + QPalette palette = widget->palette(); + palette.setColor(QPalette::Foreground, color); + widget->setPalette(palette); +} + +void RegexExplorer::on_regularExpression_textChanged(const QString& text) +{ +#ifdef QT_NO_STL + m_regex = text.toAscii().constData(); +#else + m_regex = text.toStdString(); +#endif + bool validExpression = m_regexParser.compile(m_regex); + if(!validExpression) + { + m_regexParser.set_invalid(); + } + + setStatusColor(labelRegexValid, validExpression); + + on_inputText_textChanged(); +} + +void RegexExplorer::on_inputText_textChanged() +{ + if(m_regexParser.is_valid()) + { + QString plainText = inputText->toPlainText(); +#ifdef QT_NO_STL + m_text = plainText.toAscii().constData(); +#else + m_text = plainText.toStdString(); +#endif + m_matched = m_regexParser.find(m_text); + } + else + { + m_matched = false; + } + + setStatusColor(labelRegexMatch, m_matched); + + if(!m_matched) + { + clearMatch(); + return; + } + +#ifdef QT_NO_STL + QString matchText = m_regexParser.match(0).c_str(); +#else + QString matchText = QString::fromStdString(m_regexParser.match(0)); +#endif + match0->setPlainText(matchText); + + on_matchNumber_currentIndexChanged(matchNumber->currentIndex()); +} + +void RegexExplorer::on_matchNumber_currentIndexChanged(int index) +{ + if(!m_matched) + { + return; + } + + QVariant data = matchNumber->itemData(index); + int idx = data.toInt(); + + if(idx < 1 || idx >= cmsys::RegularExpression::NSUBEXP) + { + return; + } + +#ifdef QT_NO_STL + QString match = m_regexParser.match(idx).c_str(); +#else + QString match = QString::fromStdString(m_regexParser.match(idx)); +#endif + matchN->setPlainText(match); +} + +void RegexExplorer::clearMatch() +{ + match0->clear(); + matchN->clear(); +} diff --git a/Source/QtDialog/RegexExplorer.h b/Source/QtDialog/RegexExplorer.h new file mode 100644 index 0000000..b758a08 --- /dev/null +++ b/Source/QtDialog/RegexExplorer.h @@ -0,0 +1,47 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2015 Kitware, Inc., Gregor Jasny + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef RegexExplorer_h +#define RegexExplorer_h + +#include +#include +#include + +#include "ui_RegexExplorer.h" + +class QString; +class QWidget; + +class RegexExplorer : public QDialog, public Ui::RegexExplorer +{ + Q_OBJECT +public: + RegexExplorer(QWidget* p); + +private slots: + void on_regularExpression_textChanged(const QString& text); + void on_inputText_textChanged(); + void on_matchNumber_currentIndexChanged(int index); + +private: + static void setStatusColor(QWidget* widget, bool successful); + + void clearMatch(); + + cmsys::RegularExpression m_regexParser; + std::string m_text; + std::string m_regex; + bool m_matched; +}; + +#endif diff --git a/Source/QtDialog/RegexExplorer.ui b/Source/QtDialog/RegexExplorer.ui new file mode 100644 index 0000000..2c2d761 --- /dev/null +++ b/Source/QtDialog/RegexExplorer.ui @@ -0,0 +1,155 @@ + + + RegexExplorer + + + + 0 + 0 + 639 + 555 + + + + Regular Expression Explorer + + + + + + Input Text + + + + + + + + + + + + Regular Expression + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Valid + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Match + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Complete Match + + + + + + + true + + + + + + + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + true + + + + + + + + ----------------------------------------------------------------------- Summary of changes: Help/release/dev/regex-explorer.rst | 6 ++ Source/CMakeVersion.cmake | 2 +- Source/QtDialog/CMakeLists.txt | 4 + Source/QtDialog/CMakeSetupDialog.cxx | 10 +++ Source/QtDialog/CMakeSetupDialog.h | 1 + Source/QtDialog/RegexExplorer.cxx | 117 +++++++++++++++++++++++++ Source/QtDialog/RegexExplorer.h | 47 +++++++++++ Source/QtDialog/RegexExplorer.ui | 155 ++++++++++++++++++++++++++++++++++ 8 files changed, 341 insertions(+), 1 deletion(-) create mode 100644 Help/release/dev/regex-explorer.rst create mode 100644 Source/QtDialog/RegexExplorer.cxx create mode 100644 Source/QtDialog/RegexExplorer.h create mode 100644 Source/QtDialog/RegexExplorer.ui hooks/post-receive -- CMake From kwrobot at kitware.com Mon Nov 30 00:01:09 2015 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 30 Nov 2015 00:01:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-608-g31b013b Message-ID: <20151130050109.DB8D6D7717@public.kitware.com> 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, master has been updated via 31b013b14ad3bf4838f4ba327b5392018f4853b6 (commit) from 9cbb8058ca843c1a3f3b67d155718b03a3e91d6c (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=31b013b14ad3bf4838f4ba327b5392018f4853b6 commit 31b013b14ad3bf4838f4ba327b5392018f4853b6 Author: Kitware Robot AuthorDate: Mon Nov 30 00:01:06 2015 -0500 Commit: Kitware Robot CommitDate: Mon Nov 30 00:01:06 2015 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 51664fa..0f9b810 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 4) -set(CMake_VERSION_PATCH 20151129) +set(CMake_VERSION_PATCH 20151130) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 10:21:43 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 10:21:43 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1531-gd8d7bbd Message-ID: <20151130152143.1405DD78B6@public.kitware.com> 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 d8d7bbdb520b7a9b5d9be900a45d9c9559122179 (commit) via 58c1840a193d8cc5e0fca3e8300b6f9d93c3aeb1 (commit) via eec87ec8a77550af5b39b95bead1d4be6a802637 (commit) from f3123711dfcaea5e1e340e4b0203f23e8e5fc3d9 (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=d8d7bbdb520b7a9b5d9be900a45d9c9559122179 commit d8d7bbdb520b7a9b5d9be900a45d9c9559122179 Merge: f312371 58c1840 Author: Brad King AuthorDate: Mon Nov 30 10:21:40 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 10:21:40 2015 -0500 Merge topic 'update-kwiml' into next 58c1840a Merge branch 'upstream-kwiml' into update-kwiml eec87ec8 KWIML: Teach ABI.h that NIOS2 CPU is little-endian https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=58c1840a193d8cc5e0fca3e8300b6f9d93c3aeb1 commit 58c1840a193d8cc5e0fca3e8300b6f9d93c3aeb1 Merge: 99533c8 eec87ec Author: Brad King AuthorDate: Mon Nov 30 10:18:24 2015 -0500 Commit: Brad King CommitDate: Mon Nov 30 10:18:24 2015 -0500 Merge branch 'upstream-kwiml' into update-kwiml https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eec87ec8a77550af5b39b95bead1d4be6a802637 commit eec87ec8a77550af5b39b95bead1d4be6a802637 Author: Marek Vasut AuthorDate: Thu Nov 26 21:48:00 2015 +0100 Commit: Brad King CommitDate: Mon Nov 30 10:17:11 2015 -0500 KWIML: Teach ABI.h that NIOS2 CPU is little-endian Signed-off-by: Marek Vasut Cc: Ley Foon Tan Cc: Thomas Chou Cc: Walter Goossens diff --git a/ABI.h.in b/ABI.h.in index 6300ada..87b6e96 100644 --- a/ABI.h.in +++ b/ABI.h.in @@ -398,6 +398,10 @@ suppression macro @KWIML at _ABI_NO_VERIFY was defined. #elif defined(__mips) || defined(__mips__) || defined(__MIPS__) # define @KWIML at _ABI_ENDIAN_ID @KWIML at _ABI_ENDIAN_ID_BIG +/* NIOS2 */ +#elif defined(__NIOS2__) || defined(__NIOS2) || defined(__nios2__) +# define @KWIML at _ABI_ENDIAN_ID @KWIML at _ABI_ENDIAN_ID_LITTLE + /* OpenRISC 1000 */ #elif defined(__or1k__) # define @KWIML at _ABI_ENDIAN_ID @KWIML at _ABI_ENDIAN_ID_BIG ----------------------------------------------------------------------- Summary of changes: Utilities/KWIML/ABI.h.in | 4 ++++ 1 file changed, 4 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 11:22:12 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 11:22:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-619-g3c6a366 Message-ID: <20151130162212.3E5E6D7820@public.kitware.com> 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, master has been updated via 3c6a3668760ba48dde33f20de08dc6e16cfe7ab3 (commit) via 9342a4c2033ce7bb6845afd3625ac9c195a8e22d (commit) via 5f860ebb67e86e0aa407e26ddf79652f73742211 (commit) via f21dc4a81c05c79b873c9918f6fe8aff4bf02133 (commit) via bc1d3a8a8783848016ef12044a02a28b620c41a0 (commit) via 85fe26b5f742b704b51a7e15b4806366feab3a23 (commit) via 518d6b22f6705c4747c713031587705641540364 (commit) via 32edac6fddfbe91e47b34506cda855232d5a9e2c (commit) via 0fa7f143a08b62459900bd811c2c0674562bb8be (commit) via d85c9176ae15f4fb203e501d777cfce8304bf256 (commit) via 8e1be7bf688dc282408aa0403e9896fa5a142ec4 (commit) from 31b013b14ad3bf4838f4ba327b5392018f4853b6 (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=3c6a3668760ba48dde33f20de08dc6e16cfe7ab3 commit 3c6a3668760ba48dde33f20de08dc6e16cfe7ab3 Merge: 31b013b 9342a4c Author: Brad King AuthorDate: Mon Nov 30 11:22:10 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 11:22:10 2015 -0500 Merge topic 'reduce-cmState-accumulation-for-master' 9342a4c2 Merge branch 'reduce-cmState-accumulation' into reduce-cmState-accumulation-for-master 5f860ebb cmState: Avoid accumulating snapshot storage for short-lived scopes f21dc4a8 cmState: Avoid accumulating policy stack storage for short-lived scopes bc1d3a8a cmListFileCache: Implement cmListFileBacktrace ctor/dtor out-of-line 85fe26b5 cmLinkedTree: Add Pop method 518d6b22 cmLinkedTree: Rename 'Extend' method to 'Push' 32edac6f cmState: Enforce policy scope balancing around variable scopes 0fa7f143 cmLocalGenerator: Use ScopePushPop RAII class to manage local variable scopes d85c9176 cmMakefile: Remove unused PolicyPushPop interfaces 8e1be7bf cmMakefile: Clarify purpose of method that pops a scope snapshot ----------------------------------------------------------------------- Summary of changes: Source/cmLinkedTree.h | 33 +++++++++++++--- Source/cmListFileCache.cxx | 15 ++++++++ Source/cmListFileCache.h | 6 +-- Source/cmLocalGenerator.cxx | 6 +-- Source/cmMakefile.cxx | 28 ++++++-------- Source/cmMakefile.h | 8 +--- Source/cmState.cxx | 90 ++++++++++++++++++++++++++++--------------- Source/cmState.h | 1 + 8 files changed, 121 insertions(+), 66 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 11:22:26 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 11:22:26 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1534-gaad2a58 Message-ID: <20151130162226.EB064D7834@public.kitware.com> 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 aad2a58ff2946212d9d6f6de24a5b756fb482701 (commit) via 3c6a3668760ba48dde33f20de08dc6e16cfe7ab3 (commit) via 31b013b14ad3bf4838f4ba327b5392018f4853b6 (commit) from d8d7bbdb520b7a9b5d9be900a45d9c9559122179 (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=aad2a58ff2946212d9d6f6de24a5b756fb482701 commit aad2a58ff2946212d9d6f6de24a5b756fb482701 Merge: d8d7bbd 3c6a366 Author: Brad King AuthorDate: Mon Nov 30 11:22:18 2015 -0500 Commit: Brad King CommitDate: Mon Nov 30 11:22:18 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 11:53:08 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 11:53:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1536-ga2d81f6 Message-ID: <20151130165308.93CB5D6D56@public.kitware.com> 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 a2d81f68df75eba057b47b96a7dcab81bee75ece (commit) via 565661ea6680b27fcb8b433c4bef94a0bd1dd2ca (commit) from aad2a58ff2946212d9d6f6de24a5b756fb482701 (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=a2d81f68df75eba057b47b96a7dcab81bee75ece commit a2d81f68df75eba057b47b96a7dcab81bee75ece Merge: aad2a58 565661e Author: Brad King AuthorDate: Mon Nov 30 11:53:07 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 11:53:07 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' into next 565661ea CPack/DragNDrop: Allow single license for multiple languages https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=565661ea6680b27fcb8b433c4bef94a0bd1dd2ca commit 565661ea6680b27fcb8b433c4bef94a0bd1dd2ca Author: Simon Levermann AuthorDate: Tue Nov 24 16:17:53 2015 +0100 Commit: Brad King CommitDate: Mon Nov 30 11:52:31 2015 -0500 CPack/DragNDrop: Allow single license for multiple languages When both CPACK_DMG_SLA_DIR and CPACK_RESOURCE_FILE_LICENSE are defined, use the license file for all languages instead of looking for a license file for each language. Also expand the documentation on the SLA variables. diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake index 6b5af7e..e34f8cd 100644 --- a/Modules/CPackDMG.cmake +++ b/Modules/CPackDMG.cmake @@ -49,11 +49,29 @@ # .. variable:: CPACK_DMG_SLA_DIR # # Directory where license and menu files for different languages are stored. +# Setting this causes CPack to look for a ``.menu.txt`` and +# ``.license.txt`` file for every language defined in +# ``CPACK_DMG_SLA_LANGUAGES``. If both this variable and +# ``CPACK_RESOURCE_FILE_LICENSE`` are set, CPack will only look for the menu +# files and use the same license file for all languages. # # .. variable:: CPACK_DMG_SLA_LANGUAGES # # Languages for which a license agreement is provided when mounting the -# generated DMG. +# generated DMG. A menu file consists of 9 lines of text. The first line is +# is the name of the language itself, uppercase, in English (e.g. German). +# The other lines are translations of the following strings: +# +# - Agree +# - Disagree +# - Print +# - Save... +# - You agree to the terms of the License Agreement when you click the +# "Agree" button. +# - Software License Agreement +# - This text cannot be saved. The disk may be full or locked, or the file +# may be locked. +# - Unable to print. Make sure you have selected a printer. # # For every language in this list, CPack will try to find files # ``.menu.txt`` and ``.license.txt`` in the directory diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index b5df2d0..31665da 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -131,10 +131,11 @@ int cmCPackDragNDropGenerator::InitializeInternal() if(!license_file.empty() && (license_file.find("CPack.GenericLicense.txt") == std::string::npos)) { - cmCPackLogger(cmCPackLog::LOG_WARNING, + cmCPackLogger(cmCPackLog::LOG_OUTPUT, "Both CPACK_DMG_SLA_DIR and CPACK_RESOURCE_FILE_LICENSE specified, " - "defaulting to CPACK_DMG_SLA_DIR" + "using CPACK_RESOURCE_FILE_LICENSE as a license for all languages." << std::endl); + singleLicense = true; } } if(!this->IsSet("CPACK_DMG_SLA_LANGUAGES")) @@ -166,7 +167,7 @@ int cmCPackDragNDropGenerator::InitializeInternal() for(size_t i = 0; i < languages.size(); ++i) { std::string license = slaDirectory + "/" + languages[i] + ".license.txt"; - if (!cmSystemTools::FileExists(license)) + if (!singleLicense && !cmSystemTools::FileExists(license)) { cmCPackLogger(cmCPackLog::LOG_ERROR, "Missing license file " << languages[i] << ".license.txt" @@ -366,7 +367,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // use sla_dir if both sla_dir and license_file are set if(!cpack_license_file.empty() && - !slaDirectory.empty()) + !slaDirectory.empty() && !singleLicense) { cpack_license_file = ""; } @@ -699,7 +700,14 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, { for(size_t i = 0; i < languages.size(); ++i) { - WriteLicense(ofs, i + 5000, languages[i]); + if(singleLicense) + { + WriteLicense(ofs, i + 5000, languages[i], cpack_license_file); + } + else + { + WriteLicense(ofs, i + 5000, languages[i]); + } } } @@ -850,7 +858,7 @@ void cmCPackDragNDropGenerator::WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber, std::string licenseLanguage, std::string licenseFile) { - if(!licenseFile.empty()) + if(!licenseFile.empty() && !singleLicense) { licenseNumber = 5002; licenseLanguage = "English"; @@ -887,7 +895,7 @@ cmCPackDragNDropGenerator::WriteLicense(cmGeneratedFileStream& outputStream, // End of License outputStream << "};\n\n"; - if(!licenseFile.empty()) + if(!licenseFile.empty() && !singleLicense) { outputStream << SLASTREnglish; } diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 53d38c4..92ec845 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -48,6 +48,7 @@ protected: private: std::string slaDirectory; + bool singleLicense = false; void WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber, std::string licenseLanguage, std::string licenseFile = ""); ----------------------------------------------------------------------- Summary of changes: Modules/CPackDMG.cmake | 20 +++++++++++++++++++- Source/CPack/cmCPackDragNDropGenerator.cxx | 22 +++++++++++++++------- Source/CPack/cmCPackDragNDropGenerator.h | 1 + 3 files changed, 35 insertions(+), 8 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 12:56:53 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 12:56:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1538-g4ef2913 Message-ID: <20151130175653.98E54D6ED0@public.kitware.com> 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 4ef291346729d0807a9a0f92b42b517941cf9809 (commit) via 0d8d36d0dc8f89116bf8b5a6f11bb367db2c23c0 (commit) from a2d81f68df75eba057b47b96a7dcab81bee75ece (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=4ef291346729d0807a9a0f92b42b517941cf9809 commit 4ef291346729d0807a9a0f92b42b517941cf9809 Merge: a2d81f6 0d8d36d Author: Brad King AuthorDate: Mon Nov 30 12:56:52 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 12:56:52 2015 -0500 Merge topic 'cpack-dmg-multilanguage-sla' into next 0d8d36d0 fixup! CPack/DragNDrop: Allow single license for multiple languages https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0d8d36d0dc8f89116bf8b5a6f11bb367db2c23c0 commit 0d8d36d0dc8f89116bf8b5a6f11bb367db2c23c0 Author: Brad King AuthorDate: Mon Nov 30 12:50:25 2015 -0500 Commit: Brad King CommitDate: Mon Nov 30 12:50:25 2015 -0500 fixup! CPack/DragNDrop: Allow single license for multiple languages diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 31665da..1a694ea 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -69,6 +69,7 @@ static const char* SLASTREnglish = //---------------------------------------------------------------------- cmCPackDragNDropGenerator::cmCPackDragNDropGenerator() + : singleLicense(false) { // default to one package file for components this->componentPackageMethod = ONE_PACKAGE; diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 92ec845..b5e5ffe 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -48,7 +48,7 @@ protected: private: std::string slaDirectory; - bool singleLicense = false; + bool singleLicense; void WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber, std::string licenseLanguage, std::string licenseFile = ""); ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackDragNDropGenerator.cxx | 1 + Source/CPack/cmCPackDragNDropGenerator.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 13:13:09 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 13:13:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.4.0-624-g2218962 Message-ID: <20151130181309.9C06DD6866@public.kitware.com> 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, master has been updated via 2218962dbdc7f552a076978a0393433091aa35c4 (commit) via f8deadc16d03233ecb92b4d05a9e9f0d6c9f56aa (commit) via 9ecf8a14fb4a12178a7bb97a87dee3fada3204d5 (commit) via c25d642de38730cdb6627a2c2d47f85e8c470974 (commit) via 5e3045a749b34fb87c876af9a42ee190d722bada (commit) from 3c6a3668760ba48dde33f20de08dc6e16cfe7ab3 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 13:13:09 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 13:13:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1544-g1d0b45a Message-ID: <20151130181309.C5DD4D687B@public.kitware.com> 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 1d0b45af79dee7fbf4ca3cc88b5da61654e57ba0 (commit) via 2218962dbdc7f552a076978a0393433091aa35c4 (commit) via f8deadc16d03233ecb92b4d05a9e9f0d6c9f56aa (commit) via 9ecf8a14fb4a12178a7bb97a87dee3fada3204d5 (commit) via c25d642de38730cdb6627a2c2d47f85e8c470974 (commit) via 5e3045a749b34fb87c876af9a42ee190d722bada (commit) from 4ef291346729d0807a9a0f92b42b517941cf9809 (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=1d0b45af79dee7fbf4ca3cc88b5da61654e57ba0 commit 1d0b45af79dee7fbf4ca3cc88b5da61654e57ba0 Merge: 4ef2913 2218962 Author: Brad King AuthorDate: Mon Nov 30 13:12:02 2015 -0500 Commit: Brad King CommitDate: Mon Nov 30 13:12:02 2015 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 13:13:10 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 13:13:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.4.0-35-gf8deadc Message-ID: <20151130181310.5F416C4C60@public.kitware.com> 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, release has been updated via f8deadc16d03233ecb92b4d05a9e9f0d6c9f56aa (commit) via 5f860ebb67e86e0aa407e26ddf79652f73742211 (commit) via f21dc4a81c05c79b873c9918f6fe8aff4bf02133 (commit) via bc1d3a8a8783848016ef12044a02a28b620c41a0 (commit) via 85fe26b5f742b704b51a7e15b4806366feab3a23 (commit) via 518d6b22f6705c4747c713031587705641540364 (commit) via 9ecf8a14fb4a12178a7bb97a87dee3fada3204d5 (commit) via 32edac6fddfbe91e47b34506cda855232d5a9e2c (commit) via 0fa7f143a08b62459900bd811c2c0674562bb8be (commit) via d85c9176ae15f4fb203e501d777cfce8304bf256 (commit) via 8e1be7bf688dc282408aa0403e9896fa5a142ec4 (commit) via 62126b67e0048800a833d3c4ea86d2307f1a4a06 (commit) via 2e28c619f8997a2b86c72b53659be371ff10a790 (commit) via b219ff94acf0b6c934c35e2ce42dfbf99580f1e8 (commit) via 378185fb7f672113257502ef96cf7106c22dd39f (commit) via c25d642de38730cdb6627a2c2d47f85e8c470974 (commit) via 010c5959864a10f4b83907fb058006e118dd740d (commit) via 5e3045a749b34fb87c876af9a42ee190d722bada (commit) via 9682de566e264c53018cccd05465f2c5d91ccf73 (commit) from e3dfa3506c0589cb4c3e91107e560c2495cdc257 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompiler.cmake.in | 1 - Modules/CMakeCInformation.cmake | 4 - Modules/CMakeCXXCompiler.cmake.in | 1 - Modules/CMakeCXXInformation.cmake | 4 - Modules/CMakeDetermineCompilerId.cmake | 8 -- Modules/CMakeFortranCompiler.cmake.in | 1 - Modules/CMakeFortranInformation.cmake | 4 - Source/cmLinkedTree.h | 33 +++++-- Source/cmListFileCache.cxx | 15 +++ Source/cmListFileCache.h | 6 +- Source/cmLocalGenerator.cxx | 6 +- Source/cmMakefile.cxx | 28 +++--- Source/cmMakefile.h | 8 +- Source/cmState.cxx | 96 +++++++++++++------- Source/cmState.h | 1 + .../NotClosed-result.txt} | 0 Tests/RunCMake/PolicyScope/NotClosed-stderr.txt | 4 + Tests/RunCMake/PolicyScope/NotClosed.cmake | 1 + .../NotOpened-result.txt} | 0 Tests/RunCMake/PolicyScope/NotOpened-stderr.txt | 4 + Tests/RunCMake/PolicyScope/NotOpened.cmake | 1 + Tests/RunCMake/PolicyScope/RunCMakeTest.cmake | 2 + .../RunCMake/add_subdirectory/Function-stdout.txt | 10 ++ Tests/RunCMake/add_subdirectory/Function.cmake | 17 ++++ .../add_subdirectory/Function/CMakeLists.txt | 5 + Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake | 1 + .../PolicyPop-result.txt} | 0 Tests/RunCMake/find_package/PolicyPop-stderr.txt | 5 + Tests/RunCMake/find_package/PolicyPop.cmake | 1 + .../find_package/PolicyPop/PolicyPopConfig.cmake | 0 .../PolicyPop/PolicyPopConfigVersion.cmake | 3 + .../PolicyPush-result.txt} | 0 Tests/RunCMake/find_package/PolicyPush-stderr.txt | 5 + Tests/RunCMake/find_package/PolicyPush.cmake | 1 + .../find_package/PolicyPush/PolicyPushConfig.cmake | 0 .../PolicyPush/PolicyPushConfigVersion.cmake | 3 + Tests/RunCMake/find_package/RunCMakeTest.cmake | 2 + 37 files changed, 190 insertions(+), 91 deletions(-) copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => PolicyScope/NotClosed-result.txt} (100%) create mode 100644 Tests/RunCMake/PolicyScope/NotClosed-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/NotClosed.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => PolicyScope/NotOpened-result.txt} (100%) create mode 100644 Tests/RunCMake/PolicyScope/NotOpened-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/NotOpened.cmake create mode 100644 Tests/RunCMake/add_subdirectory/Function-stdout.txt create mode 100644 Tests/RunCMake/add_subdirectory/Function.cmake create mode 100644 Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPop-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPop.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPop/PolicyPopConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPop/PolicyPopConfigVersion.cmake copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => find_package/PolicyPush-result.txt} (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush-stderr.txt create mode 100644 Tests/RunCMake/find_package/PolicyPush.cmake copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/find_package/PolicyPush/PolicyPushConfig.cmake (100%) create mode 100644 Tests/RunCMake/find_package/PolicyPush/PolicyPushConfigVersion.cmake hooks/post-receive -- CMake From brad.king at kitware.com Mon Nov 30 14:59:42 2015 From: brad.king at kitware.com (Brad King) Date: Mon, 30 Nov 2015 14:59:42 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1546-gd5dcfed Message-ID: <20151130195942.E91DBD71EA@public.kitware.com> 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 d5dcfed6747cda9f835988bd3d02ec4b4864fc54 (commit) via 117d49b8b7671b7ad2901de444da725eda8ea8cc (commit) from 1d0b45af79dee7fbf4ca3cc88b5da61654e57ba0 (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=d5dcfed6747cda9f835988bd3d02ec4b4864fc54 commit d5dcfed6747cda9f835988bd3d02ec4b4864fc54 Merge: 1d0b45a 117d49b Author: Brad King AuthorDate: Mon Nov 30 14:59:41 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 14:59:41 2015 -0500 Merge topic 'intel-compiler-features' into next 117d49b8 Features: Record standards and features for Intel C++ on UNIX https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=117d49b8b7671b7ad2901de444da725eda8ea8cc commit 117d49b8b7671b7ad2901de444da725eda8ea8cc Author: Levi Morrison AuthorDate: Mon Nov 16 09:19:30 2015 -0700 Commit: Brad King CommitDate: Mon Nov 30 14:38:38 2015 -0500 Features: Record standards and features for Intel C++ on UNIX diff --git a/Help/release/dev/intel-compiler-features.rst b/Help/release/dev/intel-compiler-features.rst new file mode 100644 index 0000000..f154dc9 --- /dev/null +++ b/Help/release/dev/intel-compiler-features.rst @@ -0,0 +1,6 @@ +intel-compiler-features +----------------------- + +* The :manual:`Compile Features ` functionality + is now aware of features supported by Intel C++ compilers versions 12.1 + through 16.0 on UNIX platforms. diff --git a/Modules/Compiler/Intel-CXX-FeatureTests.cmake b/Modules/Compiler/Intel-CXX-FeatureTests.cmake new file mode 100644 index 0000000..95792b0 --- /dev/null +++ b/Modules/Compiler/Intel-CXX-FeatureTests.cmake @@ -0,0 +1,90 @@ +# References: +# - https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler +# - https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler + +# these are not implemented in any version at time of writing +#set(_cmake_feature_test_cxx_variable_templates "${Intel15_CXX14}") +#set(_cmake_feature_test_cxx_relaxed_constexpr "${Intel15_CXX14}") + +# unknown if this is implemented +#set(_cmake_feature_test_cxx_aggregate_default_initializers "${Intel15_CXX14}") + +set(DETECT_CXX11 "((__cplusplus >= 201103L) || defined(__INTEL_CXX11_MODE__) || defined(__GXX_EXPERIMENTAL_CXX0X__))") +set(DETECT_CXX14 "((__cplusplus >= 201103L) && !defined(__INTEL_CXX11_MODE__))") + +set(Intel16_CXX14 "__ICC >= 1600 && ${DETECT_CXX14}") +set(_cmake_feature_test_cxx_contextual_conversions "${Intel16_CXX14}") +set(_cmake_feature_test_cxx_generic_lambdas "${Intel16_CXX14}") +set(_cmake_feature_test_cxx_digit_separators "${Intel16_CXX14}") +# This test is supposed to work in Intel 14 but the compiler has a bug +# in versions 14 and 15:: +# https://software.intel.com/en-us/forums/intel-c-compiler/topic/600514 +set(_cmake_feature_test_cxx_generalized_initializers "${Intel16_CXX14}") + +set(Intel15_CXX14 "__ICC >= 1500 && ${DETECT_CXX14}") +set(_cmake_feature_test_cxx_decltype_auto "${Intel15_CXX14}") +set(_cmake_feature_test_cxx_lambda_init_captures "${Intel15_CXX14}") +set(_cmake_feature_test_cxx_attribute_deprecated "${Intel15_CXX14}") +set(_cmake_feature_test_cxx_return_type_deduction "${Intel15_CXX14}") + +set(Intel15_CXX11 "__ICC >= 1500 && ${DETECT_CXX11}") +set(_cmake_feature_test_cxx_alignas "${Intel15_CXX11}") +set(_cmake_feature_test_cxx_alignof "${Intel15_CXX11}") +set(_cmake_feature_test_cxx_inheriting_constructors "${Intel15_CXX11}") +set(_cmake_feature_test_cxx_user_literals "${Intel15_CXX11}") +set(_cmake_feature_test_cxx_thread_local "${Intel15_CXX11}") + +set(Intel14_CXX11 "${DETECT_CXX11} && (__ICC > 1400 || (__ICC == 1400 && __INTEL_COMPILER_UPDATE >= 2))") +# Documented as 12.0+ but in testing it only works on 14.0.2+ +set(_cmake_feature_test_cxx_decltype_incomplete_return_types "${Intel14_CXX11}") + +set(Intel14_CXX11 "__ICC >= 1400 && ${DETECT_CXX11}") +set(_cmake_feature_test_cxx_delegating_constructors "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_constexpr "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_sizeof_member "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_strong_enums "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_reference_qualified_functions "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_raw_string_literals "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_unicode_literals "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_inline_namespaces "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_unrestricted_unions "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_nonstatic_member_init "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_enum_forward_declarations "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_override "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_final "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_noexcept "${Intel14_CXX11}") +set(_cmake_feature_test_cxx_defaulted_move_initializers "${Intel14_CXX11}") + +set(Intel13_CXX11 "__ICC >= 1300 && ${DETECT_CXX11}") +set(_cmake_feature_test_cxx_explicit_conversions "${Intel13_CXX11}") +set(_cmake_feature_test_cxx_range_for "${Intel13_CXX11}") +# Cannot find Intel documentation for N2640: cxx_uniform_initialization +set(_cmake_feature_test_cxx_uniform_initialization "${Intel13_CXX11}") + +set(Intel121_CXX11 "__ICC >= 1210 && ${DETECT_CXX11}") +set(_cmake_feature_test_cxx_variadic_templates "${Intel121_CXX11}") +set(_cmake_feature_test_cxx_alias_templates "${Intel121_CXX11}") +set(_cmake_feature_test_cxx_nullptr "${Intel121_CXX11}") +set(_cmake_feature_test_cxx_trailing_return_types "${Intel121_CXX11}") +set(_cmake_feature_test_cxx_attributes "${Intel121_CXX11}") +set(_cmake_feature_test_cxx_default_function_template_args "${Intel121_CXX11}") + +set(Intel12_CXX11 "__ICC >= 1200 && ${DETECT_CXX11}") +set(_cmake_feature_test_cxx_extended_friend_declarations "${Intel12_CXX11}") +set(_cmake_feature_test_cxx_rvalue_references "${Intel12_CXX11}") +set(_cmake_feature_test_cxx_decltype "${Intel12_CXX11}") +set(_cmake_feature_test_cxx_defaulted_functions "${Intel12_CXX11}") +set(_cmake_feature_test_cxx_deleted_functions "${Intel12_CXX11}") +set(_cmake_feature_test_cxx_local_type_template_args "${Intel12_CXX11}") +set(_cmake_feature_test_cxx_lambdas "${Intel12_CXX11}") + +set(_cmake_oldestSupported "__ICC >= 1110 && ${DETECT_CXX11}") +set(_cmake_feature_test_cxx_binary_literals "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_static_assert "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_right_angle_brackets "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_auto_type "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_extern_templates "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_variadic_macros "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_long_long_type "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_func_identifier "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_template_template_parameters "${_cmake_oldestSupported}") diff --git a/Modules/Compiler/Intel-CXX.cmake b/Modules/Compiler/Intel-CXX.cmake index 7947695..65f3134 100644 --- a/Modules/Compiler/Intel-CXX.cmake +++ b/Modules/Compiler/Intel-CXX.cmake @@ -8,5 +8,58 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG") set(CMAKE_DEPFILE_FLAGS_CXX "-MMD -MT -MF ") +if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2) + set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14") + # todo: there is no gnu++14 value supported; figure out what to do + set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++14") +elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0) + set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y") + # todo: there is no gnu++14 value supported; figure out what to do + set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++1y") +endif() + +if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0) + set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11") + set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11") +elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) + set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x") + set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x") +endif() + +if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) + set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98") + set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98") + + if (NOT CMAKE_CXX_COMPILER_FORCED) + if (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT) + message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}") + else() + set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) + endif() + elseif (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT) + # Compiler id was forced so just guess the default standard level. + set(CMAKE_CXX_STANDARD_DEFAULT 98) + endif() +endif() + +macro(cmake_record_cxx_compile_features) + macro(_get_intel_features std_version list) + record_compiler_features(CXX "${std_version}" ${list}) + endmacro() + + set(_result 0) + if (UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0) + _get_intel_features(${CMAKE_CXX14_STANDARD_COMPILE_OPTION} CMAKE_CXX14_COMPILE_FEATURES) + endif() + if (_result EQUAL 0) + _get_intel_features(${CMAKE_CXX11_STANDARD_COMPILE_OPTION} CMAKE_CXX11_COMPILE_FEATURES) + endif() + if (_result EQUAL 0) + _get_intel_features(${CMAKE_CXX98_STANDARD_COMPILE_OPTION} CMAKE_CXX98_COMPILE_FEATURES) + endif() + endif() +endmacro() + set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt index a32138d..e6acee8 100644 --- a/Tests/CompileFeatures/CMakeLists.txt +++ b/Tests/CompileFeatures/CMakeLists.txt @@ -119,6 +119,55 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") endif() endif() +if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0) + if (CMAKE_CXX_COMIPLER_VERSION VERSION_EQUAL 15.0) + list(REMOVE_ITEM CXX_non_features + # The cxx_contextual_conversions feature happens to work + # (for *this* testcase) with Intel 13/14/15, but they do not + # document support until 16. + cxx_contextual_conversions + ) + + elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0) + list(REMOVE_ITEM CXX_non_features + cxx_alignof + + # not supposed to work until 15 + cxx_attribute_deprecated + + # The cxx_contextual_conversions feature happens to work + # (for *this* testcase) with Intel 13/14/15, but they do not + # document support until 16. + cxx_contextual_conversions + ) + + elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) + list(REMOVE_ITEM CXX_non_features + # These features happen to work but aren't documented to + # do so until 14.0 + cxx_constexpr + cxx_enum_forward_declarations + cxx_sizeof_member + cxx_strong_enums + cxx_unicode_literals + + # not supposed to work until 15 + cxx_attribute_deprecated + cxx_nonstatic_member_init + + # The cxx_contextual_conversions feature happens to work + # (for *this* testcase) with Intel 13/14/15, but they do not + # document support until 16. + cxx_contextual_conversions + + # This is an undocumented feature; it does not work in future versions + cxx_aggregate_default_initializers + ) + endif() + endif() +endif() + set(C_ext c) set(C_standard_flag 11) set(CXX_ext cpp) @@ -301,6 +350,29 @@ if (CMAKE_CXX_COMPILE_FEATURES) -DEXPECT_FINAL=1 -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1 ) + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15) + add_definitions( + -DEXPECT_OVERRIDE_CONTROL=1 + -DEXPECT_INHERITING_CONSTRUCTORS=1 + -DEXPECT_FINAL=1 + -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1 + ) + elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) + add_definitions( + -DEXPECT_OVERRIDE_CONTROL=1 + -DEXPECT_INHERITING_CONSTRUCTORS=0 + -DEXPECT_FINAL=1 + -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0 + ) + else() + add_definitions( + -DEXPECT_OVERRIDE_CONTROL=0 + -DEXPECT_INHERITING_CONSTRUCTORS=0 + -DEXPECT_FINAL=0 + -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0 + ) + endif() endif() add_executable(CompileFeaturesGenex genex_test.cpp) ----------------------------------------------------------------------- Summary of changes: Help/release/dev/intel-compiler-features.rst | 6 ++ Modules/Compiler/Intel-CXX-FeatureTests.cmake | 90 +++++++++++++++++++++++++ Modules/Compiler/Intel-CXX.cmake | 53 +++++++++++++++ Tests/CompileFeatures/CMakeLists.txt | 72 ++++++++++++++++++++ 4 files changed, 221 insertions(+) create mode 100644 Help/release/dev/intel-compiler-features.rst create mode 100644 Modules/Compiler/Intel-CXX-FeatureTests.cmake hooks/post-receive -- CMake From gjasny at googlemail.com Mon Nov 30 16:06:59 2015 From: gjasny at googlemail.com (Gregor Jasny) Date: Mon, 30 Nov 2015 16:06:59 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1548-g48f4880 Message-ID: <20151130210659.44F62D79C1@public.kitware.com> 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 48f4880a3d252fa8fd86896d55c88ee90a3a04af (commit) via a31c85da5ed82d913eeb71ebbbd4d51af4625380 (commit) from d5dcfed6747cda9f835988bd3d02ec4b4864fc54 (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=48f4880a3d252fa8fd86896d55c88ee90a3a04af commit 48f4880a3d252fa8fd86896d55c88ee90a3a04af Merge: d5dcfed a31c85d Author: Gregor Jasny AuthorDate: Mon Nov 30 16:06:58 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 16:06:58 2015 -0500 Merge topic 'regex-explorer' into next a31c85da fixup! cmake-gui: Add regex explorer window https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a31c85da5ed82d913eeb71ebbbd4d51af4625380 commit a31c85da5ed82d913eeb71ebbbd4d51af4625380 Author: Gregor Jasny AuthorDate: Mon Nov 30 22:02:44 2015 +0100 Commit: Gregor Jasny CommitDate: Mon Nov 30 22:02:44 2015 +0100 fixup! cmake-gui: Add regex explorer window diff --git a/Source/QtDialog/RegexExplorer.cxx b/Source/QtDialog/RegexExplorer.cxx index 04fb5fb..b583d70 100644 --- a/Source/QtDialog/RegexExplorer.cxx +++ b/Source/QtDialog/RegexExplorer.cxx @@ -41,7 +41,9 @@ void RegexExplorer::on_regularExpression_textChanged(const QString& text) #else m_regex = text.toStdString(); #endif - bool validExpression = m_regexParser.compile(m_regex); + + bool validExpression = + stripEscapes(m_regex) && m_regexParser.compile(m_regex); if(!validExpression) { m_regexParser.set_invalid(); @@ -115,3 +117,50 @@ void RegexExplorer::clearMatch() match0->clear(); matchN->clear(); } + +bool RegexExplorer::stripEscapes(std::string& source) +{ + const char* in = source.c_str(); + + std::string result; + result.reserve(source.size()); + + for(char inc = *in; inc != '\0'; inc = *++in) + { + if(inc == '\\') + { + char nextc = in[1]; + if(nextc == 't') + { + result.append(1, '\t'); + in++; + } + else if(nextc == 'n') + { + result.append(1, '\n'); + in++; + } + else if(nextc == 't') + { + result.append(1, '\t'); + in++; + } + else if(isalnum(nextc) || nextc == '\0') + { + return false; + } + else + { + result.append(1, nextc); + in++; + } + } + else + { + result.append(1, inc); + } + } + + source = result; + return true; +} diff --git a/Source/QtDialog/RegexExplorer.h b/Source/QtDialog/RegexExplorer.h index b758a08..2ac9c3e 100644 --- a/Source/QtDialog/RegexExplorer.h +++ b/Source/QtDialog/RegexExplorer.h @@ -35,6 +35,7 @@ private slots: private: static void setStatusColor(QWidget* widget, bool successful); + static bool stripEscapes(std::string& regex); void clearMatch(); ----------------------------------------------------------------------- Summary of changes: Source/QtDialog/RegexExplorer.cxx | 51 ++++++++++++++++++++++++++++++++++++- Source/QtDialog/RegexExplorer.h | 1 + 2 files changed, 51 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From gjasny at googlemail.com Mon Nov 30 16:09:04 2015 From: gjasny at googlemail.com (Gregor Jasny) Date: Mon, 30 Nov 2015 16:09:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.4.0-1550-g523ccb5 Message-ID: <20151130210904.2BE10BCED1@public.kitware.com> 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 523ccb5cf99486b8951bec2505c677310eee710a (commit) via 6e81fe754311f879d384d66cdade128afdff7313 (commit) from 48f4880a3d252fa8fd86896d55c88ee90a3a04af (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=523ccb5cf99486b8951bec2505c677310eee710a commit 523ccb5cf99486b8951bec2505c677310eee710a Merge: 48f4880 6e81fe7 Author: Gregor Jasny AuthorDate: Mon Nov 30 16:09:03 2015 -0500 Commit: CMake Topic Stage CommitDate: Mon Nov 30 16:09:03 2015 -0500 Merge topic 'regex-explorer' into next 6e81fe75 cmake-gui: Add regex explorer window https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6e81fe754311f879d384d66cdade128afdff7313 commit 6e81fe754311f879d384d66cdade128afdff7313 Author: Gregor Jasny AuthorDate: Wed Nov 18 22:40:59 2015 +0100 Commit: Gregor Jasny CommitDate: Mon Nov 30 22:08:39 2015 +0100 cmake-gui: Add regex explorer window diff --git a/Help/release/dev/regex-explorer.rst b/Help/release/dev/regex-explorer.rst new file mode 100644 index 0000000..5c7ae3a --- /dev/null +++ b/Help/release/dev/regex-explorer.rst @@ -0,0 +1,6 @@ +regex-explorer +-------------- + +* The Qt base CMake GUI got a Regular Expression Explorer which could be used to + create and evaluate regular expressions in real-time. The explorer window + is available via the ``Tools``menu. diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index 66fd18b..cad11f5 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -113,12 +113,15 @@ set(SRCS QCMakeCacheView.h QCMakeWidgets.cxx QCMakeWidgets.h + RegexExplorer.cxx + RegexExplorer.h ) QT4_WRAP_UI(UI_SRCS CMakeSetupDialog.ui Compilers.ui CrossCompiler.ui AddCacheEntry.ui + RegexExplorer.ui ) QT4_WRAP_CPP(MOC_SRCS AddCacheEntry.h @@ -128,6 +131,7 @@ QT4_WRAP_CPP(MOC_SRCS QCMake.h QCMakeCacheView.h QCMakeWidgets.h + RegexExplorer.h ) QT4_ADD_RESOURCES(RC_SRCS CMakeSetup.qrc) diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index 748dd7d..2b12834 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx @@ -33,6 +33,7 @@ #include "QCMakeCacheView.h" #include "AddCacheEntry.h" #include "FirstConfigure.h" +#include "RegexExplorer.h" #include "cmSystemTools.h" #include "cmVersion.h" @@ -125,6 +126,9 @@ CMakeSetupDialog::CMakeSetupDialog() this, SLOT(doInstallForCommandLine())); #endif ToolsMenu->addSeparator(); + ToolsMenu->addAction(tr("Regular Expression Explorer..."), + this, SLOT(doRegexExplorerDialog())); + ToolsMenu->addSeparator(); ToolsMenu->addAction(tr("&Find in Output..."), this, SLOT(doOutputFindDialog()), QKeySequence::Find); @@ -1272,6 +1276,12 @@ void CMakeSetupDialog::doOutputFindDialog() } } +void CMakeSetupDialog::doRegexExplorerDialog() +{ + RegexExplorer dialog(this); + dialog.exec(); +} + void CMakeSetupDialog::doOutputFindPrev() { doOutputFindNext(false); diff --git a/Source/QtDialog/CMakeSetupDialog.h b/Source/QtDialog/CMakeSetupDialog.h index 1b26c64..bfd2bc9 100644 --- a/Source/QtDialog/CMakeSetupDialog.h +++ b/Source/QtDialog/CMakeSetupDialog.h @@ -82,6 +82,7 @@ protected slots: void doOutputFindNext(bool directionForward = true); void doOutputFindPrev(); void doOutputErrorNext(); + void doRegexExplorerDialog(); protected: diff --git a/Source/QtDialog/RegexExplorer.cxx b/Source/QtDialog/RegexExplorer.cxx new file mode 100644 index 0000000..b583d70 --- /dev/null +++ b/Source/QtDialog/RegexExplorer.cxx @@ -0,0 +1,166 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2015 Kitware, Inc., Gregor Jasny + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#include "RegexExplorer.h" + +RegexExplorer::RegexExplorer(QWidget* p) : m_matched(false) +{ + this->setupUi(this); + + for(int i = 1; i < cmsys::RegularExpression::NSUBEXP; ++i) + { + matchNumber->addItem( + QString("Match %1").arg(QString::number(i)), + QVariant(i)); + } + matchNumber->setCurrentIndex(0); +} + +void RegexExplorer::setStatusColor(QWidget* widget, bool successful) +{ + QColor color = successful ? QColor(0, 127, 0) : Qt::red; + + QPalette palette = widget->palette(); + palette.setColor(QPalette::Foreground, color); + widget->setPalette(palette); +} + +void RegexExplorer::on_regularExpression_textChanged(const QString& text) +{ +#ifdef QT_NO_STL + m_regex = text.toAscii().constData(); +#else + m_regex = text.toStdString(); +#endif + + bool validExpression = + stripEscapes(m_regex) && m_regexParser.compile(m_regex); + if(!validExpression) + { + m_regexParser.set_invalid(); + } + + setStatusColor(labelRegexValid, validExpression); + + on_inputText_textChanged(); +} + +void RegexExplorer::on_inputText_textChanged() +{ + if(m_regexParser.is_valid()) + { + QString plainText = inputText->toPlainText(); +#ifdef QT_NO_STL + m_text = plainText.toAscii().constData(); +#else + m_text = plainText.toStdString(); +#endif + m_matched = m_regexParser.find(m_text); + } + else + { + m_matched = false; + } + + setStatusColor(labelRegexMatch, m_matched); + + if(!m_matched) + { + clearMatch(); + return; + } + +#ifdef QT_NO_STL + QString matchText = m_regexParser.match(0).c_str(); +#else + QString matchText = QString::fromStdString(m_regexParser.match(0)); +#endif + match0->setPlainText(matchText); + + on_matchNumber_currentIndexChanged(matchNumber->currentIndex()); +} + +void RegexExplorer::on_matchNumber_currentIndexChanged(int index) +{ + if(!m_matched) + { + return; + } + + QVariant data = matchNumber->itemData(index); + int idx = data.toInt(); + + if(idx < 1 || idx >= cmsys::RegularExpression::NSUBEXP) + { + return; + } + +#ifdef QT_NO_STL + QString match = m_regexParser.match(idx).c_str(); +#else + QString match = QString::fromStdString(m_regexParser.match(idx)); +#endif + matchN->setPlainText(match); +} + +void RegexExplorer::clearMatch() +{ + match0->clear(); + matchN->clear(); +} + +bool RegexExplorer::stripEscapes(std::string& source) +{ + const char* in = source.c_str(); + + std::string result; + result.reserve(source.size()); + + for(char inc = *in; inc != '\0'; inc = *++in) + { + if(inc == '\\') + { + char nextc = in[1]; + if(nextc == 't') + { + result.append(1, '\t'); + in++; + } + else if(nextc == 'n') + { + result.append(1, '\n'); + in++; + } + else if(nextc == 't') + { + result.append(1, '\t'); + in++; + } + else if(isalnum(nextc) || nextc == '\0') + { + return false; + } + else + { + result.append(1, nextc); + in++; + } + } + else + { + result.append(1, inc); + } + } + + source = result; + return true; +} diff --git a/Source/QtDialog/RegexExplorer.h b/Source/QtDialog/RegexExplorer.h new file mode 100644 index 0000000..2ac9c3e --- /dev/null +++ b/Source/QtDialog/RegexExplorer.h @@ -0,0 +1,48 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2015 Kitware, Inc., Gregor Jasny + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef RegexExplorer_h +#define RegexExplorer_h + +#include +#include +#include + +#include "ui_RegexExplorer.h" + +class QString; +class QWidget; + +class RegexExplorer : public QDialog, public Ui::RegexExplorer +{ + Q_OBJECT +public: + RegexExplorer(QWidget* p); + +private slots: + void on_regularExpression_textChanged(const QString& text); + void on_inputText_textChanged(); + void on_matchNumber_currentIndexChanged(int index); + +private: + static void setStatusColor(QWidget* widget, bool successful); + static bool stripEscapes(std::string& regex); + + void clearMatch(); + + cmsys::RegularExpression m_regexParser; + std::string m_text; + std::string m_regex; + bool m_matched; +}; + +#endif diff --git a/Source/QtDialog/RegexExplorer.ui b/Source/QtDialog/RegexExplorer.ui new file mode 100644 index 0000000..2c2d761 --- /dev/null +++ b/Source/QtDialog/RegexExplorer.ui @@ -0,0 +1,155 @@ + + + RegexExplorer + + + + 0 + 0 + 639 + 555 + + + + Regular Expression Explorer + + + + + + Input Text + + + + + + + + + + + + Regular Expression + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Valid + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Match + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Complete Match + + + + + + + true + + + + + + + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + true + + + + + + + + ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake