summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGhsMultiGenerator.cxx
diff options
context:
space:
mode:
authorFred Baksik <fdk17@ftml.net>2021-11-15 18:15:12 (GMT)
committerFred Baksik <fdk17@ftml.net>2021-11-15 18:15:12 (GMT)
commitaa59eaac4faf04f1c195be4463795a7953de7fde (patch)
tree120c268bf49fb59908485e67f36981423693f95a /Source/cmGlobalGhsMultiGenerator.cxx
parentab6f0b51b110dabfeed231f9c5ed9e816f480335 (diff)
downloadCMake-aa59eaac4faf04f1c195be4463795a7953de7fde.zip
CMake-aa59eaac4faf04f1c195be4463795a7953de7fde.tar.gz
CMake-aa59eaac4faf04f1c195be4463795a7953de7fde.tar.bz2
GHS: Allow setting GHS variables from toolchain file
* Update generator to use the current variable definition, not the CACHE definition. * Avoid overwriting toolchain variables and avoid developer warnings when setting up the GHS variables. -- A cache entry is only required when: a) The toolchain uses set( CACHE ) to set the variable b) A -D or preset value was used to set the variable The cache entry is required so that the TYPE gets set properly. -- Avoid the Policy CMP0126 warnings: setting cache variable when normal variable exists * Move GHS_PRIMARY_TARGET back into area so non-GHS generator toolchain file can trigger the OS search.
Diffstat (limited to 'Source/cmGlobalGhsMultiGenerator.cxx')
-rw-r--r--Source/cmGlobalGhsMultiGenerator.cxx29
1 files changed, 10 insertions, 19 deletions
diff --git a/Source/cmGlobalGhsMultiGenerator.cxx b/Source/cmGlobalGhsMultiGenerator.cxx
index a237689..bf537b7 100644
--- a/Source/cmGlobalGhsMultiGenerator.cxx
+++ b/Source/cmGlobalGhsMultiGenerator.cxx
@@ -113,24 +113,18 @@ bool cmGlobalGhsMultiGenerator::SetGeneratorPlatform(std::string const& p,
cmMakefile* mf)
{
/* set primary target */
- cmValue t =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_PRIMARY_TARGET");
- if (!cmIsOff(t)) {
- this->GetCMakeInstance()->MarkCliAsUsed("GHS_PRIMARY_TARGET");
- } else {
+ cmValue t = mf->GetDefinition("GHS_PRIMARY_TARGET");
+ if (cmIsOff(t)) {
/* Use the value from `-A` or use `arm` */
std::string arch = "arm";
if (!cmIsOff(p)) {
arch = p;
}
- cmValue platform =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_TARGET_PLATFORM");
+ cmValue platform = mf->GetDefinition("GHS_TARGET_PLATFORM");
std::string tgt = cmStrCat(arch, '_', platform, ".tgt");
/* update the primary target name*/
- mf->AddCacheDefinition("GHS_PRIMARY_TARGET", tgt,
- "Generator selected GHS MULTI primaryTarget.",
- cmStateEnums::STRING, true);
+ mf->AddDefinition("GHS_PRIMARY_TARGET", tgt);
}
return true;
}
@@ -292,18 +286,17 @@ void cmGlobalGhsMultiGenerator::WriteTopLevelProject(std::ostream& fout,
// Specify BSP option if supplied by user
// -- not all platforms require this entry in the project file
- cmValue bspName =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_BSP_NAME");
+ cmValue bspName = root->GetMakefile()->GetDefinition("GHS_BSP_NAME");
if (!cmIsOff(bspName)) {
fout << " -bsp " << *bspName << '\n';
}
// Specify OS DIR if supplied by user
// -- not all platforms require this entry in the project file
- cmValue osDir = this->GetCMakeInstance()->GetCacheDefinition("GHS_OS_DIR");
+ cmValue osDir = root->GetMakefile()->GetDefinition("GHS_OS_DIR");
if (!cmIsOff(osDir)) {
cmValue osDirOption =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_OS_DIR_OPTION");
+ root->GetMakefile()->GetDefinition("GHS_OS_DIR_OPTION");
fout << " ";
if (cmIsOff(osDirOption)) {
fout << "";
@@ -575,8 +568,7 @@ void cmGlobalGhsMultiGenerator::WriteMacros(std::ostream& fout,
cmLocalGenerator* root)
{
fout << "macro PROJ_NAME=" << root->GetProjectName() << '\n';
- cmValue ghsGpjMacros =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_GPJ_MACROS");
+ cmValue ghsGpjMacros = root->GetMakefile()->GetDefinition("GHS_GPJ_MACROS");
if (ghsGpjMacros) {
std::vector<std::string> expandedList = cmExpandedList(*ghsGpjMacros);
for (std::string const& arg : expandedList) {
@@ -589,8 +581,7 @@ void cmGlobalGhsMultiGenerator::WriteHighLevelDirectives(
cmLocalGenerator* root, std::ostream& fout)
{
/* put primary target and customization files into project file */
- cmValue const tgt =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_PRIMARY_TARGET");
+ cmValue const tgt = root->GetMakefile()->GetDefinition("GHS_PRIMARY_TARGET");
/* clang-format off */
fout << "primaryTarget=" << tgt << "\n"
@@ -601,7 +592,7 @@ void cmGlobalGhsMultiGenerator::WriteHighLevelDirectives(
/* clang-format on */
cmValue const customization =
- this->GetCMakeInstance()->GetCacheDefinition("GHS_CUSTOMIZATION");
+ root->GetMakefile()->GetDefinition("GHS_CUSTOMIZATION");
if (cmNonempty(customization)) {
fout << "customization="
<< cmGlobalGhsMultiGenerator::TrimQuotes(*customization) << '\n';