GHS: Set LANGUAGE type for source files
Use gbuild project syntax for setting the language type for the file. gbuild will pick the correct compiler or tool to use. NOTE: Language names come from gbuild config files. Therefore to compile a file with the C++ compiler use "C++" not "CXX". The previous implementation was passing the C compiler a flag to compile as C++ if LANGUAGE was set to "CXX".pipelines/278874^2
parent
c6ead9be83
commit
158d6252cc
|
@ -634,13 +634,8 @@ void cmGhsMultiTargetGenerator::WriteSources(std::ostream& fout_proj)
|
|||
compile = false;
|
||||
}
|
||||
|
||||
*fout << comment << fname << '\n';
|
||||
*fout << comment << fname << WriteObjectLangOverride(si) << '\n';
|
||||
if (compile) {
|
||||
if ("ld" != si->GetExtension() && "int" != si->GetExtension() &&
|
||||
"bsp" != si->GetExtension()) {
|
||||
WriteObjectLangOverride(*fout, si);
|
||||
}
|
||||
|
||||
this->WriteSourceProperty(*fout, si, "INCLUDE_DIRECTORIES", "-I");
|
||||
this->WriteSourceProperty(*fout, si, "COMPILE_DEFINITIONS", "-D");
|
||||
this->WriteSourceProperty(*fout, si, "COMPILE_OPTIONS", "");
|
||||
|
@ -736,17 +731,16 @@ void cmGhsMultiTargetGenerator::WriteCustomCommandLine(
|
|||
}
|
||||
}
|
||||
|
||||
void cmGhsMultiTargetGenerator::WriteObjectLangOverride(
|
||||
std::ostream& fout, const cmSourceFile* sourceFile)
|
||||
std::string cmGhsMultiTargetGenerator::WriteObjectLangOverride(
|
||||
const cmSourceFile* sourceFile)
|
||||
{
|
||||
std::string ret;
|
||||
cmValue rawLangProp = sourceFile->GetProperty("LANGUAGE");
|
||||
if (rawLangProp) {
|
||||
std::string sourceLangProp(*rawLangProp);
|
||||
std::string const& extension = sourceFile->GetExtension();
|
||||
if ("CXX" == sourceLangProp && ("c" == extension || "C" == extension)) {
|
||||
fout << " -dotciscxx\n";
|
||||
}
|
||||
ret = cmStrCat(" [", *rawLangProp, "]");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool cmGhsMultiTargetGenerator::DetermineIfIntegrityApp()
|
||||
|
|
|
@ -65,8 +65,7 @@ private:
|
|||
void WriteSourceProperty(std::ostream& fout, const cmSourceFile* sf,
|
||||
std::string const& propName,
|
||||
std::string const& propFlag);
|
||||
static void WriteObjectLangOverride(std::ostream& fout,
|
||||
const cmSourceFile* sourceFile);
|
||||
static std::string WriteObjectLangOverride(const cmSourceFile* sourceFile);
|
||||
|
||||
bool DetermineIfIntegrityApp();
|
||||
cmGeneratorTarget* GeneratorTarget;
|
||||
|
|
Loading…
Reference in New Issue