Browse Source

Centralize language flag addition for Makefiles

We create cmMakefileTargetGenerator::AddFeatureFlags to consolidate
addition of language flags.  Currently it just adds the flags from
generic per-language flag variables (AddLanguageFlags).
Brad King 16 years ago
parent
commit
57df2abca8

+ 2 - 3
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

+ 4 - 2
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)

+ 11 - 4
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);
+}

+ 3 - 0
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