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:
parent
20b46a09e3
commit
416761e35c
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright 2002-2014 Kitware, Inc.
|
||||||
|
#
|
||||||
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
|
#=============================================================================
|
||||||
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
|
# License text for the above reference.)
|
||||||
|
|
||||||
|
# This file is included by cmGlobalGenerator::EnableLanguage.
|
||||||
|
# It is included before the compiler has been determined.
|
||||||
|
|
||||||
|
include(Platform/${CMAKE_SYSTEM_NAME}-Initialize OPTIONAL)
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED 1)
|
|
@ -308,6 +308,9 @@ void cmGlobalGenerator::FindMakeProgram(cmMakefile* mf)
|
||||||
// CMakeSystem.cmake - configured file created by
|
// CMakeSystem.cmake - configured file created by
|
||||||
// CMakeDetermineSystem.cmake IF CMAKE_SYSTEM_LOADED
|
// 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
|
// Next try and enable all languages found in the languages vector
|
||||||
//
|
//
|
||||||
// FOREACH LANG in languages
|
// FOREACH LANG in languages
|
||||||
|
@ -432,6 +435,18 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
|
||||||
fpath += "/CMakeSystem.cmake";
|
fpath += "/CMakeSystem.cmake";
|
||||||
mf->ReadListFile(0,fpath.c_str());
|
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> needTestLanguage;
|
||||||
std::map<cmStdString, bool> needSetLanguageEnabledMaps;
|
std::map<cmStdString, bool> needSetLanguageEnabledMaps;
|
||||||
// foreach language
|
// foreach language
|
||||||
|
|
Loading…
Reference in New Issue