From aef8fe509bc69a83fa85fb210b967c9eebf07822 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 8 Jul 2009 08:31:30 -0400 Subject: [PATCH] COMP: Pimplize cmTarget ImportInfo and OutputInfo These member structures are accessed only in the cmTarget implementation so they do not need to be defined in the header. This cleanup also aids Visual Studio 6 in compiling them. --- Source/cmTarget.cxx | 41 +++++++++++++++++++++++++++++++++-------- Source/cmTarget.h | 19 ++----------------- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index ae0fa87fc..50a6ea9c4 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -35,6 +35,23 @@ const char* cmTarget::TargetTypeNames[] = { "UNKNOWN_LIBRARY" }; +//---------------------------------------------------------------------------- +struct cmTarget::OutputInfo +{ + std::string OutDir; + std::string ImpDir; +}; + +//---------------------------------------------------------------------------- +struct cmTarget::ImportInfo +{ + bool NoSOName; + std::string Location; + std::string SOName; + std::string ImportLibrary; + cmTarget::LinkInterface LinkInterface; +}; + //---------------------------------------------------------------------------- class cmTargetInternals { @@ -58,6 +75,12 @@ public: }; typedef std::map LinkInterfaceMapType; LinkInterfaceMapType LinkInterfaceMap; + + typedef std::map OutputInfoMapType; + OutputInfoMapType OutputInfoMap; + + typedef std::map ImportInfoMapType; + ImportInfoMapType ImportInfoMap; }; //---------------------------------------------------------------------------- @@ -1855,7 +1878,7 @@ void cmTarget::SetProperty(const char* prop, const char* value) // information. if(this->IsImported() && strncmp(prop, "IMPORTED", 8) == 0) { - this->ImportInfoMap.clear(); + this->Internal->ImportInfoMap.clear(); } } @@ -1872,7 +1895,7 @@ void cmTarget::AppendProperty(const char* prop, const char* value) // information. if(this->IsImported() && strncmp(prop, "IMPORTED", 8) == 0) { - this->ImportInfoMap.clear(); + this->Internal->ImportInfoMap.clear(); } } @@ -1974,15 +1997,16 @@ cmTarget::OutputInfo const* cmTarget::GetOutputInfo(const char* config) { config_upper = cmSystemTools::UpperCase(config); } + typedef cmTargetInternals::OutputInfoMapType OutputInfoMapType; OutputInfoMapType::const_iterator i = - this->OutputInfoMap.find(config_upper); - if(i == this->OutputInfoMap.end()) + this->Internal->OutputInfoMap.find(config_upper); + if(i == this->Internal->OutputInfoMap.end()) { OutputInfo info; this->ComputeOutputDir(config, false, info.OutDir); this->ComputeOutputDir(config, true, info.ImpDir); OutputInfoMapType::value_type entry(config_upper, info); - i = this->OutputInfoMap.insert(entry).first; + i = this->Internal->OutputInfoMap.insert(entry).first; } return &i->second; } @@ -3416,14 +3440,15 @@ cmTarget::GetImportInfo(const char* config) { config_upper = "NOCONFIG"; } + typedef cmTargetInternals::ImportInfoMapType ImportInfoMapType; ImportInfoMapType::const_iterator i = - this->ImportInfoMap.find(config_upper); - if(i == this->ImportInfoMap.end()) + this->Internal->ImportInfoMap.find(config_upper); + if(i == this->Internal->ImportInfoMap.end()) { ImportInfo info; this->ComputeImportInfo(config_upper, info); ImportInfoMapType::value_type entry(config_upper, info); - i = this->ImportInfoMap.insert(entry).first; + i = this->Internal->ImportInfoMap.insert(entry).first; } // If the location is empty then the target is not available for diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 8b857e07f..ad7e6110d 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -507,27 +507,12 @@ private: bool IsImportedTarget; // Cache target output paths for each configuration. - struct OutputInfo - { - std::string OutDir; - std::string ImpDir; - }; - typedef std::map OutputInfoMapType; - OutputInfoMapType OutputInfoMap; + struct OutputInfo; OutputInfo const* GetOutputInfo(const char* config); void ComputeOutputDir(const char* config, bool implib, std::string& out); // Cache import information from properties for each configuration. - struct ImportInfo - { - bool NoSOName; - std::string Location; - std::string SOName; - std::string ImportLibrary; - cmTarget::LinkInterface LinkInterface; - }; - typedef std::map ImportInfoMapType; - ImportInfoMapType ImportInfoMap; + struct ImportInfo; ImportInfo const* GetImportInfo(const char* config); void ComputeImportInfo(std::string const& desired_config, ImportInfo& info);