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  61c6d49f5a2f3024aca81bb1535ab804f94adfba (commit)
       via  50afd147f851aec03e203f2e8c413ab8a9e744c5 (commit)
       via  c684db4ea8d4763a7a70582d24c4bf5ac14cfea4 (commit)
       via  55a0bebdd3d253f81bd89782702d481ac81110b3 (commit)
       via  bcaecf6bcddfaec2b586bff870650a4a66b0ccc3 (commit)
       via  324988a6b101f29d148badc32b44964aedae1163 (commit)
       via  fd2c9fac101ec6d341db5b30e9d1eba64fa23116 (commit)
      from  a82a96f35b3970501cd552c36819f9313734f669 (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=61c6d49f5a2f3024aca81bb1535ab804f94adfba
commit 61c6d49f5a2f3024aca81bb1535ab804f94adfba
Merge: 50afd147f8 c684db4ea8
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Oct 21 15:19:37 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Mon Oct 21 11:19:45 2019 -0400

    Merge topic 'doc-genex-tweak'
    
    c684db4ea8 Help: Fix COMPILE_LANG_AND_ID genex example
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3939


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=50afd147f851aec03e203f2e8c413ab8a9e744c5
commit 50afd147f851aec03e203f2e8c413ab8a9e744c5
Merge: a82a96f35b 55a0bebdd3
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Oct 21 15:11:58 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Mon Oct 21 11:12:06 2019 -0400

    Merge topic 'vs-per-config-sources'
    
    55a0bebdd3 VS: Add support for per-config sources
    bcaecf6bcd Teach check for single-language targets to consider all 
configurations
    324988a6b1 cmGeneratorTarget: Add GetAllConfigCompileLanguages method
    fd2c9fac10 cmGeneratorTarget: Return non-const sources from 
GetAllConfigSources
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3882


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c684db4ea8d4763a7a70582d24c4bf5ac14cfea4
commit c684db4ea8d4763a7a70582d24c4bf5ac14cfea4
Author:     Alan W. Irwin <ir...@beluga.phys.uvic.ca>
AuthorDate: Mon Oct 21 10:21:16 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Oct 21 10:25:41 2019 -0400

    Help: Fix COMPILE_LANG_AND_ID genex example
    
    Fix the `COMPILE_LANGUAGE/CXX_COMPILER_ID` variant of the example to
    have the same meaning as the `COMPILE_LANG_AND_ID` variant.  The
    inconsistency was introduced by commit 808b818063 (Genex: CompileLang
    and CompileLangAndId now match against a list of ids, 2019-05-30,
    v3.15.0-rc1~11^2~1).
    
    Fixes: #19862

diff --git a/Help/manual/cmake-generator-expressions.7.rst 
b/Help/manual/cmake-generator-expressions.7.rst
index c0449fb4ae..e970379fad 100644
--- a/Help/manual/cmake-generator-expressions.7.rst
+++ b/Help/manual/cmake-generator-expressions.7.rst
@@ -195,7 +195,7 @@ Variable Queries
   .. code-block:: cmake
 
     target_compile_definitions(myapp
-      PRIVATE 
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Clang>>:COMPILING_CXX_WITH_CLANG>
+      PRIVATE 
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:AppleClang,Clang>>:COMPILING_CXX_WITH_CLANG>
               
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Intel>>:COMPILING_CXX_WITH_INTEL>
               
$<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:Clang>>:COMPILING_C_WITH_CLANG>
     )

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=55a0bebdd3d253f81bd89782702d481ac81110b3
commit 55a0bebdd3d253f81bd89782702d481ac81110b3
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Oct 2 13:59:15 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Oct 17 14:05:39 2019 -0400

    VS: Add support for per-config sources
    
    Since commit 97cc29c766 (VS: Teach generators how to mark per-config
    source files, 2017-04-10, v3.9.0-rc1~268^2~2) the VS generators have
    known how to generate per-config sources.  We've now converted most
    other code paths to support per-config sources, so drop the check
    that disallows it.
    
    This leaves only per-config support for precompiled headers and unity
    build transformations, but those are optional features that can be
    addressed later.
    
    Fixes: #18233
    Issue: #19789

diff --git a/Help/release/dev/vs-per-config-sources.rst 
b/Help/release/dev/vs-per-config-sources.rst
new file mode 100644
index 0000000000..bf7572b6ed
--- /dev/null
+++ b/Help/release/dev/vs-per-config-sources.rst
@@ -0,0 +1,5 @@
+vs-per-config-sources
+---------------------
+
+* :ref:`Visual Studio Generators` learned to support per-config sources.
+  Previously only :ref:`Command-Line Build Tool Generators` supported them.
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx 
b/Source/cmGlobalVisualStudioGenerator.cxx
index 6569e5ef61..54124070d7 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -799,15 +799,6 @@ void RegisterVisualStudioMacros(const std::string& 
macrosFile,
 bool cmGlobalVisualStudioGenerator::TargetIsFortranOnly(
   cmGeneratorTarget const* gt)
 {
-  // check to see if this is a fortran build
-  {
-    // Issue diagnostic if the source files depend on the config.
-    std::vector<cmSourceFile*> sources;
-    if (!gt->GetConfigCommonSourceFiles(sources)) {
-      return false;
-    }
-  }
-
   // If there's only one source language, Fortran has to be used
   // in order for the sources to compile.
   std::set<std::string> languages = gt->GetAllConfigCompileLanguages();
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index b29638bafe..185401fc43 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -451,8 +451,12 @@ if(BUILD_TESTING)
   ADD_TEST_MACRO(StagingPrefix StagingPrefix)
   ADD_TEST_MACRO(ImportedSameName ImportedSameName)
   ADD_TEST_MACRO(InterfaceLibrary InterfaceLibrary)
-  if(NOT _isMultiConfig)
-    set(ConfigSources_BUILD_OPTIONS -DCMAKE_BUILD_TYPE=$<CONFIGURATION>)
+  if(NOT CMAKE_GENERATOR STREQUAL "Xcode")
+    if(_isMultiConfig)
+      set(ConfigSources_CTEST_OPTIONS --build-config $<CONFIGURATION>)
+    else()
+      set(ConfigSources_BUILD_OPTIONS -DCMAKE_BUILD_TYPE=$<CONFIGURATION>)
+    endif()
     ADD_TEST_MACRO(ConfigSources ConfigSources)
   endif()
   ADD_TEST_MACRO(SourcesProperty SourcesProperty)
diff --git a/Tests/RunCMake/TargetSources/RunCMakeTest.cmake 
b/Tests/RunCMake/TargetSources/RunCMakeTest.cmake
index bee8c4e38f..0d462ba66c 100644
--- a/Tests/RunCMake/TargetSources/RunCMakeTest.cmake
+++ b/Tests/RunCMake/TargetSources/RunCMakeTest.cmake
@@ -1,6 +1,6 @@
 include(RunCMake)
 
-if(RunCMake_GENERATOR MATCHES "Visual Studio|Xcode")
+if(RunCMake_GENERATOR STREQUAL "Xcode")
   run_cmake(ConfigNotAllowed)
 endif()
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bcaecf6bcddfaec2b586bff870650a4a66b0ccc3
commit bcaecf6bcddfaec2b586bff870650a4a66b0ccc3
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Oct 4 10:42:03 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Oct 17 14:03:54 2019 -0400

    Teach check for single-language targets to consider all configurations

diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 0cc70c7d8b..d5e58b0062 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -6356,8 +6356,7 @@ bool cmGeneratorTarget::IsCSharpOnly() const
       this->GetType() != cmStateEnums::EXECUTABLE) {
     return false;
   }
-  std::set<std::string> languages;
-  this->GetLanguages(languages, "");
+  std::set<std::string> languages = this->GetAllConfigCompileLanguages();
   // Consider an explicit linker language property, but *not* the
   // computed linker language that may depend on linked targets.
   const char* linkLang = this->GetProperty("LINKER_LANGUAGE");
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx 
b/Source/cmGlobalVisualStudioGenerator.cxx
index ed0cba7ddf..6569e5ef61 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -810,8 +810,7 @@ bool cmGlobalVisualStudioGenerator::TargetIsFortranOnly(
 
   // If there's only one source language, Fortran has to be used
   // in order for the sources to compile.
-  std::set<std::string> languages;
-  gt->GetLanguages(languages, "");
+  std::set<std::string> languages = gt->GetAllConfigCompileLanguages();
   // Consider an explicit linker language property, but *not* the
   // computed linker language that may depend on linked targets.
   // This allows the project to control the language choice in

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=324988a6b101f29d148badc32b44964aedae1163
commit 324988a6b101f29d148badc32b44964aedae1163
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Oct 2 13:57:12 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Oct 17 14:03:54 2019 -0400

    cmGeneratorTarget: Add GetAllConfigCompileLanguages method
    
    Return all languages needed to compile sources in the target in
    any configuration.

diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 949d9d9128..0cc70c7d8b 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -1670,6 +1670,19 @@ void cmGeneratorTarget::ComputeAllConfigSources() const
   }
 }
 
+std::set<std::string> cmGeneratorTarget::GetAllConfigCompileLanguages() const
+{
+  std::set<std::string> languages;
+  std::vector<AllConfigSource> const& sources = this->GetAllConfigSources();
+  for (AllConfigSource const& si : sources) {
+    std::string const& lang = si.Source->GetOrDetermineLanguage();
+    if (!lang.empty()) {
+      languages.emplace(lang);
+    }
+  }
+  return languages;
+}
+
 std::string cmGeneratorTarget::GetCompilePDBName(
   const std::string& config) const
 {
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index c2811b2e84..4623513140 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -132,6 +132,10 @@ public:
       per-source configurations assigned.  */
   std::vector<AllConfigSource> const& GetAllConfigSources() const;
 
+  /** Get all languages used to compile sources in any configuration.
+      This excludes the languages of objects from object libraries.  */
+  std::set<std::string> GetAllConfigCompileLanguages() const;
+
   void GetObjectSources(std::vector<cmSourceFile const*>&,
                         const std::string& config) const;
   const std::string& GetObjectName(cmSourceFile const* file);

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fd2c9fac101ec6d341db5b30e9d1eba64fa23116
commit fd2c9fac101ec6d341db5b30e9d1eba64fa23116
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Oct 2 13:48:37 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Oct 17 14:03:54 2019 -0400

    cmGeneratorTarget: Return non-const sources from GetAllConfigSources
    
    We need a non-const pointer to `cmSourceFile` instances in order to
    call `GetOrDetermineLanguage` on them.

diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 1f824b1163..c2811b2e84 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -123,7 +123,7 @@ public:
 
   struct AllConfigSource
   {
-    cmSourceFile const* Source;
+    cmSourceFile* Source;
     cmGeneratorTarget::SourceKind Kind;
     std::vector<size_t> Configs;
   };
diff --git a/Source/cmLocalVisualStudio7Generator.cxx 
b/Source/cmLocalVisualStudio7Generator.cxx
index ff1eaec935..fd346df685 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1329,7 +1329,7 @@ void 
cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
   // Add CMakeLists.txt file with rule to re-run CMake for user convenience.
   if (target->GetType() != cmStateEnums::GLOBAL_TARGET &&
       target->GetName() != CMAKE_CHECK_BUILD_SYSTEM_TARGET) {
-    if (cmSourceFile const* sf = this->CreateVCProjBuildRule()) {
+    if (cmSourceFile* sf = this->CreateVCProjBuildRule()) {
       cmGeneratorTarget::AllConfigSource acs;
       acs.Source = sf;
       acs.Kind = cmGeneratorTarget::SourceKindCustomCommand;

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

Summary of changes:
 Help/manual/cmake-generator-expressions.7.rst   |  2 +-
 Help/release/dev/vs-per-config-sources.rst      |  5 +++++
 Source/cmGeneratorTarget.cxx                    | 16 ++++++++++++++--
 Source/cmGeneratorTarget.h                      |  6 +++++-
 Source/cmGlobalVisualStudioGenerator.cxx        | 12 +-----------
 Source/cmLocalVisualStudio7Generator.cxx        |  2 +-
 Tests/CMakeLists.txt                            |  8 ++++++--
 Tests/RunCMake/TargetSources/RunCMakeTest.cmake |  2 +-
 8 files changed, 34 insertions(+), 19 deletions(-)
 create mode 100644 Help/release/dev/vs-per-config-sources.rst


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
https://cmake.org/mailman/listinfo/cmake-commits

Reply via email to