[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