diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 92fe82ec8..1a79b9757 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 959677b38..7664d9ec6 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 cf54a09e6..4351ffbd3 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 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 fc18db38b..e590fdb18 100644 --- a/Source/cmTryRunCommand.cxx +++ b/Source/cmTryRunCommand.cxx @@ -26,6 +26,11 @@ bool cmTryRunCommand::InitialPass(std::vector const& argv) return false; } + if ( m_Makefile->GetLocal() ) + { + return true; + } + // build an arg list for TryCompile and extract the runArgs std::vector tryCompile; std::string runArgs; @@ -98,7 +103,8 @@ bool cmTryRunCommand::InitialPass(std::vector 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); } }