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_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG")
|
||||||
set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG")
|
set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG")
|
||||||
set(CMAKE_${lang}_LINKER_SUPPORTS_PDB ON)
|
set(CMAKE_${lang}_LINKER_SUPPORTS_PDB ON)
|
||||||
|
set(CMAKE_NINJA_DEPTYPE_${lang} msvc)
|
||||||
|
|
||||||
if(NOT CMAKE_RC_COMPILER_INIT)
|
if(NOT CMAKE_RC_COMPILER_INIT)
|
||||||
set(CMAKE_RC_COMPILER_INIT rc)
|
set(CMAKE_RC_COMPILER_INIT rc)
|
||||||
|
@ -311,4 +312,5 @@ macro(__windows_compiler_msvc lang)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
enable_language(RC)
|
enable_language(RC)
|
||||||
|
set(CMAKE_NINJA_CMCLDEPS_RC 1)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
|
@ -148,17 +148,9 @@ void cmNinjaTargetGenerator::AddIncludeFlags(std::string& languageFlags,
|
||||||
|
|
||||||
bool cmNinjaTargetGenerator::NeedDepTypeMSVC(const std::string& lang) const
|
bool cmNinjaTargetGenerator::NeedDepTypeMSVC(const std::string& lang) const
|
||||||
{
|
{
|
||||||
if (lang == "C" || lang == "CXX")
|
return strcmp(
|
||||||
{
|
this->GetMakefile()->GetSafeDefinition("CMAKE_NINJA_DEPTYPE_" + lang),
|
||||||
cmMakefile* mf = this->GetMakefile();
|
"msvc") == 0;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Refactor with
|
// TODO: Refactor with
|
||||||
|
@ -359,7 +351,7 @@ cmNinjaTargetGenerator
|
||||||
depfile = "";
|
depfile = "";
|
||||||
flags += " /showIncludes";
|
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 the MS resource compiler we need cmcldeps, but skip dependencies
|
||||||
// for source-file try_compile cases because they are always fresh.
|
// for source-file try_compile cases because they are always fresh.
|
||||||
|
|
Loading…
Reference in New Issue