From 3305364f831023dcc6ab670c087f36d0688b99d1 Mon Sep 17 00:00:00 2001
From: Stephen Kelly <steveire@gmail.com>
Date: Thu, 7 Nov 2013 14:09:04 +0100
Subject: cmGlobalGenerator: Rename the FinalizeCompileDefinitions method.

This will soon also finalize include directories.
---
 Source/cmGlobalGenerator.cxx | 4 ++--
 Source/cmGlobalGenerator.h   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 71dd897..1cd158c 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1059,7 +1059,7 @@ void cmGlobalGenerator::Generate()
     return;
     }
 
-  this->FinalizeTargetCompileDefinitions();
+  this->FinalizeTargetCompileInfo();
 
 #ifdef CMAKE_BUILD_WITH_CMAKE
   // Iterate through all targets and set up automoc for those which have
@@ -1270,7 +1270,7 @@ void cmGlobalGenerator::CreateQtAutoGeneratorsTargets(AutogensType &autogens)
 }
 
 //----------------------------------------------------------------------------
-void cmGlobalGenerator::FinalizeTargetCompileDefinitions()
+void cmGlobalGenerator::FinalizeTargetCompileInfo()
 {
   // Construct per-target generator information.
   for(unsigned int i=0; i < this->LocalGenerators.size(); ++i)
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 1b8daa9..8a753b7 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -397,7 +397,7 @@ private:
 
   void WriteSummary();
   void WriteSummary(cmTarget* target);
-  void FinalizeTargetCompileDefinitions();
+  void FinalizeTargetCompileInfo();
 
   virtual void PrintCompilerAdvice(std::ostream& os, std::string lang,
                                    const char* envVar);
-- 
cgit v0.12


From 19a8a3c4c8105c85527da8651729f6300c054d74 Mon Sep 17 00:00:00 2001
From: Stephen Kelly <steveire@gmail.com>
Date: Thu, 7 Nov 2013 14:10:11 +0100
Subject: cmTarget: Don't finalize include directories in
 GetIncludeDirectories.

Rely on that having been done by the cmGlobalGenerator.
---
 Source/cmGlobalGenerator.cxx | 7 ++-----
 Source/cmTarget.cxx          | 2 --
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 1cd158c..9c9df99 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1084,11 +1084,6 @@ void cmGlobalGenerator::Generate()
       (*targets)[tit->first] = tit->second;
       (*targets)[tit->first].SetMakefile(mf);
       }
-
-    for ( tit = targets->begin(); tit != targets->end(); ++ tit )
-      {
-      tit->second.AppendBuildInterfaceIncludes();
-      }
     }
 
   // Add generator specific helper commands
@@ -1289,6 +1284,8 @@ void cmGlobalGenerator::FinalizeTargetCompileInfo()
       {
       cmTarget* t = &ti->second;
 
+      t->AppendBuildInterfaceIncludes();
+
       for (std::vector<cmValueWithOrigin>::const_iterator it
                                       = noconfig_compile_definitions.begin();
           it != noconfig_compile_definitions.end(); ++it)
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index d0390f7..9162d17 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1777,8 +1777,6 @@ std::vector<std::string> cmTarget::GetIncludeDirectories(const char *config)
                                              this->GetName(),
                                              "INCLUDE_DIRECTORIES", 0, 0);
 
-  this->AppendBuildInterfaceIncludes();
-
   std::vector<std::string> debugProperties;
   const char *debugProp =
               this->Makefile->GetDefinition("CMAKE_DEBUG_TARGET_PROPERTIES");
-- 
cgit v0.12


From dcac9be6aa33601db1b32f4efd9f724a97f8844b Mon Sep 17 00:00:00 2001
From: Stephen Kelly <steveire@gmail.com>
Date: Wed, 6 Nov 2013 12:33:17 +0100
Subject: Make accessors for compile-related information const.

These can be moved to cmGeneratorTarget in CMake 4.0.
---
 Source/cmTarget.cxx | 27 ++++++++++++++-------------
 Source/cmTarget.h   | 12 ++++++------
 2 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 9162d17..dc65297 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -138,16 +138,16 @@ public:
   std::vector<TargetPropertyEntry*> CompileDefinitionsEntries;
   std::vector<cmValueWithOrigin> LinkInterfacePropertyEntries;
 
-  std::map<std::string, std::vector<TargetPropertyEntry*> >
+  mutable std::map<std::string, std::vector<TargetPropertyEntry*> >
                                 CachedLinkInterfaceIncludeDirectoriesEntries;
-  std::map<std::string, std::vector<TargetPropertyEntry*> >
+  mutable std::map<std::string, std::vector<TargetPropertyEntry*> >
                                 CachedLinkInterfaceCompileOptionsEntries;
-  std::map<std::string, std::vector<TargetPropertyEntry*> >
+  mutable std::map<std::string, std::vector<TargetPropertyEntry*> >
                                 CachedLinkInterfaceCompileDefinitionsEntries;
 
