mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-13 12:59:55 -05:00
Add platform-specific initialization step when enabling languages
Create a Modules/CMakeSystemSpecificInitialize.cmake module loaded after CMakeSystem.cmake but before per-language initialization. Use it to load an optional Platform/<os>-Initialize.cmake module. This will be useful to do per-platform initialization that does not depend on the language and use the results when enabling specific languages.
This commit is contained in:
@@ -308,6 +308,9 @@ void cmGlobalGenerator::FindMakeProgram(cmMakefile* mf)
|
||||
// CMakeSystem.cmake - configured file created by
|
||||
// CMakeDetermineSystem.cmake IF CMAKE_SYSTEM_LOADED
|
||||
|
||||
// CMakeSystemSpecificInitialize.cmake
|
||||
// - includes Platform/${CMAKE_SYSTEM_NAME}-Initialize.cmake
|
||||
|
||||
// Next try and enable all languages found in the languages vector
|
||||
//
|
||||
// FOREACH LANG in languages
|
||||
@@ -432,6 +435,18 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
|
||||
fpath += "/CMakeSystem.cmake";
|
||||
mf->ReadListFile(0,fpath.c_str());
|
||||
}
|
||||
|
||||
// **** Load the system specific initialization if not yet loaded
|
||||
if (!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED"))
|
||||
{
|
||||
fpath = mf->GetModulesFile("CMakeSystemSpecificInitialize.cmake");
|
||||
if(!mf->ReadListFile(0,fpath.c_str()))
|
||||
{
|
||||
cmSystemTools::Error("Could not find cmake module file: ",
|
||||
fpath.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
std::map<cmStdString, bool> needTestLanguage;
|
||||
std::map<cmStdString, bool> needSetLanguageEnabledMaps;
|
||||
// foreach language
|
||||
|
||||
Reference in New Issue
Block a user