diff options
-rw-r--r-- | Source/cmMakefile.cxx | 5 | ||||
-rw-r--r-- | Source/cmMakefile.h | 3 | ||||
-rw-r--r-- | Source/cmTryCompileCommand.cxx | 11 | ||||
-rw-r--r-- | Source/cmTryRunCommand.cxx | 8 |
4 files changed, 24 insertions, 3 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 92fe82e..1a79b97 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -1421,3 +1421,8 @@ cmCacheManager *cmMakefile::GetCacheManager() const { return m_LocalGenerator->GetGlobalGenerator()->GetCMakeInstance()->GetCacheManager(); } + +bool cmMakefile::GetLocal() const +{ + return m_LocalGenerator->GetGlobalGenerator()->GetCMakeInstance()->GetLocal(); +} diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 959677b..7664d9e 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -515,6 +515,9 @@ public: */ cmCacheManager *GetCacheManager() const; + //! Determine wether this is a local or global build. + bool GetLocal() const; + protected: // add link libraries and directories to the target void AddGlobalLinkInformation(const char* name, cmTarget& target); diff --git a/Source/cmTryCompileCommand.cxx b/Source/cmTryCompileCommand.cxx index cf54a09..4351ffb 100644 --- a/Source/cmTryCompileCommand.cxx +++ b/Source/cmTryCompileCommand.cxx @@ -94,7 +94,7 @@ int cmTryCompileCommand::CoreTryCompileCode( break; } } - + // compute the binary dir when TRY_COMPILE is called with a src file // signature if (srcFileSignature) @@ -170,7 +170,9 @@ int cmTryCompileCommand::CoreTryCompileCode( projectName, targetName, &cmakeFlags, &output); // set the result var to the return value to indicate success or failure - mf->AddDefinition(argv[0].c_str(), (res == 0 ? "TRUE" : "FALSE")); + mf->AddCacheDefinition(argv[0].c_str(), (res == 0 ? "TRUE" : "FALSE"), + "Result of TRY_COMPILE", + cmCacheManager::INTERNAL); if ( outputVariable.size() > 0 ) { @@ -208,6 +210,11 @@ bool cmTryCompileCommand::InitialPass(std::vector<std::string> const& argv) return false; } + if ( m_Makefile->GetLocal() ) + { + return true; + } + cmTryCompileCommand::CoreTryCompileCode(m_Makefile,argv,true); return true; diff --git a/Source/cmTryRunCommand.cxx b/Source/cmTryRunCommand.cxx index fc18db3..e590fdb 100644 --- a/Source/cmTryRunCommand.cxx +++ b/Source/cmTryRunCommand.cxx @@ -26,6 +26,11 @@ bool cmTryRunCommand::InitialPass(std::vector<std::string> const& argv) return false; } + if ( m_Makefile->GetLocal() ) + { + return true; + } + // build an arg list for TryCompile and extract the runArgs std::vector<std::string> tryCompile; std::string runArgs; @@ -98,7 +103,8 @@ bool cmTryRunCommand::InitialPass(std::vector<std::string> const& argv) // set the run var char retChar[1000]; sprintf(retChar,"%i",retVal); - m_Makefile->AddDefinition(argv[0].c_str(), retChar); + m_Makefile->AddCacheDefinition(argv[0].c_str(), retChar, + "Result of TRY_RUN", cmCacheManager::INTERNAL); } } |