diff options
author | Peter Kümmel <syntheticpp@gmx.net> | 2012-09-04 23:44:11 (GMT) |
---|---|---|
committer | Peter Kümmel <syntheticpp@gmx.net> | 2012-09-05 12:38:49 (GMT) |
commit | 7b2bf28e183b5eacc22fe3030f0439853746f0bd (patch) | |
tree | 24420af73ff7396981a950a7553aa90bd3d77b48 | |
parent | 508ed6940b447c2fb6b5fe4f036138ce57ab3c4c (diff) | |
download | CMake-7b2bf28e183b5eacc22fe3030f0439853746f0bd.zip CMake-7b2bf28e183b5eacc22fe3030f0439853746f0bd.tar.gz CMake-7b2bf28e183b5eacc22fe3030f0439853746f0bd.tar.bz2 |
Ninja: suppress cmcldeps only for source file signature try_compiles
-rw-r--r-- | Source/cmMakefile.cxx | 12 | ||||
-rw-r--r-- | Source/cmMakefile.h | 2 | ||||
-rw-r--r-- | Source/cmNinjaTargetGenerator.cxx | 3 |
3 files changed, 15 insertions, 2 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 7b6c450..9a9c1c8 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -46,6 +46,7 @@ public: std::stack<cmDefinitions, std::list<cmDefinitions> > VarStack; std::stack<std::set<cmStdString> > VarInitStack; std::stack<std::set<cmStdString> > VarUsageStack; + bool IsSourceFileTryCompile; }; // default is not to be building executables @@ -56,6 +57,7 @@ cmMakefile::cmMakefile(): Internal(new Internals) this->Internal->VarStack.push(defs); this->Internal->VarInitStack.push(globalKeys); this->Internal->VarUsageStack.push(globalKeys); + this->Internal->IsSourceFileTryCompile = false; // Initialize these first since AddDefaultDefinitions calls AddDefinition this->WarnUnused = false; @@ -2912,6 +2914,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir, const std::vector<std::string> *cmakeArgs, std::string *output) { + this->Internal->IsSourceFileTryCompile = fast; // does the binary directory exist ? If not create it... if (!cmSystemTools::FileIsDirectory(bindir)) { @@ -2937,6 +2940,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir, "Internal CMake error, TryCompile bad GlobalGenerator"); // return to the original directory cmSystemTools::ChangeDirectory(cwd.c_str()); + this->Internal->IsSourceFileTryCompile = false; return 1; } cm.SetGlobalGenerator(gg); @@ -3009,6 +3013,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir, "Internal CMake error, TryCompile configure of cmake failed"); // return to the original directory cmSystemTools::ChangeDirectory(cwd.c_str()); + this->Internal->IsSourceFileTryCompile = false; return 1; } @@ -3018,6 +3023,7 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir, "Internal CMake error, TryCompile generation of cmake failed"); // return to the original directory cmSystemTools::ChangeDirectory(cwd.c_str()); + this->Internal->IsSourceFileTryCompile = false; return 1; } @@ -3031,9 +3037,15 @@ int cmMakefile::TryCompile(const char *srcdir, const char *bindir, this); cmSystemTools::ChangeDirectory(cwd.c_str()); + this->Internal->IsSourceFileTryCompile = false; return ret; } +bool cmMakefile::GetIsSourceFileTryCompile() const +{ + return this->Internal->IsSourceFileTryCompile; +} + cmake *cmMakefile::GetCMakeInstance() const { if ( this->LocalGenerator && this->LocalGenerator->GetGlobalGenerator() ) diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 8a0088b..74c8039 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -128,6 +128,8 @@ public: const std::vector<std::string> *cmakeArgs, std::string *output); + bool GetIsSourceFileTryCompile() const; + /** * Specify the makefile generator. This is platform/compiler * dependent, although the interface is through a generic diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 918f582..4cc23ca 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -355,8 +355,7 @@ cmNinjaTargetGenerator if (lang == "C" || lang == "CXX" || lang == "RC") { clDepsBinary = mf->GetSafeDefinition("CMAKE_CMCLDEPS_EXECUTABLE"); - if (!clDepsBinary.empty() && - !this->GetGlobalGenerator()->GetCMakeInstance()->GetIsInTryCompile()) + if (!clDepsBinary.empty() && !mf->GetIsSourceFileTryCompile()) { clShowPrefix = mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDE_PREFIX"); clBinary = mf->GetDefinition("CMAKE_C_COMPILER") ? |