[Cmake-commits] CMake branch, master, updated. v3.10.0-rc3-218-gcdc9c11

Kitware Robot kwrobot at kitware.com
Wed Nov 1 08:05:09 EDT 2017


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  cdc9c110a5bbe82d761f1a6d58b202a41b245de6 (commit)
       via  4857aec5d5bdee608d0e4fcf1a921de2a1c1b89c (commit)
       via  ac1d19029119c32c67da555a892e9948b29eb067 (commit)
       via  e4e9ce7cbe9b41dd535d5246153900cb9657c6ba (commit)
       via  5b9da05b7acc27ce40d27afcda0029284a0a4590 (commit)
       via  0987a399ec01813e16c0a2c86d481e2b8e2aab25 (commit)
      from  93cd33310351d6e42b5287815b98b841585ac0ca (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=cdc9c110a5bbe82d761f1a6d58b202a41b245de6
commit cdc9c110a5bbe82d761f1a6d58b202a41b245de6
Merge: 4857aec e4e9ce7
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Nov 1 12:02:11 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Nov 1 08:02:15 2017 -0400

    Merge topic '16780-write-single-xcodeproj'
    
    e4e9ce7c Xcode: Add option to generate only topmost project file
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1395


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4857aec5d5bdee608d0e4fcf1a921de2a1c1b89c
commit 4857aec5d5bdee608d0e4fcf1a921de2a1c1b89c
Merge: ac1d190 0987a39
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Nov 1 12:00:42 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Nov 1 08:01:44 2017 -0400

    Merge topic 'notes_timestamp'
    
    0987a399 CTest: fix Time formatting in Notes.xml
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1428


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac1d19029119c32c67da555a892e9948b29eb067
commit ac1d19029119c32c67da555a892e9948b29eb067
Merge: 93cd333 5b9da05
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Nov 1 12:00:19 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Nov 1 08:00:45 2017 -0400

    Merge topic 'windows-embed-cmake-version'
    
    5b9da05b Windows: Embed version information into CMake binaries
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1412


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e4e9ce7cbe9b41dd535d5246153900cb9657c6ba
commit e4e9ce7cbe9b41dd535d5246153900cb9657c6ba
Author:     Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Thu Oct 19 22:48:13 2017 +0200
Commit:     Gregor Jasny <gjasny at googlemail.com>
CommitDate: Tue Oct 31 17:09:26 2017 +0100

    Xcode: Add option to generate only topmost project file
    
    Closes #16780

diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index b37d473..0170da1 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -188,6 +188,7 @@ Variables that Change Behavior
    /variable/CMAKE_USER_MAKE_RULES_OVERRIDE
    /variable/CMAKE_WARN_DEPRECATED
    /variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
+   /variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
 
 Variables that Describe the System
 ==================================
diff --git a/Help/release/dev/write-single-xcodeproj.rst b/Help/release/dev/write-single-xcodeproj.rst
new file mode 100644
index 0000000..d5e9fef
--- /dev/null
+++ b/Help/release/dev/write-single-xcodeproj.rst
@@ -0,0 +1,8 @@
+write-single-xcodeproj
+----------------------
+
+* The :generator:`Xcode` generator behavior of generating one project
+  file per :command:`project()` command could now be controlled with the
+  :variable:`CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY` variable.
+  This could be useful to speed up the CMake generation step for
+  large projects and to work-around a bug in the ``ZERO_CHECK`` logic.
diff --git a/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst b/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
new file mode 100644
index 0000000..ea3e240
--- /dev/null
+++ b/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
@@ -0,0 +1,9 @@
+CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
+-------------------------------------------
+
+If enabled, the :generator:`Xcode` generator will generate only a
+single Xcode project file for the topmost :command:`project()` command
+instead of generating one for every ``project()`` command.
+
+This could be useful to speed up the CMake generation step for
+large projects and to work-around a bug in the ``ZERO_CHECK`` logic.
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 78943e4..d902ca3 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -388,6 +388,17 @@ void cmGlobalXCodeGenerator::Generate()
   std::map<std::string, std::vector<cmLocalGenerator*>>::iterator it;
   for (it = this->ProjectMap.begin(); it != this->ProjectMap.end(); ++it) {
     cmLocalGenerator* root = it->second[0];
+
+    bool generateTopLevelProjectOnly =
+      root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY");
+
+    if (generateTopLevelProjectOnly) {
+      cmStateSnapshot snp = root->GetStateSnapshot();
+      if (snp.GetBuildsystemDirectoryParent().IsValid()) {
+        continue;
+      }
+    }
+
     this->SetGenerationRoot(root);
     // now create the project
     this->OutputXCodeProject(root, it->second);
diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
index 7d436b6..f730b83 100644
--- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
@@ -8,6 +8,7 @@ run_cmake(XcodeFileType)
 run_cmake(XcodeAttributeLocation)
 run_cmake(XcodeAttributeGenex)
 run_cmake(XcodeAttributeGenexError)
+run_cmake(XcodeGenerateTopLevelProjectOnly)
 run_cmake(XcodeObjectNeedsEscape)
 run_cmake(XcodeObjectNeedsQuote)
 run_cmake(XcodeOptimizationFlags)
diff --git a/Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly-check.cmake b/Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly-check.cmake
new file mode 100644
index 0000000..64654af
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly-check.cmake
@@ -0,0 +1,3 @@
+if(EXISTS "${RunCMake_TEST_BINARY_DIR}/subproject/subproject.xcodeproj")
+  message(SEND_ERROR "Unexpected project file for subproject found.")
+endif()
diff --git a/Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly.cmake b/Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly.cmake
new file mode 100644
index 0000000..7e53c49
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly.cmake
@@ -0,0 +1,3 @@
+set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE)
+project(XcodeGenerateTopLevelProjectOnly NONE)
+add_subdirectory(subproject)
diff --git a/Tests/RunCMake/XcodeProject/subproject/CMakeLists.txt b/Tests/RunCMake/XcodeProject/subproject/CMakeLists.txt
new file mode 100644
index 0000000..20e12b1
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/subproject/CMakeLists.txt
@@ -0,0 +1 @@
+project(subproject)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b9da05b7acc27ce40d27afcda0029284a0a4590
commit 5b9da05b7acc27ce40d27afcda0029284a0a4590
Author:     Justin Goshi <jgoshi at microsoft.com>
AuthorDate: Wed Oct 25 13:02:32 2017 -0700
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Oct 31 10:02:25 2017 -0400

    Windows: Embed version information into CMake binaries

diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index e1c34bf..f15dff8 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -1057,6 +1057,19 @@ endif()
 include (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
 include (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
 
+if(WIN32)
+  # Add Windows executable version information.
+  configure_file("CMakeVersion.rc.in" "CMakeVersion.rc" @ONLY)
+
+  # We use a separate object library for this to work around a limitation of
+  # MinGW's windres tool with spaces in the path to the include directories.
+  add_library(CMakeVersion OBJECT "${CMAKE_CURRENT_BINARY_DIR}/CMakeVersion.rc")
+  set_property(TARGET CMakeVersion PROPERTY INCLUDE_DIRECTORIES "")
+  foreach(_tool ${_tools})
+    target_sources(${_tool} PRIVATE $<TARGET_OBJECTS:CMakeVersion>)
+  endforeach()
+endif()
+
 # Install tools
 
 foreach(_tool ${_tools})
diff --git a/Source/CMakeVersion.rc.in b/Source/CMakeVersion.rc.in
new file mode 100644
index 0000000..f4ca3d5
--- /dev/null
+++ b/Source/CMakeVersion.rc.in
@@ -0,0 +1,34 @@
+/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+   file Copyright.txt or https://cmake.org/licensing for details.  */
+
+#define VER_FILEVERSION             @CMake_VERSION_MAJOR@, at CMake_VERSION_MINOR@, at CMake_VERSION_PATCH@
+#define VER_FILEVERSION_STR         "@CMake_VERSION_MAJOR at .@CMake_VERSION_MINOR at .@CMake_VERSION_PATCH@\0"
+
+#define VER_PRODUCTVERSION          @CMake_VERSION_MAJOR@, at CMake_VERSION_MINOR@, at CMake_VERSION_PATCH@
+#define VER_PRODUCTVERSION_STR      "@CMake_VERSION@\0"
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION    	VER_FILEVERSION
+PRODUCTVERSION 	VER_PRODUCTVERSION
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904E4"
+        BEGIN
+            VALUE "FileVersion",      VER_FILEVERSION_STR
+            VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
+        END
+    END
+
+    BLOCK "VarFileInfo"
+    BEGIN
+        /* The following line should only be modified for localized versions.     */
+        /* It consists of any number of WORD,WORD pairs, with each pair           */
+        /* describing a language,codepage combination supported by the file.      */
+        /*                                                                        */
+        /* For example, a file might have values "0x409,1252" indicating that it  */
+        /* supports English language (0x409) in the Windows ANSI codepage (1252). */
+
+        VALUE "Translation", 0x409, 1252
+    END
+END

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0987a399ec01813e16c0a2c86d481e2b8e2aab25
commit 0987a399ec01813e16c0a2c86d481e2b8e2aab25
Author:     Zack Galbreath <zack.galbreath at kitware.com>
AuthorDate: Mon Oct 30 13:14:45 2017 -0400
Commit:     Zack Galbreath <zack.galbreath at kitware.com>
CommitDate: Tue Oct 31 10:00:38 2017 -0400

    CTest: fix Time formatting in Notes.xml
    
    Notes.xml was reporting its timestamp in E-notation.  Here's an example of
    what this looked like:
      <Time>1.50938e+09</Time>
    
    This format is unsuitable for precisely determining when the Notes file
    was generated.  As a result of this commit, the same field now appears as:
      <Time>1509383044</Time>

diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 4ea1493..37ff901 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -12,6 +12,7 @@
 #include "cmsys/String.hxx"
 #include "cmsys/SystemInformation.hxx"
 #include <algorithm>
+#include <cstdint>
 #include <ctype.h>
 #include <iostream>
 #include <map>
@@ -1421,7 +1422,7 @@ int cmCTest::GenerateCTestNotesOutput(cmXMLWriter& xml,
     std::string note_time = this->CurrentTime();
     xml.StartElement("Note");
     xml.Attribute("Name", file);
-    xml.Element("Time", cmSystemTools::GetTime());
+    xml.Element("Time", static_cast<uint64_t>(cmSystemTools::GetTime()));
     xml.Element("DateTime", note_time);
     xml.StartElement("Text");
     cmsys::ifstream ifs(file.c_str());

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

Summary of changes:
 Help/manual/cmake-variables.7.rst                  |    1 +
 Help/release/dev/write-single-xcodeproj.rst        |    8 +++++
 ...CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst |    9 ++++++
 Source/CMakeLists.txt                              |   13 ++++++++
 Source/CMakeVersion.rc.in                          |   34 ++++++++++++++++++++
 Source/cmCTest.cxx                                 |    3 +-
 Source/cmGlobalXCodeGenerator.cxx                  |   11 +++++++
 Tests/RunCMake/XcodeProject/RunCMakeTest.cmake     |    1 +
 .../XcodeGenerateTopLevelProjectOnly-check.cmake   |    3 ++
 .../XcodeGenerateTopLevelProjectOnly.cmake         |    3 ++
 .../XcodeProject/subproject/CMakeLists.txt         |    1 +
 11 files changed, 86 insertions(+), 1 deletion(-)
 create mode 100644 Help/release/dev/write-single-xcodeproj.rst
 create mode 100644 Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
 create mode 100644 Source/CMakeVersion.rc.in
 create mode 100644 Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly-check.cmake
 create mode 100644 Tests/RunCMake/XcodeProject/XcodeGenerateTopLevelProjectOnly.cmake
 create mode 100644 Tests/RunCMake/XcodeProject/subproject/CMakeLists.txt


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list