GHS: Use the correct compiler flags for CMAKE_BUILD_TYPE

-- Do not use CMAKE_C_FLAGS_RELEASE flags when CMAKE_BUILD_TYPE is empty
   if CMAKE_BUILD_TYPE was not set the generator would use Release settings
   this does not match the documented behavior of CMAKE_BUILD_TYPE

-- CMAKE_C_FLAGS_<CONFIG> not used when -kernel is present
   Fixes issue where CMAKE_C_FLAGS_<CONFIG> is ignored when -kernel option is present as a compiler option
   When the -kernel option is added to an executable it uses a different set of language flags
   This does not occur -kernel=<type> is used or if it is added as part of a link flag
   The variables CMAKE_<LANG>_GHS_KERNEL_FLAGS_<CONFIG> are removed
   NOTE: By default this only added the flag -ldebug which links in the debugger library.

-- Separate compiler options by newlines
This commit is contained in:
Fred Baksik
2019-01-05 11:01:22 -05:00
parent b2a72ec72d
commit 702121c5f3
10 changed files with 25 additions and 120 deletions

View File

@@ -34,15 +34,16 @@ private:
bool IsTargetGroup() const { return this->TargetGroup; }
void WriteTargetSpecifics(std::ostream& fout, const std::string& config,
bool notKernel);
void WriteTargetSpecifics(std::ostream& fout, const std::string& config);
void WriteCompilerFlags(std::ostream& fout, const std::string& config,
const std::string& language);
void WriteCompilerDefinitions(std::ostream& fout, const std::string& config,
const std::string& language);
void SetCompilerFlags(std::string const& config, const std::string& language,
bool const notKernel);
void SetCompilerFlags(std::string const& config,
const std::string& language);
std::string GetDefines(const std::string& langugae,
std::string const& config);
@@ -65,7 +66,6 @@ private:
cmLocalGhsMultiGenerator const* localGhsMultiGenerator,
cmGeneratorTarget* generatorTarget, cmSourceFile* const sourceFile);
bool IsNotKernel(std::string const& config, const std::string& language);
static bool DetermineIfTargetGroup(const cmGeneratorTarget* target);
bool DetermineIfDynamicDownload(std::string const& config,
const std::string& language);