cmLocalCommonGenerator: Save CMAKE_BUILD_TYPE on construction
Copy the value to our `ConfigName` member on construction to ensure it is available even to code paths that run before `Generate`. We once needed to delay this lookup until `Generate` because the local generators were at one time created before `Configure`. Now they are created at generate time which is late enough to expect `CMAKE_BUILD_TYPE` to be available. Without this, `cmGlobalUnixMakefileGenerator3::WriteConvenienceRules` causes use of `ConfigName` before it is populated which breaks use of source files that depend on the `$<CONFIG>` generator expression. Fixes: #16889
This commit is contained in:
parent
4717797647
commit
eeb47fbeb2
@ -15,14 +15,6 @@ cmLocalCommonGenerator::cmLocalCommonGenerator(cmGlobalGenerator* gg,
|
||||
std::string const& wd)
|
||||
: cmLocalGenerator(gg, mf)
|
||||
, WorkingDirectory(wd)
|
||||
{
|
||||
}
|
||||
|
||||
cmLocalCommonGenerator::~cmLocalCommonGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
void cmLocalCommonGenerator::SetConfigName()
|
||||
{
|
||||
// Store the configuration name that will be generated.
|
||||
if (const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE")) {
|
||||
@ -34,6 +26,10 @@ void cmLocalCommonGenerator::SetConfigName()
|
||||
}
|
||||
}
|
||||
|
||||
cmLocalCommonGenerator::~cmLocalCommonGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
std::string cmLocalCommonGenerator::GetTargetFortranFlags(
|
||||
cmGeneratorTarget const* target, std::string const& config)
|
||||
{
|
||||
|
@ -33,7 +33,6 @@ public:
|
||||
protected:
|
||||
std::string WorkingDirectory;
|
||||
|
||||
void SetConfigName();
|
||||
std::string ConfigName;
|
||||
|
||||
friend class cmCommonTargetGenerator;
|
||||
|
@ -58,8 +58,6 @@ void cmLocalNinjaGenerator::Generate()
|
||||
this->HomeRelativeOutputPath = "";
|
||||
}
|
||||
|
||||
this->SetConfigName();
|
||||
|
||||
this->WriteProcessedMakefile(this->GetBuildFileStream());
|
||||
#ifdef NINJA_GEN_VERBOSE_FILES
|
||||
this->WriteProcessedMakefile(this->GetRulesFileStream());
|
||||
|
@ -105,8 +105,6 @@ cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3()
|
||||
|
||||
void cmLocalUnixMakefileGenerator3::Generate()
|
||||
{
|
||||
this->SetConfigName();
|
||||
|
||||
// Record whether some options are enabled to avoid checking many
|
||||
// times later.
|
||||
if (!this->GetGlobalGenerator()->GetCMakeInstance()->GetIsInTryCompile()) {
|
||||
|
Loading…
Reference in New Issue
Block a user