[Cmake-commits] CMake branch, master, updated. v3.11.0-rc1-92-g4732dbf
Kitware Robot
kwrobot at kitware.com
Fri Feb 23 08:25:08 EST 2018
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 4732dbf32d783f2527478ec11fd603590c13e2a7 (commit)
via f6fc689c26dcc10408f3208f1399769da06ecfc2 (commit)
via c786164fe04480fef246aafd1e1c38d04a0f73fa (commit)
via 481420ee89992cd8e761ce36808b3dc73ccc16d2 (commit)
via 94eee5e683b80e0ffd8e0c4fd3a45b03f0f37b18 (commit)
via 84de8b80ec1fcb32c0455359b9abb414b65ad17c (commit)
from 1f082f2b608a05d0a8aa1c34b36827783ce20117 (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=4732dbf32d783f2527478ec11fd603590c13e2a7
commit 4732dbf32d783f2527478ec11fd603590c13e2a7
Merge: f6fc689 84de8b8
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 23 13:20:37 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 23 08:24:14 2018 -0500
Merge topic 'ninja-depfile-name'
84de8b80 Ninja: Use as dependency file <objectDir/SourceName>.d if needed.
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !1781
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f6fc689c26dcc10408f3208f1399769da06ecfc2
commit f6fc689c26dcc10408f3208f1399769da06ecfc2
Merge: c786164 481420e
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 23 13:19:23 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 23 08:22:51 2018 -0500
Merge topic '14297-partial-xcode-zero-check'
481420ee Xcode: Generate ZERO_CHECK generator target only once
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !1790
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c786164fe04480fef246aafd1e1c38d04a0f73fa
commit c786164fe04480fef246aafd1e1c38d04a0f73fa
Merge: 1f082f2 94eee5e
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 23 13:18:46 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 23 08:19:49 2018 -0500
Merge topic 'std-thread-link'
94eee5e6 CMakeLib: Link to system thread libraries to support std::thread
Acked-by: Kitware Robot <kwrobot at kitware.com>
Acked-by: Daniel Chabrowski <dantezstudio at gmail.com>
Merge-request: !1789
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=481420ee89992cd8e761ce36808b3dc73ccc16d2
commit 481420ee89992cd8e761ce36808b3dc73ccc16d2
Author: Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Wed Feb 21 23:42:55 2018 +0100
Commit: Gregor Jasny <gjasny at googlemail.com>
CommitDate: Thu Feb 22 21:15:48 2018 +0100
Xcode: Generate ZERO_CHECK generator target only once
In case CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY has been enabled
generate only the root-level ZERO_CHECK target so targets in
subdirectories pick up the root generator target of ZERO_CHECK.
For the case that CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY is not
enabled more investigation and a proper and final fix is still needed.
Issue: 14297
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 2a38599..d3f5aac 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -459,7 +459,11 @@ void cmGlobalXCodeGenerator::AddExtraTargets(
// Add ZERO_CHECK
bool regenerate = !mf->IsOn("CMAKE_SUPPRESS_REGENERATION");
- if (regenerate) {
+ bool generateTopLevelProjectOnly =
+ mf->IsOn("CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY");
+ bool isTopLevel =
+ !root->GetStateSnapshot().GetBuildsystemDirectoryParent().IsValid();
+ if (regenerate && (isTopLevel || !generateTopLevelProjectOnly)) {
this->CreateReRunCMakeFile(root, gens);
std::string file =
this->ConvertToRelativeForMake(this->CurrentReRunCMakeMakefile.c_str());
diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
index 64a07f0..5eff6b9 100644
--- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
@@ -236,3 +236,17 @@ if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
deploymeny_target_test(${SDK})
endforeach()
endif()
+
+function(XcodeDependOnZeroCheck)
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeDependOnZeroCheck-build)
+ set(RunCMake_TEST_NO_CLEAN 1)
+
+ file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+ file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+
+ run_cmake(XcodeDependOnZeroCheck)
+ run_cmake_command(XcodeDependOnZeroCheck-build ${CMAKE_COMMAND} --build . --target parentdirlib)
+ run_cmake_command(XcodeDependOnZeroCheck-build ${CMAKE_COMMAND} --build . --target subdirlib)
+endfunction()
+
+XcodeDependOnZeroCheck()
diff --git a/Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck-build-stdout.txt b/Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck-build-stdout.txt
new file mode 100644
index 0000000..92c9a29
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck-build-stdout.txt
@@ -0,0 +1 @@
+BUILD AGGREGATE TARGET ZERO_CHECK
diff --git a/Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck.cmake b/Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck.cmake
new file mode 100644
index 0000000..d759a65
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck.cmake
@@ -0,0 +1,4 @@
+set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE)
+project(XcodeDependOnZeroCheck CXX)
+add_subdirectory(zerocheck)
+add_library(parentdirlib foo.cpp)
diff --git a/Tests/RunCMake/XcodeProject/zerocheck/CMakeLists.txt b/Tests/RunCMake/XcodeProject/zerocheck/CMakeLists.txt
new file mode 100644
index 0000000..4adde99
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/zerocheck/CMakeLists.txt
@@ -0,0 +1,2 @@
+project(subproject)
+add_library(subdirlib ../foo.cpp)
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=94eee5e683b80e0ffd8e0c4fd3a45b03f0f37b18
commit 94eee5e683b80e0ffd8e0c4fd3a45b03f0f37b18
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 22 12:57:29 2018 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 22 12:59:20 2018 -0500
CMakeLib: Link to system thread libraries to support std::thread
Some environments require linking to thread libraries for `std::thread`.
Express this direct dependency of CMakeLib explicitly. Previously this
was done indirectly through our bundled libuv, but that does not work
when using a system libuv.
Fixes: #17757
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e4d2a9a..6623959 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -310,6 +310,8 @@ endmacro()
# Simply to improve readability of the main script.
#-----------------------------------------------------------------------
macro (CMAKE_BUILD_UTILITIES)
+ find_package(Threads)
+
#---------------------------------------------------------------------
# Create the kwsys library for CMake.
set(KWSYS_NAMESPACE cmsys)
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index e7c0732..a0010a2 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -765,6 +765,7 @@ target_link_libraries(CMakeLib cmsys
${CMAKE_LIBUV_LIBRARIES}
${CMAKE_LIBRHASH_LIBRARIES}
${CMake_KWIML_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=84de8b80ec1fcb32c0455359b9abb414b65ad17c
commit 84de8b80ec1fcb32c0455359b9abb414b65ad17c
Author: Claus Klein <claus.klein at arcormail.de>
AuthorDate: Tue Feb 20 21:42:50 2018 +0100
Commit: Claus Klein <claus.klein at arcormail.de>
CommitDate: Tue Feb 20 21:42:50 2018 +0100
Ninja: Use as dependency file <objectDir/SourceName>.d if needed.
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index f4faf47..e18959b 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -856,9 +856,27 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
vars["FLAGS"] = this->ComputeFlagsForObject(source, language);
vars["DEFINES"] = this->ComputeDefines(source, language);
vars["INCLUDES"] = this->ComputeIncludes(source, language);
+
if (!this->NeedDepTypeMSVC(language)) {
- vars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
- objectFileName + ".d", cmOutputConverter::SHELL);
+ bool replaceExt(false);
+ if (!language.empty()) {
+ std::string repVar = "CMAKE_";
+ repVar += language;
+ repVar += "_DEPFILE_EXTENSION_REPLACE";
+ replaceExt = this->Makefile->IsOn(repVar);
+ }
+ if (!replaceExt) {
+ // use original code
+ vars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
+ objectFileName + ".d", cmOutputConverter::SHELL);
+ } else {
+ // Replace the original source file extension with the
+ // depend file extension.
+ std::string dependFileName =
+ cmSystemTools::GetFilenameWithoutLastExtension(objectFileName) + ".d";
+ vars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
+ objectFileDir + "/" + dependFileName, cmOutputConverter::SHELL);
+ }
}
this->ExportObjectCompileCommand(
-----------------------------------------------------------------------
Summary of changes:
CMakeLists.txt | 2 ++
Source/CMakeLists.txt | 1 +
Source/cmGlobalXCodeGenerator.cxx | 6 +++++-
Source/cmNinjaTargetGenerator.cxx | 22 ++++++++++++++++++--
Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 14 +++++++++++++
.../XcodeDependOnZeroCheck-build-stdout.txt | 1 +
.../XcodeProject/XcodeDependOnZeroCheck.cmake | 4 ++++
.../RunCMake/XcodeProject/zerocheck/CMakeLists.txt | 2 ++
8 files changed, 49 insertions(+), 3 deletions(-)
create mode 100644 Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck-build-stdout.txt
create mode 100644 Tests/RunCMake/XcodeProject/XcodeDependOnZeroCheck.cmake
create mode 100644 Tests/RunCMake/XcodeProject/zerocheck/CMakeLists.txt
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list