diff options
author | Brad King <brad.king@kitware.com> | 2020-11-24 13:40:10 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-11-24 13:42:32 (GMT) |
commit | aeb0e401110d8aa9ce2248b01611f7e7e01e21be (patch) | |
tree | b01428e50e9307c098dd0975ef4ef4d3cf3dece8 /Source | |
parent | 6b4bb3bf7fe07ef3bea52779824ccc54bf3e622b (diff) | |
parent | ef91fb02f3658954b631e46858e254008ca58132 (diff) | |
download | CMake-aeb0e401110d8aa9ce2248b01611f7e7e01e21be.zip CMake-aeb0e401110d8aa9ce2248b01611f7e7e01e21be.tar.gz CMake-aeb0e401110d8aa9ce2248b01611f7e7e01e21be.tar.bz2 |
Merge topic 'fix-find-make-program' into release-3.19
ef91fb02f3 cmGlobalGenerator: FindMakeProgram() at a generator-specific time
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Frank Dana <ferdnyc@gmail.com>
Merge-request: !5529
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 9 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.h | 11 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.h | 5 | ||||
-rw-r--r-- | Source/cmGlobalXCodeGenerator.h | 5 |
4 files changed, 29 insertions, 1 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 1197db6..fc40d63 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -584,7 +584,8 @@ void cmGlobalGenerator::EnableLanguage( // Find the native build tool for this generator. // This has to be done early so that MSBuild can be used to examine the // cross-compilation environment. - if (!this->FindMakeProgram(mf)) { + if (this->GetFindMakeProgramStage() == FindMakeProgramStage::Early && + !this->FindMakeProgram(mf)) { return; } } @@ -660,6 +661,12 @@ void cmGlobalGenerator::EnableLanguage( cmSystemTools::SetFatalErrorOccured(); return; } + + // Find the native build tool for this generator. + if (this->GetFindMakeProgramStage() == FindMakeProgramStage::Late && + !this->FindMakeProgram(mf)) { + return; + } } // Check that the languages are supported by the generator and its diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index b532a43..c106258 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -597,6 +597,17 @@ protected: std::string GetPredefinedTargetsFolder(); + enum class FindMakeProgramStage + { + Early, + Late, + }; + + virtual FindMakeProgramStage GetFindMakeProgramStage() const + { + return FindMakeProgramStage::Late; + } + private: using TargetMap = std::unordered_map<std::string, cmTarget*>; using GeneratorTargetMap = diff --git a/Source/cmGlobalVisualStudioGenerator.h b/Source/cmGlobalVisualStudioGenerator.h index 3c46408..3bfcbd0 100644 --- a/Source/cmGlobalVisualStudioGenerator.h +++ b/Source/cmGlobalVisualStudioGenerator.h @@ -166,6 +166,11 @@ protected: void WriteSLNHeader(std::ostream& fout); + FindMakeProgramStage GetFindMakeProgramStage() const override + { + return FindMakeProgramStage::Early; + } + bool ComputeTargetDepends() override; class VSDependSet : public std::set<std::string> { diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index 5b05214..ab5eeb2 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -124,6 +124,11 @@ protected: void AddExtraIDETargets() override; void Generate() override; + FindMakeProgramStage GetFindMakeProgramStage() const override + { + return FindMakeProgramStage::Early; + } + private: bool ParseGeneratorToolset(std::string const& ts, cmMakefile* mf); bool ProcessGeneratorToolsetField(std::string const& key, |