summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-07-03 12:41:10 (GMT)
committerBrad King <brad.king@kitware.com>2009-07-03 12:41:10 (GMT)
commit11d1063452178b00ac66304da337c1cb56dfa469 (patch)
treeea97e52e9bba286f733b26455ca2b457c678931b /Source
parent789eaf157c1587e4eff9c2627c50e537fc56ba71 (diff)
downloadCMake-11d1063452178b00ac66304da337c1cb56dfa469.zip
CMake-11d1063452178b00ac66304da337c1cb56dfa469.tar.gz
CMake-11d1063452178b00ac66304da337c1cb56dfa469.tar.bz2
ENH: Create cmMakefileTargetGenerator::ConfigName
This member stores the build configuration for which Makefiles are being generated. It saves repeated lookup of the equivalent member from cmLocalUnixMakefileGenerator3, making code shorter and more readable.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMakefileExecutableTargetGenerator.cxx12
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx30
-rw-r--r--Source/cmMakefileTargetGenerator.cxx4
-rw-r--r--Source/cmMakefileTargetGenerator.h1
4 files changed, 19 insertions, 28 deletions
diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx
index 332c116..d64bc36 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -32,7 +32,7 @@ cmMakefileExecutableTargetGenerator
this->CustomCommandDriver = OnDepends;
this->Target->GetExecutableNames(
this->TargetNameOut, this->TargetNameReal, this->TargetNameImport,
- this->TargetNamePDB, this->LocalGenerator->ConfigurationName.c_str());
+ this->TargetNamePDB, this->ConfigName);
if(this->Target->IsAppBundleOnApple())
{
@@ -123,7 +123,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
std::string targetNamePDB;
this->Target->GetExecutableNames
(targetName, targetNameReal, targetNameImport, targetNamePDB,
- this->LocalGenerator->ConfigurationName.c_str());
+ this->ConfigName);
// Construct the full path version of the names.
std::string outpath = this->Target->GetDirectory();
@@ -212,7 +212,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
// Add flags to create an executable.
this->LocalGenerator->
AddConfigVariableFlags(linkFlags, "CMAKE_EXE_LINKER_FLAGS",
- this->LocalGenerator->ConfigurationName.c_str());
+ this->ConfigName);
if(this->Target->GetPropertyAsBool("WIN32_EXECUTABLE"))
@@ -238,15 +238,13 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
// Add language-specific flags.
this->LocalGenerator
- ->AddLanguageFlags(flags, linkLanguage,
- this->LocalGenerator->ConfigurationName.c_str());
+ ->AddLanguageFlags(flags, linkLanguage, this->ConfigName);
// Add target-specific linker flags.
this->LocalGenerator->AppendFlags
(linkFlags, this->Target->GetProperty("LINK_FLAGS"));
std::string linkFlagsConfig = "LINK_FLAGS_";
- linkFlagsConfig +=
- cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str());
+ linkFlagsConfig += cmSystemTools::UpperCase(this->ConfigName);
this->LocalGenerator->AppendFlags
(linkFlags, this->Target->GetProperty(linkFlagsConfig.c_str()));
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index ec9789f..ca47e33 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -34,8 +34,7 @@ cmMakefileLibraryTargetGenerator
this->CustomCommandDriver = OnDepends;
this->Target->GetLibraryNames(
this->TargetNameOut, this->TargetNameSO, this->TargetNameReal,
- this->TargetNameImport, this->TargetNamePDB,
- this->LocalGenerator->ConfigurationName.c_str());
+ this->TargetNameImport, this->TargetNamePDB, this->ConfigName);
if(this->Target->IsFrameworkOnApple())
{
@@ -146,14 +145,12 @@ void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink)
this->LocalGenerator->AppendFlags
(extraFlags, this->Target->GetProperty("LINK_FLAGS"));
std::string linkFlagsConfig = "LINK_FLAGS_";
- linkFlagsConfig +=
- cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str());
+ linkFlagsConfig += cmSystemTools::UpperCase(this->ConfigName);
this->LocalGenerator->AppendFlags
(extraFlags, this->Target->GetProperty(linkFlagsConfig.c_str()));
this->LocalGenerator->AddConfigVariableFlags
- (extraFlags, "CMAKE_SHARED_LINKER_FLAGS",
- this->LocalGenerator->ConfigurationName.c_str());
+ (extraFlags, "CMAKE_SHARED_LINKER_FLAGS", this->ConfigName);
if(this->Makefile->IsOn("WIN32") && !(this->Makefile->IsOn("CYGWIN")
|| this->Makefile->IsOn("MINGW")))
{
@@ -194,13 +191,11 @@ void cmMakefileLibraryTargetGenerator::WriteModuleLibraryRules(bool relink)
this->LocalGenerator->AppendFlags(extraFlags,
this->Target->GetProperty("LINK_FLAGS"));
std::string linkFlagsConfig = "LINK_FLAGS_";
- linkFlagsConfig +=
- cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str());
+ linkFlagsConfig += cmSystemTools::UpperCase(this->ConfigName);
this->LocalGenerator->AppendFlags
(extraFlags, this->Target->GetProperty(linkFlagsConfig.c_str()));
this->LocalGenerator->AddConfigVariableFlags
- (extraFlags, "CMAKE_MODULE_LINKER_FLAGS",
- this->LocalGenerator->ConfigurationName.c_str());
+ (extraFlags, "CMAKE_MODULE_LINKER_FLAGS", this->ConfigName);
// TODO: .def files should be supported here also.
this->WriteLibraryRules(linkRuleVar.c_str(), extraFlags.c_str(), relink);
@@ -222,13 +217,11 @@ void cmMakefileLibraryTargetGenerator::WriteFrameworkRules(bool relink)
this->LocalGenerator->AppendFlags(extraFlags,
this->Target->GetProperty("LINK_FLAGS"));
std::string linkFlagsConfig = "LINK_FLAGS_";
- linkFlagsConfig +=
- cmSystemTools::UpperCase(this->LocalGenerator->ConfigurationName.c_str());
+ linkFlagsConfig += cmSystemTools::UpperCase(this->ConfigName);
this->LocalGenerator->AppendFlags
(extraFlags, this->Target->GetProperty(linkFlagsConfig.c_str()));
this->LocalGenerator->AddConfigVariableFlags
- (extraFlags, "CMAKE_MACOSX_FRAMEWORK_LINKER_FLAGS",
- this->LocalGenerator->ConfigurationName.c_str());
+ (extraFlags, "CMAKE_MACOSX_FRAMEWORK_LINKER_FLAGS", this->ConfigName);
// TODO: .def files should be supported here also.
this->WriteLibraryRules(linkRuleVar.c_str(), extraFlags.c_str(), relink);
@@ -389,7 +382,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
std::string targetNamePDB;
this->Target->GetLibraryNames(
targetName, targetNameSO, targetNameReal, targetNameImport, targetNamePDB,
- this->LocalGenerator->ConfigurationName.c_str());
+ this->ConfigName);
// Construct the full path version of the names.
std::string outpath;
@@ -685,8 +678,8 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
if(this->Target->GetType() == cmTarget::SHARED_LIBRARY)
{
// Get the install_name directory for the build tree.
- const char* config = this->LocalGenerator->ConfigurationName.c_str();
- install_name_dir = this->Target->GetInstallNameDirForBuildTree(config);
+ install_name_dir =
+ this->Target->GetInstallNameDirForBuildTree(this->ConfigName);
// Set the rule variable replacement value.
if(install_name_dir.empty())
@@ -705,8 +698,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
}
std::string langFlags;
this->LocalGenerator
- ->AddLanguageFlags(langFlags, linkLanguage,
- this->LocalGenerator->ConfigurationName.c_str());
+ ->AddLanguageFlags(langFlags, linkLanguage, this->ConfigName);
// remove any language flags that might not work with the
// particular os
if(forbiddenFlagVar)
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index f38874d..81fa4a1 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -43,6 +43,7 @@ cmMakefileTargetGenerator::cmMakefileTargetGenerator(cmTarget* target)
this->LocalGenerator =
static_cast<cmLocalUnixMakefileGenerator3*>(
this->Makefile->GetLocalGenerator());
+ this->ConfigName = this->LocalGenerator->ConfigurationName.c_str();
this->GlobalGenerator =
static_cast<cmGlobalUnixMakefileGenerator3*>(
this->LocalGenerator->GetGlobalGenerator());
@@ -602,7 +603,6 @@ cmMakefileTargetGenerator
std::string targetOutPathPDB;
{
std::string targetFullPathPDB;
- const char* configName = this->LocalGenerator->ConfigurationName.c_str();
if(this->Target->GetType() == cmTarget::EXECUTABLE ||
this->Target->GetType() == cmTarget::STATIC_LIBRARY ||
this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
@@ -610,7 +610,7 @@ cmMakefileTargetGenerator
{
targetFullPathPDB = this->Target->GetDirectory();
targetFullPathPDB += "/";
- targetFullPathPDB += this->Target->GetPDBName(configName);
+ targetFullPathPDB += this->Target->GetPDBName(this->ConfigName);
}
targetOutPathPDB =
this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::FULL,
diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h
index 815dc8d..568c1c9 100644
--- a/Source/cmMakefileTargetGenerator.h
+++ b/Source/cmMakefileTargetGenerator.h
@@ -155,6 +155,7 @@ protected:
cmLocalUnixMakefileGenerator3 *LocalGenerator;
cmGlobalUnixMakefileGenerator3 *GlobalGenerator;
cmMakefile *Makefile;
+ const char *ConfigName;
enum CustomCommandDriveType { OnBuild, OnDepends, OnUtility };
CustomCommandDriveType CustomCommandDriver;