diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx index c7213a66c..16e226608 100644 --- a/Source/cmMakefileExecutableTargetGenerator.cxx +++ b/Source/cmMakefileExecutableTargetGenerator.cxx @@ -231,9 +231,8 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) (linkFlags, this->Makefile->GetDefinition(export_flag_var.c_str())); } - // Add language-specific flags. - this->LocalGenerator - ->AddLanguageFlags(flags, linkLanguage, this->ConfigName); + // Add language feature flags. + this->AddFeatureFlags(flags, linkLanguage); // Add target-specific linker flags. this->LocalGenerator->AppendFlags diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 9162b4c52..24b037f8e 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -671,9 +671,11 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules vars.TargetInstallNameDir = install_name_dir.c_str(); } } + + // Add language feature flags. std::string langFlags; - this->LocalGenerator - ->AddLanguageFlags(langFlags, linkLanguage, this->ConfigName); + this->AddFeatureFlags(langFlags, linkLanguage); + // 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 edfae8720..719aa5025 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -291,10 +291,8 @@ void cmMakefileTargetGenerator::WriteTargetLanguageFlags() this->LocalGenerator->AppendDefines (defines, this->Target->GetProperty(defPropName.c_str()), lang); - // Add language-specific flags. - this->LocalGenerator - ->AddLanguageFlags(flags, lang, - this->LocalGenerator->ConfigurationName.c_str()); + // Add language feature flags. + this->AddFeatureFlags(flags, lang); // Fortran-specific flags computed for this target. if(*l == "Fortran") @@ -1762,3 +1760,12 @@ void cmMakefileTargetGenerator::AddModuleDefinitionFlag(std::string& flags) this->ModuleDefinitionFile.c_str())); this->LocalGenerator->AppendFlags(flags, flag.c_str()); } + +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::AddFeatureFlags( + std::string& flags, const char* lang + ) +{ + // Add language-specific flags. + this->LocalGenerator->AddLanguageFlags(flags, lang, this->ConfigName); +} diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h index 6878e0643..d72bdcec8 100644 --- a/Source/cmMakefileTargetGenerator.h +++ b/Source/cmMakefileTargetGenerator.h @@ -220,6 +220,9 @@ protected: // Helper to add flag for windows .def file. void AddModuleDefinitionFlag(std::string& flags); + // Add language feature flags. + void AddFeatureFlags(std::string& flags, const char* lang); + //================================================================== // Convenience routines that do nothing more than forward to // implementaitons