Browse Source

cmGeneratorTarget: Move CompileInfoMap from cmTarget.

Stephen Kelly 10 years ago
parent
commit
f83e84028a
4 changed files with 51 additions and 50 deletions
  1. 41 1
      Source/cmGeneratorTarget.cxx
  2. 10 0
      Source/cmGeneratorTarget.h
  3. 0 42
      Source/cmTarget.cxx
  4. 0 7
      Source/cmTarget.h

+ 41 - 1
Source/cmGeneratorTarget.cxx

@@ -1356,6 +1356,46 @@ cmGeneratorTarget::GetMacContentDirectory(const std::string& config,
   return fpath;
   return fpath;
 }
 }
 
 
+
+//----------------------------------------------------------------------------
+cmGeneratorTarget::CompileInfo const* cmGeneratorTarget::GetCompileInfo(
+                                            const std::string& config) const
+{
+  // There is no compile information for imported targets.
+  if(this->IsImported())
+    {
+    return 0;
+    }
+
+  if(this->GetType() > cmTarget::OBJECT_LIBRARY)
+    {
+    std::string msg = "cmTarget::GetCompileInfo called for ";
+    msg += this->GetName();
+    msg += " which has type ";
+    msg += cmTarget::GetTargetTypeName(this->Target->GetType());
+    this->Makefile->IssueMessage(cmake::INTERNAL_ERROR, msg);
+    return 0;
+    }
+
+  // Lookup/compute/cache the compile information for this configuration.
+  std::string config_upper;
+  if(!config.empty())
+    {
+    config_upper = cmSystemTools::UpperCase(config);
+    }
+  CompileInfoMapType::const_iterator i =
+    this->CompileInfoMap.find(config_upper);
+  if(i == this->CompileInfoMap.end())
+    {
+    CompileInfo info;
+    this->Target
+        ->ComputePDBOutputDir("COMPILE_PDB", config, info.CompilePdbDir);
+    CompileInfoMapType::value_type entry(config_upper, info);
+    i = this->CompileInfoMap.insert(entry).first;
+    }
+  return &i->second;
+}
+
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
 std::string
 std::string
 cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const
 cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const
@@ -1827,7 +1867,7 @@ void cmGeneratorTarget::TraceDependencies()
 std::string
 std::string
 cmGeneratorTarget::GetCompilePDBDirectory(const std::string& config) const
 cmGeneratorTarget::GetCompilePDBDirectory(const std::string& config) const
 {
 {
-  if(cmTarget::CompileInfo const* info = this->Target->GetCompileInfo(config))
+  if(CompileInfo const* info = this->GetCompileInfo(config))
     {
     {
     return info->CompilePdbDir;
     return info->CompilePdbDir;
     }
     }

+ 10 - 0
Source/cmGeneratorTarget.h

@@ -230,6 +230,16 @@ public:
   /** Whether this library has soname enabled and platform supports it.  */
   /** Whether this library has soname enabled and platform supports it.  */
   bool HasSOName(const std::string& config) const;
   bool HasSOName(const std::string& config) const;
 
 
+  struct CompileInfo
+  {
+    std::string CompilePdbDir;
+  };
+
+  CompileInfo const* GetCompileInfo(const std::string& config) const;
+
+  typedef std::map<std::string, CompileInfo> CompileInfoMapType;
+  mutable CompileInfoMapType CompileInfoMap;
+
   /** Get the name of the compiler pdb file for the target.  */
   /** Get the name of the compiler pdb file for the target.  */
   std::string GetCompilePDBName(const std::string& config="") const;
   std::string GetCompilePDBName(const std::string& config="") const;
 
 

+ 0 - 42
Source/cmTarget.cxx

@@ -126,9 +126,6 @@ public:
   typedef std::map<std::string, cmTarget::ImportInfo> ImportInfoMapType;
   typedef std::map<std::string, cmTarget::ImportInfo> ImportInfoMapType;
   ImportInfoMapType ImportInfoMap;
   ImportInfoMapType ImportInfoMap;
 
 
-  typedef std::map<std::string, cmTarget::CompileInfo> CompileInfoMapType;
-  CompileInfoMapType CompileInfoMap;
-
   // Cache link implementation computation from each configuration.
   // Cache link implementation computation from each configuration.
   struct OptionalLinkImplementation: public cmTarget::LinkImplementation
   struct OptionalLinkImplementation: public cmTarget::LinkImplementation
   {
   {
@@ -2597,45 +2594,6 @@ cmTarget::OutputInfo const* cmTarget::GetOutputInfo(
   return &i->second;
   return &i->second;
 }
 }
 
 
-//----------------------------------------------------------------------------
-cmTarget::CompileInfo const* cmTarget::GetCompileInfo(
-                                            const std::string& config) const
-{
-  // There is no compile information for imported targets.
-  if(this->IsImported())
-    {
-    return 0;
-    }
-
-  if(this->GetType() > cmTarget::OBJECT_LIBRARY)
-    {
-    std::string msg = "cmTarget::GetCompileInfo called for ";
-    msg += this->GetName();
-    msg += " which has type ";
-    msg += cmTarget::GetTargetTypeName(this->GetType());
-    this->GetMakefile()->IssueMessage(cmake::INTERNAL_ERROR, msg);
-    return 0;
-    }
-
-  // Lookup/compute/cache the compile information for this configuration.
-  std::string config_upper;
-  if(!config.empty())
-    {
-    config_upper = cmSystemTools::UpperCase(config);
-    }
-  typedef cmTargetInternals::CompileInfoMapType CompileInfoMapType;
-  CompileInfoMapType::const_iterator i =
-    this->Internal->CompileInfoMap.find(config_upper);
-  if(i == this->Internal->CompileInfoMap.end())
-    {
-    CompileInfo info;
-    this->ComputePDBOutputDir("COMPILE_PDB", config, info.CompilePdbDir);
-    CompileInfoMapType::value_type entry(config_upper, info);
-    i = this->Internal->CompileInfoMap.insert(entry).first;
-    }
-  return &i->second;
-}
-
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
 std::string cmTarget::GetDirectory(const std::string& config,
 std::string cmTarget::GetDirectory(const std::string& config,
                                    bool implib) const
                                    bool implib) const

+ 0 - 7
Source/cmTarget.h

@@ -626,13 +626,6 @@ private:
   void ComputeImportInfo(std::string const& desired_config,
   void ComputeImportInfo(std::string const& desired_config,
                          ImportInfo& info) const;
                          ImportInfo& info) const;
 
 
-  // Cache target compile paths for each configuration.
-  struct CompileInfo
-  {
-    std::string CompilePdbDir;
-  };
-
-  CompileInfo const* GetCompileInfo(const std::string& config) const;
 
 
   LinkInterface const*
   LinkInterface const*
     GetImportLinkInterface(const std::string& config, cmTarget const* head,
     GetImportLinkInterface(const std::string& config, cmTarget const* head,