[Cmake-commits] CMake branch, next, updated. v3.6.0-rc1-105-g1cc2c0d

Brad King brad.king at kitware.com
Tue Jun 7 13:22:10 EDT 2016


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, next has been updated
       via  1cc2c0d0f7d9670de22a72d146aba68fadd4fea4 (commit)
       via  fe0d2241ca04bbb3ddf28a2dc45f3cec60902f1c (commit)
      from  ec9b42e9e29c11f41f13f70ded93debc61eafcb0 (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=1cc2c0d0f7d9670de22a72d146aba68fadd4fea4
commit 1cc2c0d0f7d9670de22a72d146aba68fadd4fea4
Merge: ec9b42e fe0d224
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jun 7 13:22:09 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jun 7 13:22:09 2016 -0400

    Merge topic 'GetTargetFlags-multi-config' into next
    
    fe0d2241 cmLocalGenerator: Pass configuration to GetTargetFlags


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fe0d2241ca04bbb3ddf28a2dc45f3cec60902f1c
commit fe0d2241ca04bbb3ddf28a2dc45f3cec60902f1c
Author:     Tobias Hunger <tobias.hunger at qt.io>
AuthorDate: Tue Jun 7 16:30:58 2016 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jun 7 12:55:54 2016 -0400

    cmLocalGenerator: Pass configuration to GetTargetFlags
    
    Move the configuration lookup to call sites.  This will allow
    multi-configuration callers to use the method.

diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx
index 8565fdb..3d35114 100644
--- a/Source/cmGhsMultiTargetGenerator.cxx
+++ b/Source/cmGhsMultiTargetGenerator.cxx
@@ -371,7 +371,7 @@ void cmGhsMultiTargetGenerator::WriteTargetLinkLibraries(
     bool useWatcomQuote =
       this->Makefile->IsOn(createRule + "_USE_WATCOM_QUOTE");
     this->LocalGenerator->GetTargetFlags(
-      linkLibraries, flags, linkFlags, frameworkPath, linkPath,
+      config, linkLibraries, flags, linkFlags, frameworkPath, linkPath,
       this->GeneratorTarget, useWatcomQuote);
     linkFlags = cmSystemTools::TrimWhitespace(linkFlags);
 
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index b748b9c..e4454ed 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1152,36 +1152,33 @@ void cmLocalGenerator::GetStaticLibraryFlags(std::string& flags,
 }
 
 void cmLocalGenerator::GetTargetFlags(
-  std::string& linkLibs, std::string& flags, std::string& linkFlags,
-  std::string& frameworkPath, std::string& linkPath, cmGeneratorTarget* target,
-  bool useWatcomQuote)
+  const std::string& config, std::string& linkLibs, std::string& flags,
+  std::string& linkFlags, std::string& frameworkPath, std::string& linkPath,
+  cmGeneratorTarget* target, bool useWatcomQuote)
 {
-  std::string buildType =
-    this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
-  buildType = cmSystemTools::UpperCase(buildType);
   const char* libraryLinkVariable =
     "CMAKE_SHARED_LINKER_FLAGS"; // default to shared library
 
   switch (target->GetType()) {
     case cmState::STATIC_LIBRARY:
-      this->GetStaticLibraryFlags(linkFlags, buildType, target);
+      this->GetStaticLibraryFlags(linkFlags, config, target);
       break;
     case cmState::MODULE_LIBRARY:
       libraryLinkVariable = "CMAKE_MODULE_LINKER_FLAGS";
     case cmState::SHARED_LIBRARY: {
       linkFlags = this->Makefile->GetSafeDefinition(libraryLinkVariable);
       linkFlags += " ";
-      if (!buildType.empty()) {
+      if (!config.empty()) {
         std::string build = libraryLinkVariable;
         build += "_";
-        build += buildType;
+        build += config;
         linkFlags += this->Makefile->GetSafeDefinition(build);
         linkFlags += " ";
       }
       if (this->Makefile->IsOn("WIN32") &&
           !(this->Makefile->IsOn("CYGWIN") || this->Makefile->IsOn("MINGW"))) {
         std::vector<cmSourceFile*> sources;
-        target->GetSourceFiles(sources, buildType);
+        target->GetSourceFiles(sources, config);
         for (std::vector<cmSourceFile*>::const_iterator i = sources.begin();
              i != sources.end(); ++i) {
           cmSourceFile* sf = *i;
@@ -1198,9 +1195,9 @@ void cmLocalGenerator::GetTargetFlags(
         linkFlags += targetLinkFlags;
         linkFlags += " ";
       }
-      if (!buildType.empty()) {
+      if (!config.empty()) {
         std::string configLinkFlags = "LINK_FLAGS_";
-        configLinkFlags += buildType;
+        configLinkFlags += config;
         targetLinkFlags = target->GetProperty(configLinkFlags);
         if (targetLinkFlags) {
           linkFlags += targetLinkFlags;
@@ -1213,20 +1210,20 @@ void cmLocalGenerator::GetTargetFlags(
     case cmState::EXECUTABLE: {
       linkFlags += this->Makefile->GetSafeDefinition("CMAKE_EXE_LINKER_FLAGS");
       linkFlags += " ";
-      if (!buildType.empty()) {
+      if (!config.empty()) {
         std::string build = "CMAKE_EXE_LINKER_FLAGS_";
-        build += buildType;
+        build += config;
         linkFlags += this->Makefile->GetSafeDefinition(build);
         linkFlags += " ";
       }
-      std::string linkLanguage = target->GetLinkerLanguage(buildType);
+      std::string linkLanguage = target->GetLinkerLanguage(config);
       if (linkLanguage.empty()) {
         cmSystemTools::Error(
           "CMake can not determine linker language for target: ",
           target->GetName().c_str());
         return;
       }
-      this->AddLanguageFlags(flags, linkLanguage, buildType);
+      this->AddLanguageFlags(flags, linkLanguage, config);
       this->OutputLinkLibraries(linkLibs, frameworkPath, linkPath, *target,
                                 false, false, useWatcomQuote);
       if (cmSystemTools::IsOn(
@@ -1258,9 +1255,9 @@ void cmLocalGenerator::GetTargetFlags(
         linkFlags += targetLinkFlags;
         linkFlags += " ";
       }
-      if (!buildType.empty()) {
+      if (!config.empty()) {
         std::string configLinkFlags = "LINK_FLAGS_";
-        configLinkFlags += buildType;
+        configLinkFlags += config;
         targetLinkFlags = target->GetProperty(configLinkFlags);
         if (targetLinkFlags) {
           linkFlags += targetLinkFlags;
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 5c603a6..5ced648 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -308,10 +308,10 @@ public:
 
   /** Fill out these strings for the given target.  Libraries to link,
    *  flags, and linkflags. */
-  void GetTargetFlags(std::string& linkLibs, std::string& flags,
-                      std::string& linkFlags, std::string& frameworkPath,
-                      std::string& linkPath, cmGeneratorTarget* target,
-                      bool useWatcomQuote);
+  void GetTargetFlags(const std::string& config, std::string& linkLibs,
+                      std::string& flags, std::string& linkFlags,
+                      std::string& frameworkPath, std::string& linkPath,
+                      cmGeneratorTarget* target, bool useWatcomQuote);
 
   virtual void ComputeObjectFilenames(
     std::map<cmSourceFile const*, std::string>& mapping,
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index 3e91545..60eb904 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -434,9 +434,9 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
   vars["TARGET_FILE"] =
     localGen.ConvertToOutputFormat(targetOutputReal, cmOutputConverter::SHELL);
 
-  localGen.GetTargetFlags(vars["LINK_LIBRARIES"], vars["FLAGS"],
-                          vars["LINK_FLAGS"], frameworkPath, linkPath,
-                          &genTarget, useWatcomQuote);
+  localGen.GetTargetFlags(this->GetConfigName(), vars["LINK_LIBRARIES"],
+                          vars["FLAGS"], vars["LINK_FLAGS"], frameworkPath,
+                          linkPath, &genTarget, useWatcomQuote);
   if (this->GetMakefile()->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS") &&
       gt.GetType() == cmState::SHARED_LIBRARY) {
     if (gt.GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS")) {
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 89ea955..f35939b 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -482,6 +482,9 @@ bool cmake::FindPackage(const std::vector<std::string>& args)
       mf->AddLinkLibraryForTarget(targetName, *libIt, GENERAL_LibraryType);
     }
 
+    std::string buildType = mf->GetSafeDefinition("CMAKE_BUILD_TYPE");
+    buildType = cmSystemTools::UpperCase(buildType);
+
     std::string linkLibs;
     std::string frameworkPath;
     std::string linkPath;
@@ -490,8 +493,8 @@ bool cmake::FindPackage(const std::vector<std::string>& args)
     gg->CreateGenerationObjects();
     cmGeneratorTarget* gtgt = gg->FindGeneratorTarget(tgt->GetName());
     cmLocalGenerator* lg = gtgt->GetLocalGenerator();
-    lg->GetTargetFlags(linkLibs, frameworkPath, linkPath, flags, linkFlags,
-                       gtgt, false);
+    lg->GetTargetFlags(buildType, linkLibs, frameworkPath, linkPath, flags,
+                       linkFlags, gtgt, false);
     linkLibs = frameworkPath + linkPath + linkLibs;
 
     printf("%s\n", linkLibs.c_str());

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

Summary of changes:
 Source/cmGhsMultiTargetGenerator.cxx    |    2 +-
 Source/cmLocalGenerator.cxx             |   33 ++++++++++++++-----------------
 Source/cmLocalGenerator.h               |    8 ++++----
 Source/cmNinjaNormalTargetGenerator.cxx |    6 +++---
 Source/cmake.cxx                        |    7 +++++--
 5 files changed, 28 insertions(+), 28 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list