Ninja: Refactor selection of 'deps = ' value for MS-compatible toolchains
Set variables in the platform information modules to tell the Ninja generator what deps type to use instead of hard-coding conditions in the generator itself.
This commit is contained in:
parent
9afbb733ec
commit
123de1914c
|
@ -302,6 +302,7 @@ macro(__windows_compiler_msvc lang)
|
|||
set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG")
|
||||
set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG")
|
||||
set(CMAKE_${lang}_LINKER_SUPPORTS_PDB ON)
|
||||
set(CMAKE_NINJA_DEPTYPE_${lang} msvc)
|
||||
|
||||
if(NOT CMAKE_RC_COMPILER_INIT)
|
||||
set(CMAKE_RC_COMPILER_INIT rc)
|
||||
|
@ -311,4 +312,5 @@ macro(__windows_compiler_msvc lang)
|
|||
endif()
|
||||
|
||||
enable_language(RC)
|
||||
set(CMAKE_NINJA_CMCLDEPS_RC 1)
|
||||
endmacro()
|
||||
|
|
|
@ -148,17 +148,9 @@ void cmNinjaTargetGenerator::AddIncludeFlags(std::string& languageFlags,
|
|||
|
||||
bool cmNinjaTargetGenerator::NeedDepTypeMSVC(const std::string& lang) const
|
||||
{
|
||||
if (lang == "C" || lang == "CXX")
|
||||
{
|
||||
cmMakefile* mf = this->GetMakefile();
|
||||
return (
|
||||
strcmp(mf->GetSafeDefinition("CMAKE_C_COMPILER_ID"), "MSVC") == 0 ||
|
||||
strcmp(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID"), "MSVC") == 0 ||
|
||||
strcmp(mf->GetSafeDefinition("CMAKE_C_SIMULATE_ID"), "MSVC") == 0 ||
|
||||
strcmp(mf->GetSafeDefinition("CMAKE_CXX_SIMULATE_ID"), "MSVC") == 0
|
||||
);
|
||||
}
|
||||
return false;
|
||||
return strcmp(
|
||||
this->GetMakefile()->GetSafeDefinition("CMAKE_NINJA_DEPTYPE_" + lang),
|
||||
"msvc") == 0;
|
||||
}
|
||||
|
||||
// TODO: Refactor with
|
||||
|
@ -359,7 +351,7 @@ cmNinjaTargetGenerator
|
|||
depfile = "";
|
||||
flags += " /showIncludes";
|
||||
}
|
||||
else if (lang == "RC" && this->NeedDepTypeMSVC("C"))
|
||||
else if (mf->IsOn("CMAKE_NINJA_CMCLDEPS_"+lang))
|
||||
{
|
||||
// For the MS resource compiler we need cmcldeps, but skip dependencies
|
||||
// for source-file try_compile cases because they are always fresh.
|
||||
|
|
Loading…
Reference in New Issue