Merge topic 'try_compile-Makefile-config'
052c2ae
Document CMAKE_TRY_COMPILE_CONFIGURATION variable56efc60
Honor CMAKE_TRY_COMPILE_CONFIGURATION in Makefile generators (#10809)
This commit is contained in:
commit
3a1975c529
|
@ -1121,6 +1121,14 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
||||||
"this variable for a target if they are set. "
|
"this variable for a target if they are set. "
|
||||||
"Library targets are otherwise placed in this directory.",false,
|
"Library targets are otherwise placed in this directory.",false,
|
||||||
"Variables that Control the Build");
|
"Variables that Control the Build");
|
||||||
|
cm->DefineProperty
|
||||||
|
("CMAKE_TRY_COMPILE_CONFIGURATION", cmProperty::VARIABLE,
|
||||||
|
"Build configuration used for try_compile and try_run projects.",
|
||||||
|
"Projects built by try_compile and try_run are built "
|
||||||
|
"synchronously during the CMake configuration step. "
|
||||||
|
"Therefore a specific build configuration must be chosen even "
|
||||||
|
"if the generated build system supports multiple configurations.",false,
|
||||||
|
"Variables that Control the Build");
|
||||||
|
|
||||||
|
|
||||||
// Variables defined when the a language is enabled These variables will
|
// Variables defined when the a language is enabled These variables will
|
||||||
|
|
|
@ -2718,6 +2718,18 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
||||||
cm.SetStartOutputDirectory(bindir);
|
cm.SetStartOutputDirectory(bindir);
|
||||||
cm.SetCMakeCommand(cmakeCommand.c_str());
|
cm.SetCMakeCommand(cmakeCommand.c_str());
|
||||||
cm.LoadCache();
|
cm.LoadCache();
|
||||||
|
if(!gg->IsMultiConfig())
|
||||||
|
{
|
||||||
|
if(const char* config =
|
||||||
|
this->GetDefinition("CMAKE_TRY_COMPILE_CONFIGURATION"))
|
||||||
|
{
|
||||||
|
// Tell the single-configuration generator which one to use.
|
||||||
|
// Add this before the user-provided CMake arguments in case
|
||||||
|
// one of the arguments is -DCMAKE_BUILD_TYPE=...
|
||||||
|
cm.AddCacheEntry("CMAKE_BUILD_TYPE", config,
|
||||||
|
"Build configuration", cmCacheManager::STRING);
|
||||||
|
}
|
||||||
|
}
|
||||||
// if cmake args were provided then pass them in
|
// if cmake args were provided then pass them in
|
||||||
if (cmakeArgs)
|
if (cmakeArgs)
|
||||||
{
|
{
|
||||||
|
|
|
@ -99,7 +99,9 @@ public:
|
||||||
"Return the success or failure in "
|
"Return the success or failure in "
|
||||||
"RESULT_VAR. CMAKE_FLAGS can be used to pass -DVAR:TYPE=VALUE flags "
|
"RESULT_VAR. CMAKE_FLAGS can be used to pass -DVAR:TYPE=VALUE flags "
|
||||||
"to the cmake that is run during the build. "
|
"to the cmake that is run during the build. "
|
||||||
"";
|
"Set variable CMAKE_TRY_COMPILE_CONFIGURATION to choose a build "
|
||||||
|
"configuration."
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmTypeMacro(cmTryCompileCommand, cmCoreTryCompile);
|
cmTypeMacro(cmTryCompileCommand, cmCoreTryCompile);
|
||||||
|
|
|
@ -93,7 +93,10 @@ public:
|
||||||
"that when crosscompiling, the cache variables will have to be set "
|
"that when crosscompiling, the cache variables will have to be set "
|
||||||
"manually to the output of the executable. You can also \"guard\" the "
|
"manually to the output of the executable. You can also \"guard\" the "
|
||||||
"calls to try_run with if(CMAKE_CROSSCOMPILING) and provide an "
|
"calls to try_run with if(CMAKE_CROSSCOMPILING) and provide an "
|
||||||
"easy-to-preset alternative for this case.\n";
|
"easy-to-preset alternative for this case.\n"
|
||||||
|
"Set variable CMAKE_TRY_COMPILE_CONFIGURATION to choose a build "
|
||||||
|
"configuration."
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmTypeMacro(cmTryRunCommand, cmCoreTryCompile);
|
cmTypeMacro(cmTryRunCommand, cmCoreTryCompile);
|
||||||
|
|
Loading…
Reference in New Issue