mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 07:11:05 -06:00
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:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ public:
|
||||
FindPackage,
|
||||
CTest,
|
||||
CPack,
|
||||
Help
|
||||
};
|
||||
|
||||
enum class ProjectKind
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
1
Tests/RunCMake/CommandLine/Envgen-bad-help-stderr.txt
Normal file
1
Tests/RunCMake/CommandLine/Envgen-bad-help-stderr.txt
Normal file
@@ -0,0 +1 @@
|
||||
CMake Error: CMAKE_GENERATOR was set but the specified generator doesn't exist. Using CMake default.
|
||||
2
Tests/RunCMake/CommandLine/Envgen-bad-help-stdout.txt
Normal file
2
Tests/RunCMake/CommandLine/Envgen-bad-help-stdout.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Generators.*
|
||||
\* (Unix Makefiles|Visual Studio).*
|
||||
@@ -0,0 +1 @@
|
||||
\* Ninja Multi-Config[ ]+= Generates build-<Config>.ninja files.
|
||||
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user