diff options
-rw-r--r-- | Source/cmCacheManager.cxx | 2 | ||||
-rw-r--r-- | Source/cmUnixMakefileGenerator.cxx | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index 3788b00..d183e23 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -111,7 +111,7 @@ bool cmCacheManager::LoadCache(const char* path, const int bsize = 4096; char buffer[bsize]; // input line is: key:type=value - cmRegularExpression reg("(.*):(.*)=(.*)"); + cmRegularExpression reg("^([^:]*):([^=]*)=(.*)$"); while(fin) { // Format is key:type=value diff --git a/Source/cmUnixMakefileGenerator.cxx b/Source/cmUnixMakefileGenerator.cxx index b002400..133398d 100644 --- a/Source/cmUnixMakefileGenerator.cxx +++ b/Source/cmUnixMakefileGenerator.cxx @@ -760,6 +760,13 @@ void cmUnixMakefileGenerator::OutputMakeVariables(std::ostream& fout) "\n" "\n"; std::string replaceVars = variables; + bool dll = cmCacheManager::GetInstance()->IsOn("BUILD_SHARED_LIBS"); + if(!dll) + { + // if not a dll then remove the shlib -fpic flag + m_Makefile->AddDefinition("CMAKE_SHLIB_CFLAGS", ""); + } + m_Makefile->ExpandVariablesInString(replaceVars); fout << replaceVars.c_str(); fout << "CMAKE_CURRENT_SOURCE = " << m_Makefile->GetStartDirectory() << "\n"; |