diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index b9d88a422..583459a60 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -364,19 +364,24 @@ cmGlobalXCodeGenerator::CreateXCodeSourceFile(cmLocalGenerator* lg, const char* lang = this->GetLanguageFromExtension(sf->GetSourceExtension().c_str()); std::string sourcecode = "sourcecode"; - if(sf->GetSourceExtension() == "o") + std::string ext = sf->GetSourceExtension(); + ext = cmSystemTools::LowerCase(ext); + if(ext == "o") { sourcecode = "compiled.mach-o.objfile"; } - else if(sf->GetSourceExtension() == "mm") + else if(ext == "mm") { sourcecode += ".cpp.objcpp"; } + else if(ext == "m") + { + sourcecode += ".cpp.objc"; + } else if(!lang) { - std::string ext = "."; - ext = sf->GetSourceExtension(); sourcecode += ext; + sourcecode += "."; sourcecode += ext; } else if(strcmp(lang, "C") == 0)