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 6fdba8b8beb6d971a3c2efe8973cdee970dfd40a (commit) via 058217669fdb089f652c68b9eb0a3231a7172c91 (commit) via 707283981fd455bf0bf3ec62a669cf1c0a2e1edb (commit) via 8ca1b262863d8a5cbb8306a52873101c2e940f78 (commit) via 37da6af17d0d2cc8b499dc58f74866351e06c288 (commit) from d724060459f6adb5e7d99efde08c8fbacc4fdb5d (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=6fdba8b8beb6d971a3c2efe8973cdee970dfd40a commit 6fdba8b8beb6d971a3c2efe8973cdee970dfd40a Merge: 0582176 7072839 Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed Apr 3 18:06:38 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed Apr 3 14:07:11 2019 -0400 Merge topic 'refactor-lang-flags' 707283981f VS: Use AddLanguageFlags to de-duplicate CMAKE_<LANG>_FLAGS* lookup 8ca1b26286 cmLocalGenerator: Factor IPO logic out of AddLanguageFlags Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3177 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=058217669fdb089f652c68b9eb0a3231a7172c91 commit 058217669fdb089f652c68b9eb0a3231a7172c91 Merge: d724060 37da6af Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed Apr 3 18:05:32 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed Apr 3 14:05:57 2019 -0400 Merge topic 'find-dependency-fix-17583' 37da6af17d find_dependency: Always search dependencies Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3161 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=707283981fd455bf0bf3ec62a669cf1c0a2e1edb commit 707283981fd455bf0bf3ec62a669cf1c0a2e1edb Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Apr 1 13:38:55 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Apr 2 14:23:46 2019 -0400 VS: Use AddLanguageFlags to de-duplicate CMAKE_<LANG>_FLAGS* lookup diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index e519d78..7ba3471 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -662,14 +662,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration( langForClCompile = linkLanguage; if (langForClCompile == "C" || langForClCompile == "CXX" || langForClCompile == "Fortran") { - std::string baseFlagVar = "CMAKE_"; - baseFlagVar += langForClCompile; - baseFlagVar += "_FLAGS"; - flags = this->Makefile->GetRequiredDefinition(baseFlagVar); - std::string flagVar = - baseFlagVar + std::string("_") + cmSystemTools::UpperCase(configName); - flags += " "; - flags += this->Makefile->GetRequiredDefinition(flagVar); + this->AddLanguageFlags(flags, target, langForClCompile, configName); } // set the correct language if (linkLanguage == "C") { diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 8804e6c..5195957 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2540,14 +2540,8 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( } this->LangForClCompile = langForClCompile; if (!langForClCompile.empty()) { - std::string baseFlagVar = "CMAKE_"; - baseFlagVar += langForClCompile; - baseFlagVar += "_FLAGS"; - flags = this->Makefile->GetRequiredDefinition(baseFlagVar); - std::string flagVar = - baseFlagVar + "_" + cmSystemTools::UpperCase(configName); - flags += " "; - flags += this->Makefile->GetRequiredDefinition(flagVar); + this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget, + langForClCompile, configName); this->LocalGenerator->AddCompileOptions(flags, this->GeneratorTarget, langForClCompile, configName); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8ca1b262863d8a5cbb8306a52873101c2e940f78 commit 8ca1b262863d8a5cbb8306a52873101c2e940f78 Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Apr 1 13:37:02 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Apr 2 14:23:32 2019 -0400 cmLocalGenerator: Factor IPO logic out of AddLanguageFlags The IPO flag logic was added to `AddLanguageFlags` based on my advice. However, this method should really only be about `CMAKE_<LANG>_FLAGS*` variables. Move the IPO logic out to its call sites. diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index af165f6..2fc6121 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1800,6 +1800,10 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, this->CurrentLocalGenerator->AddLanguageFlags(flags, gtgt, lang, configName); + if (gtgt->IsIPOEnabled(lang, configName)) { + this->CurrentLocalGenerator->AppendFeatureOptions(flags, lang, "IPO"); + } + // Add shared-library flags if needed. this->CurrentLocalGenerator->AddCMP0018Flags(flags, gtgt, lang, configName); diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 40b8e19..6337f07 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1258,6 +1258,10 @@ void cmLocalGenerator::GetTargetCompileFlags(cmGeneratorTarget* target, // Add language-specific flags. this->AddLanguageFlags(flags, target, lang, config); + if (target->IsIPOEnabled(lang, config)) { + this->AppendFeatureOptions(flags, lang, "IPO"); + } + this->AddArchitectureFlags(flags, target, lang, config); if (lang == "Fortran") { @@ -1515,9 +1519,8 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags, flagsVar += "_FLAGS"; this->AddConfigVariableFlags(flags, flagsVar, config); - if (target->IsIPOEnabled(lang, config)) { - this->AppendFeatureOptions(flags, lang, "IPO"); - } + // Placeholder for possible future per-target flags. + static_cast<void>(target); } void cmLocalGenerator::AddLanguageFlagsForLinking( @@ -1534,6 +1537,10 @@ void cmLocalGenerator::AddLanguageFlagsForLinking( } this->AddLanguageFlags(flags, target, lang, config); + + if (target->IsIPOEnabled(lang, config)) { + this->AppendFeatureOptions(flags, lang, "IPO"); + } } cmGeneratorTarget* cmLocalGenerator::FindGeneratorTargetToUse( https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=37da6af17d0d2cc8b499dc58f74866351e06c288 commit 37da6af17d0d2cc8b499dc58f74866351e06c288 Author: Damien R <9464-damie...@users.noreply.gitlab.kitware.com> AuthorDate: Fri Mar 29 00:47:23 2019 +0100 Commit: Damien R <9464-damie...@users.noreply.gitlab.kitware.com> CommitDate: Fri Mar 29 22:03:21 2019 +0100 find_dependency: Always search dependencies When a dependency was already found, find_dependency did not search it again. While this works in basic case, it does not when there are components as the check does not take components into account. Given the fact that there is no documentation about this optimization and that the correct implementation is not trivial as it would require changes in find_package to have the list of components already found we always search dependencies. Fix #17583. diff --git a/Modules/CMakeFindDependencyMacro.cmake b/Modules/CMakeFindDependencyMacro.cmake index ab22701..bcdfbeb 100644 --- a/Modules/CMakeFindDependencyMacro.cmake +++ b/Modules/CMakeFindDependencyMacro.cmake @@ -31,35 +31,33 @@ CMakeFindDependencyMacro #]=======================================================================] macro(find_dependency dep) - if (NOT ${dep}_FOUND) - set(cmake_fd_quiet_arg) - if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - set(cmake_fd_quiet_arg QUIET) - endif() - set(cmake_fd_required_arg) - if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) - set(cmake_fd_required_arg REQUIRED) - endif() + set(cmake_fd_quiet_arg) + if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) + set(cmake_fd_quiet_arg QUIET) + endif() + set(cmake_fd_required_arg) + if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) + set(cmake_fd_required_arg REQUIRED) + endif() - get_property(cmake_fd_alreadyTransitive GLOBAL PROPERTY - _CMAKE_${dep}_TRANSITIVE_DEPENDENCY - ) + get_property(cmake_fd_alreadyTransitive GLOBAL PROPERTY + _CMAKE_${dep}_TRANSITIVE_DEPENDENCY + ) - find_package(${dep} ${ARGN} - ${cmake_fd_quiet_arg} - ${cmake_fd_required_arg} - ) + find_package(${dep} ${ARGN} + ${cmake_fd_quiet_arg} + ${cmake_fd_required_arg} + ) - if(NOT DEFINED cmake_fd_alreadyTransitive OR cmake_fd_alreadyTransitive) - set_property(GLOBAL PROPERTY _CMAKE_${dep}_TRANSITIVE_DEPENDENCY TRUE) - endif() + if(NOT DEFINED cmake_fd_alreadyTransitive OR cmake_fd_alreadyTransitive) + set_property(GLOBAL PROPERTY _CMAKE_${dep}_TRANSITIVE_DEPENDENCY TRUE) + endif() - if (NOT ${dep}_FOUND) - set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "${CMAKE_FIND_PACKAGE_NAME} could not be found because dependency ${dep} could not be found.") - set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) - return() - endif() - set(cmake_fd_required_arg) - set(cmake_fd_quiet_arg) + if (NOT ${dep}_FOUND) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "${CMAKE_FIND_PACKAGE_NAME} could not be found because dependency ${dep} could not be found.") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + return() endif() + set(cmake_fd_required_arg) + set(cmake_fd_quiet_arg) endmacro() diff --git a/Tests/Module/FindDependency/CMakeLists.txt b/Tests/Module/FindDependency/CMakeLists.txt index dcb998a..06d7dce 100644 --- a/Tests/Module/FindDependency/CMakeLists.txt +++ b/Tests/Module/FindDependency/CMakeLists.txt @@ -6,6 +6,8 @@ set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/packages") find_package(Pack1 REQUIRED) find_package(Pack4 4.3 EXACT REQUIRED) +find_package(Pack7 REQUIRED) +find_package(Pack8 REQUIRED) add_executable(FindDependency main.cpp) -target_link_libraries(FindDependency Pack1::Lib Pack4::Lib) +target_link_libraries(FindDependency Pack1::Lib Pack4::Lib Pack8::Lib) diff --git a/Tests/Module/FindDependency/main.cpp b/Tests/Module/FindDependency/main.cpp index 1df4cb5..4ee460f 100644 --- a/Tests/Module/FindDependency/main.cpp +++ b/Tests/Module/FindDependency/main.cpp @@ -23,6 +23,18 @@ # error Expected HAVE_PACK6 #endif +#ifndef HAVE_PACK7 +# error Expected HAVE_PACK7 +#endif + +#ifndef HAVE_PACK7_COMP1 +# error Expected HAVE_PACK7_COMP1 +#endif + +#ifndef HAVE_PACK8 +# error Expected HAVE_PACK8 +#endif + int main(int argc, char** argv) { return 0; diff --git a/Tests/Module/FindDependency/packages/Pack7/Pack7Config.cmake b/Tests/Module/FindDependency/packages/Pack7/Pack7Config.cmake new file mode 100644 index 0000000..9df1345 --- /dev/null +++ b/Tests/Module/FindDependency/packages/Pack7/Pack7Config.cmake @@ -0,0 +1,14 @@ +if(NOT Pack7_FOUND) + set(Pack7_FOUND 1) + add_library(Pack7::Pack7 INTERFACE IMPORTED) + set_property(TARGET Pack7::Pack7 PROPERTY INTERFACE_COMPILE_DEFINITIONS HAVE_PACK7) +endif() + +foreach(module ${Pack7_FIND_COMPONENTS}) + if(module STREQUAL "Comp1") + add_library(Pack7::Comp1 INTERFACE IMPORTED) + set_property(TARGET Pack7::Comp1 PROPERTY INTERFACE_COMPILE_DEFINITIONS HAVE_PACK7_COMP1) + set_property(TARGET Pack7::Comp1 PROPERTY INTERFACE_LINK_LIBRARIES Pack7::Pack7) + set(Pack7_Comp1_FOUND 1) + endif() +endforeach() diff --git a/Tests/Module/FindDependency/packages/Pack8/Pack8Config.cmake b/Tests/Module/FindDependency/packages/Pack8/Pack8Config.cmake new file mode 100644 index 0000000..d7ca054 --- /dev/null +++ b/Tests/Module/FindDependency/packages/Pack8/Pack8Config.cmake @@ -0,0 +1,7 @@ +include(CMakeFindDependencyMacro) + +find_dependency(Pack7 REQUIRED COMPONENTS Comp1) + +add_library(Pack8::Lib INTERFACE IMPORTED) +set_property(TARGET Pack8::Lib PROPERTY INTERFACE_COMPILE_DEFINITIONS HAVE_PACK8) +set_property(TARGET Pack8::Lib PROPERTY INTERFACE_LINK_LIBRARIES Pack7::Comp1) ----------------------------------------------------------------------- Summary of changes: Modules/CMakeFindDependencyMacro.cmake | 50 +++++++++++----------- Source/cmGlobalXCodeGenerator.cxx | 4 ++ Source/cmLocalGenerator.cxx | 13 ++++-- Source/cmLocalVisualStudio7Generator.cxx | 9 +--- Source/cmVisualStudio10TargetGenerator.cxx | 10 +---- Tests/Module/FindDependency/CMakeLists.txt | 4 +- Tests/Module/FindDependency/main.cpp | 12 ++++++ .../packages/Pack7/Pack7Config.cmake | 14 ++++++ .../packages/Pack8/Pack8Config.cmake | 7 +++ 9 files changed, 77 insertions(+), 46 deletions(-) create mode 100644 Tests/Module/FindDependency/packages/Pack7/Pack7Config.cmake create mode 100644 Tests/Module/FindDependency/packages/Pack8/Pack8Config.cmake hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits