diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index e60432013..fdeed5bbd 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -2198,3 +2198,19 @@ cmLocalGenerator::GetObjectFileNameWithoutTarget(const cmSourceFile& source) // Convert to a safe name. return this->CreateSafeUniqueObjectFileName(objectName.c_str()); } + +//---------------------------------------------------------------------------- +const char* +cmLocalGenerator +::GetSourceFileLanguage(const cmSourceFile& source) +{ + // Check for an explicitly assigned language. + if(const char* lang = source.GetProperty("LANGUAGE")) + { + return lang; + } + + // Infer the language from the source file extension. + return (this->GlobalGenerator + ->GetLanguageFromExtension(source.GetSourceExtension().c_str())); +} diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h index 49bae5b7b..ec0aafae7 100644 --- a/Source/cmLocalGenerator.h +++ b/Source/cmLocalGenerator.h @@ -172,6 +172,9 @@ public: /** Get the include flags for the current makefile and language. */ void GetIncludeDirectories(std::vector& dirs); + /** Compute the language used to compile the given source file. */ + const char* GetSourceFileLanguage(const cmSourceFile& source); + // Create a struct to hold the varibles passed into // ExpandRuleVariables struct RuleVariables diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 7e0cad78a..dc301deb4 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -1897,19 +1897,3 @@ void cmLocalUnixMakefileGenerator3 } } } - -//---------------------------------------------------------------------------- -const char* -cmLocalUnixMakefileGenerator3 -::GetSourceFileLanguage(const cmSourceFile& source) -{ - const char* lang = source.GetProperty("LANGUAGE"); - if ( lang ) - { - return lang; - } - // Identify the language of the source file. - return (this->GlobalGenerator - ->GetLanguageFromExtension(source.GetSourceExtension().c_str())); -} - diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h index f83f102aa..9a61b30a0 100644 --- a/Source/cmLocalUnixMakefileGenerator3.h +++ b/Source/cmLocalUnixMakefileGenerator3.h @@ -174,12 +174,6 @@ public: // cleanup the name of a potential target std::string ConvertToMakeTarget(const char* tgt); - - const char* GetSourceFileLanguage(const cmSourceFile& source); - - - - /** Called from command-line hook to scan dependencies. */ virtual bool ScanDependencies(const char* tgtInfo);