Merge topic 'set_environment_generator'

3c3bce133d cmake: Honor CMAKE_GENERATOR env var in --help output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !7808
This commit is contained in:
Brad King
2022-10-24 16:35:25 +00:00
committed by Kitware Robot
10 changed files with 18 additions and 4 deletions

View File

@@ -77,7 +77,7 @@ int main(int argc, char const* const* argv)
cmDocumentation doc;
doc.addCMakeStandardDocSections();
if (doc.CheckOptions(argc, argv)) {
cmake hcm(cmake::RoleInternal, cmState::Unknown);
cmake hcm(cmake::RoleInternal, cmState::Help);
hcm.SetHomeDirectory("");
hcm.SetHomeOutputDirectory("");
hcm.AddCMakePaths();

View File

@@ -79,7 +79,7 @@ int main(int argc, char** argv)
doc.addCMakeStandardDocSections();
if (argc2 > 1 && doc.CheckOptions(argc2, argv2)) {
// Construct and print requested documentation.
cmake hcm(cmake::RoleInternal, cmState::Unknown);
cmake hcm(cmake::RoleInternal, cmState::Help);
hcm.SetHomeDirectory("");
hcm.SetHomeOutputDirectory("");
hcm.AddCMakePaths();

View File

@@ -786,6 +786,8 @@ std::string cmState::ModeToString(cmState::Mode mode)
return "CTEST";
case CPack:
return "CPACK";
case Help:
return "HELP";
case Unknown:
return "UNKNOWN";
}

View File

@@ -53,6 +53,7 @@ public:
FindPackage,
CTest,
CPack,
Help
};
enum class ProjectKind

View File

@@ -196,7 +196,7 @@ cmake::cmake(Role role, cmState::Mode mode, cmState::ProjectKind projectKind)
this->AddProjectCommands();
}
if (mode == cmState::Project) {
if (mode == cmState::Project || mode == cmState::Help) {
this->LoadEnvironmentPresets();
}

View File

@@ -208,7 +208,7 @@ int do_cmake(int ac, char const* const* av)
doc.addCMakeStandardDocSections();
if (doc.CheckOptions(ac, av, "--")) {
// Construct and print requested documentation.
cmake hcm(cmake::RoleInternal, cmState::Unknown);
cmake hcm(cmake::RoleInternal, cmState::Help);
hcm.SetHomeDirectory("");
hcm.SetHomeOutputDirectory("");
hcm.AddCMakePaths();

View File

@@ -0,0 +1 @@
CMake Error: CMAKE_GENERATOR was set but the specified generator doesn't exist. Using CMake default.

View File

@@ -0,0 +1,2 @@
Generators.*
\* (Unix Makefiles|Visual Studio).*

View File

@@ -0,0 +1 @@
\* Ninja Multi-Config[ ]+= Generates build-<Config>.ninja files.

View File

@@ -349,6 +349,13 @@ function(run_EnvironmentGenerator)
run_cmake_command(Envgen-bad ${CMAKE_COMMAND} -G)
unset(ENV{CMAKE_GENERATOR})
# Honor CMAKE_GENERATOR env var in --help output
set(ENV{CMAKE_GENERATOR} "Ninja Multi-Config")
run_cmake_command(Envgen-ninja-multi-help ${CMAKE_COMMAND} --help)
set(ENV{CMAKE_GENERATOR} "NoSuchGenerator")
run_cmake_command(Envgen-bad-help ${CMAKE_COMMAND} --help)
unset(ENV{CMAKE_GENERATOR})
if(RunCMake_GENERATOR MATCHES "Visual Studio.*")
set(ENV{CMAKE_GENERATOR} "${RunCMake_GENERATOR}")
run_cmake_command(Envgen ${CMAKE_COMMAND} ${source_dir})