Ninja: suppress cmcldeps only for source file signature try_compiles
This commit is contained in:
parent
508ed6940b
commit
7b2bf28e18
|
@ -46,6 +46,7 @@ public:
|
||||||
std::stack<cmDefinitions, std::list<cmDefinitions> > VarStack;
|
std::stack<cmDefinitions, std::list<cmDefinitions> > VarStack;
|
||||||
std::stack<std::set<cmStdString> > VarInitStack;
|
std::stack<std::set<cmStdString> > VarInitStack;
|
||||||
std::stack<std::set<cmStdString> > VarUsageStack;
|
std::stack<std::set<cmStdString> > VarUsageStack;
|
||||||
|
bool IsSourceFileTryCompile;
|
||||||
};
|
};
|
||||||
|
|
||||||
// default is not to be building executables
|
// default is not to be building executables
|
||||||
|
@ -56,6 +57,7 @@ cmMakefile::cmMakefile(): Internal(new Internals)
|
||||||
this->Internal->VarStack.push(defs);
|
this->Internal->VarStack.push(defs);
|
||||||
this->Internal->VarInitStack.push(globalKeys);
|
this->Internal->VarInitStack.push(globalKeys);
|
||||||
this->Internal->VarUsageStack.push(globalKeys);
|
this->Internal->VarUsageStack.push(globalKeys);
|
||||||
|
this->Internal->IsSourceFileTryCompile = false;
|
||||||
|
|
||||||
// Initialize these first since AddDefaultDefinitions calls AddDefinition
|
// Initialize these first since AddDefaultDefinitions calls AddDefinition
|
||||||
this->WarnUnused = false;
|
this->WarnUnused = false;
|
||||||
|
@ -2912,6 +2914,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
||||||
const std::vector<std::string> *cmakeArgs,
|
const std::vector<std::string> *cmakeArgs,
|
||||||
std::string *output)
|
std::string *output)
|
||||||
{
|
{
|
||||||
|
this->Internal->IsSourceFileTryCompile = fast;
|
||||||
// does the binary directory exist ? If not create it...
|
// does the binary directory exist ? If not create it...
|
||||||
if (!cmSystemTools::FileIsDirectory(bindir))
|
if (!cmSystemTools::FileIsDirectory(bindir))
|
||||||
{
|
{
|
||||||
|
@ -2937,6 +2940,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
||||||
"Internal CMake error, TryCompile bad GlobalGenerator");
|
"Internal CMake error, TryCompile bad GlobalGenerator");
|
||||||
// return to the original directory
|
// return to the original directory
|
||||||
cmSystemTools::ChangeDirectory(cwd.c_str());
|
cmSystemTools::ChangeDirectory(cwd.c_str());
|
||||||
|
this->Internal->IsSourceFileTryCompile = false;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
cm.SetGlobalGenerator(gg);
|
cm.SetGlobalGenerator(gg);
|
||||||
|
@ -3009,6 +3013,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
||||||
"Internal CMake error, TryCompile configure of cmake failed");
|
"Internal CMake error, TryCompile configure of cmake failed");
|
||||||
// return to the original directory
|
// return to the original directory
|
||||||
cmSystemTools::ChangeDirectory(cwd.c_str());
|
cmSystemTools::ChangeDirectory(cwd.c_str());
|
||||||
|
this->Internal->IsSourceFileTryCompile = false;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3018,6 +3023,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
||||||
"Internal CMake error, TryCompile generation of cmake failed");
|
"Internal CMake error, TryCompile generation of cmake failed");
|
||||||
// return to the original directory
|
// return to the original directory
|
||||||
cmSystemTools::ChangeDirectory(cwd.c_str());
|
cmSystemTools::ChangeDirectory(cwd.c_str());
|
||||||
|
this->Internal->IsSourceFileTryCompile = false;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3031,9 +3037,15 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir,
|
||||||
this);
|
this);
|
||||||
|
|
||||||
cmSystemTools::ChangeDirectory(cwd.c_str());
|
cmSystemTools::ChangeDirectory(cwd.c_str());
|
||||||
|
this->Internal->IsSourceFileTryCompile = false;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cmMakefile::GetIsSourceFileTryCompile() const
|
||||||
|
{
|
||||||
|
return this->Internal->IsSourceFileTryCompile;
|
||||||
|
}
|
||||||
|
|
||||||
cmake *cmMakefile::GetCMakeInstance() const
|
cmake *cmMakefile::GetCMakeInstance() const
|
||||||
{
|
{
|
||||||
if ( this->LocalGenerator && this->LocalGenerator->GetGlobalGenerator() )
|
if ( this->LocalGenerator && this->LocalGenerator->GetGlobalGenerator() )
|
||||||
|
|
|
@ -128,6 +128,8 @@ public:
|
||||||
const std::vector<std::string> *cmakeArgs,
|
const std::vector<std::string> *cmakeArgs,
|
||||||
std::string *output);
|
std::string *output);
|
||||||
|
|
||||||
|
bool GetIsSourceFileTryCompile() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specify the makefile generator. This is platform/compiler
|
* Specify the makefile generator. This is platform/compiler
|
||||||
* dependent, although the interface is through a generic
|
* dependent, although the interface is through a generic
|
||||||
|
|
|
@ -355,8 +355,7 @@ cmNinjaTargetGenerator
|
||||||
if (lang == "C" || lang == "CXX" || lang == "RC")
|
if (lang == "C" || lang == "CXX" || lang == "RC")
|
||||||
{
|
{
|
||||||
clDepsBinary = mf->GetSafeDefinition("CMAKE_CMCLDEPS_EXECUTABLE");
|
clDepsBinary = mf->GetSafeDefinition("CMAKE_CMCLDEPS_EXECUTABLE");
|
||||||
if (!clDepsBinary.empty() &&
|
if (!clDepsBinary.empty() && !mf->GetIsSourceFileTryCompile())
|
||||||
!this->GetGlobalGenerator()->GetCMakeInstance()->GetIsInTryCompile())
|
|
||||||
{
|
{
|
||||||
clShowPrefix = mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDE_PREFIX");
|
clShowPrefix = mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDE_PREFIX");
|
||||||
clBinary = mf->GetDefinition("CMAKE_C_COMPILER") ?
|
clBinary = mf->GetDefinition("CMAKE_C_COMPILER") ?
|
||||||
|
|
Loading…
Reference in New Issue