From 158d6252cc6b01feea8f795b9007ea028765af7d Mon Sep 17 00:00:00 2001 From: Fred Baksik Date: Mon, 25 Apr 2022 22:03:21 -0400 Subject: 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". --- Source/cmGhsMultiTargetGenerator.cxx | 20 +++++++------------- Source/cmGhsMultiTargetGenerator.h | 3 +-- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx index a7796c9..bf019c3 100644 --- a/Source/cmGhsMultiTargetGenerator.cxx +++ b/Source/cmGhsMultiTargetGenerator.cxx @@ -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() diff --git a/Source/cmGhsMultiTargetGenerator.h b/Source/cmGhsMultiTargetGenerator.h index 9289a72..d3e80e6 100644 --- a/Source/cmGhsMultiTargetGenerator.h +++ b/Source/cmGhsMultiTargetGenerator.h @@ -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; -- cgit v0.12