[Cmake-commits] CMake branch, master, updated. v3.14.4-1083-gc22693b
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 c22693b99df12f540480438275cd5bae1cfc5846 (commit) from f03a80aefd4073bc1502c2e486fedfdbd8addfb6 (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=c22693b99df12f540480438275cd5bae1cfc5846 commit c22693b99df12f540480438275cd5bae1cfc5846 Author: Kitware Robot AuthorDate: Fri May 24 00:01:06 2019 -0400 Commit: Kitware Robot CommitDate: Fri May 24 00:01:06 2019 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 6948abd..386dbbf 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 14) -set(CMake_VERSION_PATCH 20190523) +set(CMake_VERSION_PATCH 20190524) #set(CMake_VERSION_RC 1) --- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.14.4-1082-gf03a80a
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 f03a80aefd4073bc1502c2e486fedfdbd8addfb6 (commit) via 5a1af142f120ccc6834efcf786e346b06e0f05c6 (commit) from a4faf7788cc40b17c48a9393cd15425ee65abfd9 (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=f03a80aefd4073bc1502c2e486fedfdbd8addfb6 commit f03a80aefd4073bc1502c2e486fedfdbd8addfb6 Merge: a4faf77 5a1af14 Author: Brad King AuthorDate: Thu May 23 13:22:25 2019 + Commit: Kitware Robot CommitDate: Thu May 23 09:22:37 2019 -0400 Merge topic 'genex-target-property-lifetime' 5a1af142f1 Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluation Acked-by: Kitware Robot Merge-request: !3362 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5a1af142f120ccc6834efcf786e346b06e0f05c6 commit 5a1af142f120ccc6834efcf786e346b06e0f05c6 Author: Brad King AuthorDate: Wed May 22 09:56:19 2019 -0400 Commit: Brad King CommitDate: Wed May 22 10:19:41 2019 -0400 Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluation For special properties like `INCLUDE_DIRECTORIES`, the pointer returned by `cmTarget::GetProperty` is only valid until the next time the same special property is queried on *any* target. When evaluating a nested `TARGET_PROPERTY` generator expression we may look up such a property more than once on different targets. Fix `TargetPropertyNode::Evaluate` to store the lookup result in locally owned memory earlier. Fixes: #19286 diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 709355a..68ef170 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -1215,7 +1215,12 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode break; } -const char* prop = target->GetProperty(propertyName); +std::string prop; +bool haveProp = false; +if (const char* p = target->GetProperty(propertyName)) { + prop = p; + haveProp = true; +} if (dagCheckerParent) { if (dagCheckerParent->EvaluatingGenexExpression() || @@ -1235,7 +1240,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode } #undef TRANSITIVE_PROPERTY_COMPARE -if (!prop) { +if (!haveProp) { return std::string(); } } else { @@ -1291,7 +1296,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode } } -if (!prop) { +if (!haveProp) { if (target->IsImported() || target->GetType() == cmStateEnums::INTERFACE_LIBRARY) { return linkedTargetsContent; diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake index 8abf70d..68a0172 100644 --- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake @@ -53,6 +53,7 @@ run_cmake_with_options(TARGET_FILE_BASE_NAME -DCMAKE_BUILD_TYPE:STRING=Debug) run_cmake_with_options(TARGET_FILE_BASE_NAME-imported-target -DCMAKE_BUILD_TYPE:STRING=Debug) run_cmake(TARGET_FILE_BASE_NAME-non-valid-target) run_cmake(TARGET_LINKER_FILE_BASE_NAME-non-valid-target) +run_cmake(TARGET_PROPERTY-INCLUDE_DIRECTORIES) run_cmake(TARGET_PROPERTY-LOCATION) run_cmake(TARGET_PROPERTY-SOURCES) run_cmake(LINK_ONLY-not-linking) diff --git a/Tests/RunCMake/GeneratorExpression/TARGET_PROPERTY-INCLUDE_DIRECTORIES.cmake b/Tests/RunCMake/GeneratorExpression/TARGET_PROPERTY-INCLUDE_DIRECTORIES.cmake new file mode 100644 index 000..cb6f4d8 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/TARGET_PROPERTY-INCLUDE_DIRECTORIES.cmake @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.14) +enable_language(C) + +add_library(foo1 STATIC empty.c) +target_include_directories(foo1 PUBLIC include) +target_link_libraries(foo1 PRIVATE foo2 foo3 foo4) + +add_library(foo2 STATIC empty.c) +target_include_directories(foo2 PUBLIC $) + +add_library(foo3 STATIC empty.c) +target_include_directories(foo3 PUBLIC $) + +add_library(foo4 STATIC empty.c) +target_include_directories(foo4 PUBLIC $) + +# Evaluate a genex that looks up INCLUDE_DIRECTORIES on multiple targets. +file(GENERATE OUTPUT out.txt CONTENT "$") --- Summary of changes: Source/cmGeneratorExpressionNode.cxx | 11 --- Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake | 1 +
[Cmake-commits] CMake branch, master, updated. v3.14.4-1080-ga4faf77
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 a4faf7788cc40b17c48a9393cd15425ee65abfd9 (commit) via e884b1b69365e9dc15fff572a6ff2237c1bb7644 (commit) from 22df62b58d8e2b9af5e754f4ed413d90088eb79e (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=a4faf7788cc40b17c48a9393cd15425ee65abfd9 commit a4faf7788cc40b17c48a9393cd15425ee65abfd9 Merge: 22df62b e884b1b Author: Brad King AuthorDate: Thu May 23 12:54:16 2019 + Commit: Kitware Robot CommitDate: Thu May 23 09:05:47 2019 -0400 Merge topic 'string-error' e884b1b693 cmSystemTools::Error(): remove const char* overload Acked-by: Kitware Robot Merge-request: !3360 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e884b1b69365e9dc15fff572a6ff2237c1bb7644 commit e884b1b69365e9dc15fff572a6ff2237c1bb7644 Author: Vitaly Stakhovsky AuthorDate: Wed May 22 09:16:42 2019 -0400 Commit: Brad King CommitDate: Wed May 22 10:51:06 2019 -0400 cmSystemTools::Error(): remove const char* overload diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx index 43cfe16..a739f44 100644 --- a/Source/CTest/cmCTestScriptHandler.cxx +++ b/Source/CTest/cmCTestScriptHandler.cxx @@ -447,7 +447,8 @@ int cmCTestScriptHandler::ExtractVariables() if (updateVal) { if (this->UpdateCmd.empty()) { cmSystemTools::Error( - updateVar, " specified without specifying CTEST_CVS_COMMAND."); + std::string(updateVar) + + " specified without specifying CTEST_CVS_COMMAND."); return 12; } this->ExtraUpdates.emplace_back(updateVal); diff --git a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx index e7ed097..c1dd591 100644 --- a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx +++ b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx @@ -83,7 +83,7 @@ cmCursesCacheEntryComposite::cmCursesCacheEntryComposite( break; } case cmStateEnums::UNINITIALIZED: - cmSystemTools::Error("Found an undefined variable: ", key.c_str()); + cmSystemTools::Error("Found an undefined variable: " + key); break; default: // TODO : put warning message here diff --git a/Source/cmCPluginAPI.cxx b/Source/cmCPluginAPI.cxx index 5efc784..255a8e6 100644 --- a/Source/cmCPluginAPI.cxx +++ b/Source/cmCPluginAPI.cxx @@ -167,8 +167,8 @@ void CCONV cmAddLinkDirectoryForTarget(void* arg, const char* tgt, cmTarget* t = mf->FindLocalNonAliasTarget(tgt); if (!t) { cmSystemTools::Error( - "Attempt to add link directories to non-existent target: ", tgt, - " for directory ", d); + "Attempt to add link directories to non-existent target: " + + std::string(tgt) + " for directory " + std::string(d)); return; } t->InsertLinkDirectory(d, mf->GetBacktrace()); diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index 6116de0..358f095 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -308,8 +308,7 @@ bool cmCacheManager::SaveCache(const std::string& path, cmMessenger* messenger) if (!ce.Initialized) { /* // This should be added in, but is not for now. - cmSystemTools::Error("Cache entry \"", (*i).first.c_str(), - "\" is uninitialized"); + cmSystemTools::Error("Cache entry \"" + i.first + "\" is uninitialized"); */ } else if (t != cmStateEnums::INTERNAL) { // Format is key:type=value diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b08dd1c..3495f2a 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1798,10 +1798,10 @@ int cmGlobalGenerator::Build( output += "\n"; if (workdir.Failed()) { cmSystemTools::SetRunCommandHideConsole(hideconsole); -cmSystemTools::Error("Failed to change directory: ", - std::strerror(workdir.GetLastResult())); -output += "Failed to change directory: "; -output += std::strerror(workdir.GetLastResult()); +std::string err = "Failed to change directory: "; +err += std::strerror(workdir.GetLastResult()); +cmSystemTools::Error(err); +output += err; output += "\n"; return 1; } diff --git a/Source/cmInstallExportAndroidMKGenerator.cxx b/Source/cmInstallExportAndroidMKGenerator.cxx index 7de3dd4..55d3685 100644 --- a/Source/cmInstallExportAndroidMKGenerator.cxx +++ b/Source/cmInstallExportAndroidMKGenerator.cxx @@ -44,7 +44,7 @@ void
[Cmake-commits] CMake branch, master, updated. v3.14.4-1078-g22df62b
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 22df62b58d8e2b9af5e754f4ed413d90088eb79e (commit) via 4f739a4e47d450406818804e45e5daaf452b39a8 (commit) via 5222400d9f574b5f953a2fe1d2c95a9754c683f3 (commit) via cbd1c5b4ab16fa3e1086417f010e7bbad42cc50d (commit) via 79c6a573f4c6690914511e4e1894221a94f1b3e3 (commit) via d1a570f18c47bb840fc19a9979d3970fbaa7e58a (commit) via 8ee6584a9975e766047fd73815a81a8d9c7db3f5 (commit) via 5b53cfda247f7d688a058f358628639a431313a8 (commit) via 9c576a88d95b302882bcb0a021dcf03982a40902 (commit) via 4b45a5d5c7f9266e5ca08f6d5676759b9aac4235 (commit) via 02c14b7fcd29a7dcedb930fe5d9138cb185493e1 (commit) via 24223ac84bd1610cef2ab0935233387227653dfd (commit) via 7e636fd8e0f10c8e0ba5eea529f4fedffd899ecf (commit) via 0fbf936b4630ca9db0d492d8c7e583f45d959b45 (commit) via 8517b549f44eb41c93eb1c448de176ad4172f083 (commit) via 9f205acefe256ac9707cd500ea1d421916f013cd (commit) via 26ea022c3bf081d9e1f7266e5ae52719cb59301b (commit) from d7e70d01fe510b6f5760a88cc6f244cbc0ed5f32 (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=22df62b58d8e2b9af5e754f4ed413d90088eb79e commit 22df62b58d8e2b9af5e754f4ed413d90088eb79e Merge: 4f739a4 24223ac Author: Brad King AuthorDate: Thu May 23 12:53:16 2019 + Commit: Kitware Robot CommitDate: Thu May 23 09:02:55 2019 -0400 Merge topic 'swift-flag-variables' 24223ac84b Modules: add Swift MSVC_RUNTIME_LIBRARY flags 7e636fd8e0 Modules: add `CMAKE_Swift_FRAMEWORK_SEARCH_FLAG` 0fbf936b46 Modules: remove `CMAKE_INCLUDE_FLAG_SEP_Swift` Acked-by: Kitware Robot Merge-request: !3353 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4f739a4e47d450406818804e45e5daaf452b39a8 commit 4f739a4e47d450406818804e45e5daaf452b39a8 Merge: 5222400 8ee6584 Author: Brad King AuthorDate: Thu May 23 12:53:57 2019 + Commit: Kitware Robot CommitDate: Thu May 23 09:01:04 2019 -0400 Merge topic 'compiler-launcher-shell-format' 8ee6584a99 Ninja,Makefile: Fix _COMPILER_LAUNCHER shell command syntax Acked-by: Kitware Robot Merge-request: !3361 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5222400d9f574b5f953a2fe1d2c95a9754c683f3 commit 5222400d9f574b5f953a2fe1d2c95a9754c683f3 Merge: cbd1c5b 8517b54 Author: Brad King AuthorDate: Thu May 23 12:52:47 2019 + Commit: Kitware Robot CommitDate: Thu May 23 08:59:25 2019 -0400 Merge topic 'FindPython-find_strategy' 8517b549f4 FindPython: Add policy to manage lookup stratgey default. 9f205acefe FindPython: Implement lookup strategies. Acked-by: Kitware Robot Merge-request: !3354 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cbd1c5b4ab16fa3e1086417f010e7bbad42cc50d commit cbd1c5b4ab16fa3e1086417f010e7bbad42cc50d Merge: 79c6a57 26ea022 Author: Brad King AuthorDate: Thu May 23 12:52:12 2019 + Commit: Kitware Robot CommitDate: Thu May 23 08:57:36 2019 -0400 Merge topic 'framework-var' 26ea022c3b Add variable CMAKE_FRAMEWORK Acked-by: Kitware Robot Merge-request: !3347 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=79c6a573f4c6690914511e4e1894221a94f1b3e3 commit 79c6a573f4c6690914511e4e1894221a94f1b3e3 Merge: d1a570f 02c14b7 Author: Brad King AuthorDate: Thu May 23 12:53:24 2019 + Commit: Kitware Robot CommitDate: Thu May 23 08:55:16 2019 -0400 Merge topic 'swift-flags' 02c14b7fcd Ninja,Swift: pass along DEFINES/FLAGS/INCLUDES Acked-by: Kitware Robot Merge-request: !3355 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1a570f18c47bb840fc19a9979d3970fbaa7e58a commit d1a570f18c47bb840fc19a9979d3970fbaa7e58a Merge: d7e70d0 5b53cfd Author: Brad King AuthorDate: Thu May 23 12:51:39 2019 + Commit: Kitware Robot CommitDate: Thu May 23 08:53:17 2019 -0400 Merge topic 'cmFileTimes' 5b53cfda24 cmSystemTools: Remove cmSystemToolsFileTime interface 9c576a88d9 Use cmFileTimes instead of cmSystemToolsFileTime interface 4b45a5d5c7 cmFileTimes: New RAII based cmFileTimes class Acked-by: Kitware Robot Merge-request: !3358 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8ee6584a9975e766047fd73815a81a8d9c7db3f5 commit 8ee6584a9975e766047fd73815a81a8d9c7db3f5 Author: Brad King AuthorDate: Wed May 22 09:30:38 2019 -0400 Commit: Brad King CommitDate: Wed May 22 10:47:15 2019 -0400 Ninja,Makefile: Fix _COMPILER_LAUNCHER shell
[Cmake-commits] CMake branch, master, updated. v3.14.4-1061-gd7e70d0
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 d7e70d01fe510b6f5760a88cc6f244cbc0ed5f32 (commit) via 71d6a1455e402755023b509629971afd1ed98922 (commit) from 22d58e07e5dc54e113ae7414dea604549b0cfc43 (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=d7e70d01fe510b6f5760a88cc6f244cbc0ed5f32 commit d7e70d01fe510b6f5760a88cc6f244cbc0ed5f32 Merge: 22d58e0 71d6a14 Author: Brad King AuthorDate: Thu May 23 12:51:29 2019 + Commit: Kitware Robot CommitDate: Thu May 23 08:51:38 2019 -0400 Merge topic 'autogen_compiler_features' 71d6a1455e Autogen: Evaluate compiler features for the same exectuable only once Acked-by: Kitware Robot Merge-request: !3359 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=71d6a1455e402755023b509629971afd1ed98922 commit 71d6a1455e402755023b509629971afd1ed98922 Author: Sebastian Holtermann AuthorDate: Wed May 22 12:09:31 2019 +0200 Commit: Sebastian Holtermann CommitDate: Wed May 22 12:25:17 2019 +0200 Autogen: Evaluate compiler features for the same exectuable only once To speed up the `AUTOGEN` configuration process, evaluate the compiler features only once. The feature evaluation result is stored in the new class `cmQtAutoGen::CompilerFeatures`, and the instance is shared by using `std::shared_ptr`. diff --git a/Source/cmQtAutoGen.h b/Source/cmQtAutoGen.h index 3a346b5..9c52129 100644 --- a/Source/cmQtAutoGen.h +++ b/Source/cmQtAutoGen.h @@ -5,6 +5,7 @@ #include "cmConfigure.h" // IWYU pragma: keep +#include // IWYU pragma: keep #include #include @@ -40,6 +41,15 @@ public: } }; + class CompilerFeatures + { + public: +bool Evaluated = false; +std::string HelpOutput; +std::vector ListOptions; + }; + typedef std::shared_ptr CompilerFeaturesHandle; + /// @brief AutoGen generator type enum class GenT { diff --git a/Source/cmQtAutoGenGlobalInitializer.cxx b/Source/cmQtAutoGenGlobalInitializer.cxx index 59e17d7..ef8a56b 100644 --- a/Source/cmQtAutoGenGlobalInitializer.cxx +++ b/Source/cmQtAutoGenGlobalInitializer.cxx @@ -203,19 +203,16 @@ void cmQtAutoGenGlobalInitializer::AddToGlobalAutoRcc( } } -bool cmQtAutoGenGlobalInitializer::GetExecutableTestOutput( +cmQtAutoGen::CompilerFeaturesHandle +cmQtAutoGenGlobalInitializer::GetCompilerFeatures( std::string const& generator, std::string const& executable, - std::string& error, std::string* output) + std::string& error) { - // Check if we have cached output + // Check if we have cached features { -auto it = this->ExecutableTestOutputs_.find(executable); -if (it != this->ExecutableTestOutputs_.end()) { - // Return output on demand - if (output != nullptr) { -*output = it->second; - } - return true; +auto it = this->CompilerFeatures_.find(executable); +if (it != this->CompilerFeatures_.end()) { + return it->second; } } @@ -226,7 +223,7 @@ bool cmQtAutoGenGlobalInitializer::GetExecutableTestOutput( error += "\" executable "; error += cmQtAutoGen::Quoted(executable); error += " does not exist."; -return false; +return cmQtAutoGen::CompilerFeaturesHandle(); } // Test the executable @@ -234,7 +231,7 @@ bool cmQtAutoGenGlobalInitializer::GetExecutableTestOutput( { std::string stdErr; std::vector command; -command.push_back(executable); +command.emplace_back(executable); command.emplace_back("-h"); int retVal = 0; const bool runResult = cmSystemTools::RunSingleCommand( @@ -250,19 +247,19 @@ bool cmQtAutoGenGlobalInitializer::GetExecutableTestOutput( error += stdOut; error += "\n"; error += stdErr; - return false; + return cmQtAutoGen::CompilerFeaturesHandle(); } } - // Return executable output on demand - if (output != nullptr) { -*output = stdOut; - } + // Create valid handle + cmQtAutoGen::CompilerFeaturesHandle res = +std::make_shared(); + res->HelpOutput = std::move(stdOut); - // Register executable and output - this->ExecutableTestOutputs_.emplace(executable, std::move(stdOut)); + // Register compiler features + this->CompilerFeatures_.emplace(executable, res); - return true; + return res; } bool cmQtAutoGenGlobalInitializer::generate() diff --git a/Source/cmQtAutoGenGlobalInitializer.h b/Source/cmQtAutoGenGlobalInitializer.h index 77429b7..d56153a 100644 --- a/Source/cmQtAutoGenGlobalInitializer.h +++ b/Source/cmQtAutoGenGlobalInitializer.h @@ -5,6 +5,8 @@ #include "cmConfigure.h" // IWYU