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. "
|
||||
"Library targets are otherwise placed in this directory.",false,
|
||||
"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
|
||||
|
|
|
@ -2718,6 +2718,18 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
|||
cm.SetStartOutputDirectory(bindir);
|
||||
cm.SetCMakeCommand(cmakeCommand.c_str());
|
||||
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 (cmakeArgs)
|
||||
{
|
||||
|
|
|
@ -99,7 +99,9 @@ public:
|
|||
"Return the success or failure in "
|
||||
"RESULT_VAR. CMAKE_FLAGS can be used to pass -DVAR:TYPE=VALUE flags "
|
||||
"to the cmake that is run during the build. "
|
||||
"";
|
||||
"Set variable CMAKE_TRY_COMPILE_CONFIGURATION to choose a build "
|
||||
"configuration."
|
||||
;
|
||||
}
|
||||
|
||||
cmTypeMacro(cmTryCompileCommand, cmCoreTryCompile);
|
||||
|
|
|
@ -93,7 +93,10 @@ public:
|
|||
"that when crosscompiling, the cache variables will have to be set "
|
||||
"manually to the output of the executable. You can also \"guard\" the "
|
||||
"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);
|
||||
|
|
Loading…
Reference in New Issue