-  std::map<std::string, bool> CacheLinkInterfaceIncludeDirectoriesDone;
-  std::map<std::string, bool> CacheLinkInterfaceCompileDefinitionsDone;
-  std::map<std::string, bool> CacheLinkInterfaceCompileOptionsDone;
+  mutable std::map<std::string, bool> CacheLinkInterfaceIncludeDirectoriesDone;
+  mutable std::map<std::string, bool> CacheLinkInterfaceCompileDefinitionsDone;
+  mutable std::map<std::string, bool> CacheLinkInterfaceCompileOptionsDone;
 };
 
 //----------------------------------------------------------------------------
@@ -1598,7 +1598,7 @@ void cmTarget::InsertCompileDefinition(const cmValueWithOrigin &entry,
 }
 
 //----------------------------------------------------------------------------
-static void processIncludeDirectories(cmTarget *tgt,
+static void processIncludeDirectories(cmTarget const* tgt,
       const std::vector<cmTargetInternals::TargetPropertyEntry*> &entries,
       std::vector<std::string> &includes,
       std::set<std::string> &uniqueIncludes,
@@ -1767,7 +1767,8 @@ static void processIncludeDirectories(cmTarget *tgt,
 }
 
 //----------------------------------------------------------------------------
-std::vector<std::string> cmTarget::GetIncludeDirectories(const char *config)
+std::vector<std::string>
+cmTarget::GetIncludeDirectories(const char *config) const
 {
   std::vector<std::string> includes;
   std::set<std::string> uniqueIncludes;
@@ -1899,7 +1900,7 @@ std::vector<std::string> cmTarget::GetIncludeDirectories(const char *config)
 }
 
 //----------------------------------------------------------------------------
-static void processCompileOptionsInternal(cmTarget *tgt,
+static void processCompileOptionsInternal(cmTarget const* tgt,
       const std::vector<cmTargetInternals::TargetPropertyEntry*> &entries,
       std::vector<std::string> &options,
       std::set<std::string> &uniqueOptions,
@@ -1958,7 +1959,7 @@ static void processCompileOptionsInternal(cmTarget *tgt,
 }
 
 //----------------------------------------------------------------------------
-static void processCompileOptions(cmTarget *tgt,
+static void processCompileOptions(cmTarget const* tgt,
       const std::vector<cmTargetInternals::TargetPropertyEntry*> &entries,
       std::vector<std::string> &options,
       std::set<std::string> &uniqueOptions,
@@ -1971,7 +1972,7 @@ static void processCompileOptions(cmTarget *tgt,
 
 //----------------------------------------------------------------------------
 void cmTarget::GetCompileOptions(std::vector<std::string> &result,
-                                 const char *config)
+                                 const char *config) const
 {
   std::set<std::string> uniqueOptions;
   cmListFileBacktrace lfbt;
@@ -2070,7 +2071,7 @@ void cmTarget::GetCompileOptions(std::vector<std::string> &result,
 }
 
 //----------------------------------------------------------------------------
-static void processCompileDefinitions(cmTarget *tgt,
+static void processCompileDefinitions(cmTarget const* tgt,
       const std::vector<cmTargetInternals::TargetPropertyEntry*> &entries,
       std::vector<std::string> &options,
       std::set<std::string> &uniqueOptions,
@@ -2084,7 +2085,7 @@ static void processCompileDefinitions(cmTarget *tgt,
 
 //----------------------------------------------------------------------------
 void cmTarget::GetCompileDefinitions(std::vector<std::string> &list,
-                                            const char *config)
+                                            const char *config) const
 {
   std::set<std::string> uniqueOptions;
   cmListFileBacktrace lfbt;
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index fbb4914..b516a0a 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -445,7 +445,7 @@ public:
   const char* GetExportMacro();
 
   void GetCompileDefinitions(std::vector<std::string> &result,
-                             const char *config);
+                             const char *config) const;
 
   // Compute the set of languages compiled by the target.  This is
   // computed every time it is called because the languages can change
@@ -512,7 +512,7 @@ public:
   std::string GetAppBundleDirectory(const char* config,
                                     bool contentOnly) const;
 
-  std::vector<std::string> GetIncludeDirectories(const char *config);
+  std::vector<std::string> GetIncludeDirectories(const char *config) const;
   void InsertInclude(const cmValueWithOrigin &entry,
                      bool before = false);
   void InsertCompileOption(const cmValueWithOrigin &entry,
@@ -523,7 +523,7 @@ public:
   void AppendBuildInterfaceIncludes();
 
   void GetCompileOptions(std::vector<std::string> &result,
-                         const char *config);
+                         const char *config) const;
 
   bool IsNullImpliedByLinkLibraries(const std::string &p) const;
   bool IsLinkInterfaceDependentBoolProperty(const std::string &p,
@@ -679,9 +679,9 @@ private:
   bool DLLPlatform;
   bool IsApple;
   bool IsImportedTarget;
-  bool DebugIncludesDone;
-  bool DebugCompileOptionsDone;
-  bool DebugCompileDefinitionsDone;
+  mutable bool DebugIncludesDone;
+  mutable bool DebugCompileOptionsDone;
+  mutable bool DebugCompileDefinitionsDone;
   mutable std::set<std::string> LinkImplicitNullProperties;
   bool BuildInterfaceIncludesAppended;
 
-- 
cgit v0.12