|
|
@@ -1701,15 +1701,15 @@ void cmLocalVisualStudio6Generator
|
|
|
= this->Makefile->GetDefinition("CMAKE_DEBUG_POSTFIX");
|
|
|
cmSystemTools::ReplaceString(line, "DEBUG_POSTFIX",
|
|
|
debugPostfix?debugPostfix:"");
|
|
|
- // store flags for each configuration
|
|
|
- std::string flags = " ";
|
|
|
- std::string flagsRelease = " ";
|
|
|
- std::string flagsMinSizeRel = " ";
|
|
|
- std::string flagsDebug = " ";
|
|
|
- std::string flagsRelWithDebInfo = " ";
|
|
|
if(target.GetType() >= cmTarget::EXECUTABLE &&
|
|
|
target.GetType() <= cmTarget::OBJECT_LIBRARY)
|
|
|
{
|
|
|
+ // store flags for each configuration
|
|
|
+ std::string flags = " ";
|
|
|
+ std::string flagsRelease = " ";
|
|
|
+ std::string flagsMinSizeRel = " ";
|
|
|
+ std::string flagsDebug = " ";
|
|
|
+ std::string flagsRelWithDebInfo = " ";
|
|
|
std::vector<std::string> configs;
|
|
|
target.GetMakefile()->GetConfigurations(configs);
|
|
|
std::vector<std::string>::const_iterator it = configs.begin();
|
|
|
@@ -1760,72 +1760,77 @@ void cmLocalVisualStudio6Generator
|
|
|
"MinSizeRel");
|
|
|
this->AddCompileOptions(flagsRelWithDebInfo, &target, linkLanguage,
|
|
|
"RelWithDebInfo");
|
|
|
- }
|
|
|
|
|
|
- // if _UNICODE and _SBCS are not found, then add -D_MBCS
|
|
|
- std::string defs = this->Makefile->GetDefineFlags();
|
|
|
- if(flags.find("D_UNICODE") == flags.npos &&
|
|
|
- defs.find("D_UNICODE") == flags.npos &&
|
|
|
- flags.find("D_SBCS") == flags.npos &&
|
|
|
- defs.find("D_SBCS") == flags.npos)
|
|
|
- {
|
|
|
- flags += " /D \"_MBCS\"";
|
|
|
- }
|
|
|
+ // if _UNICODE and _SBCS are not found, then add -D_MBCS
|
|
|
+ std::string defs = this->Makefile->GetDefineFlags();
|
|
|
+ if(flags.find("D_UNICODE") == flags.npos &&
|
|
|
+ defs.find("D_UNICODE") == flags.npos &&
|
|
|
+ flags.find("D_SBCS") == flags.npos &&
|
|
|
+ defs.find("D_SBCS") == flags.npos)
|
|
|
+ {
|
|
|
+ flags += " /D \"_MBCS\"";
|
|
|
+ }
|
|
|
|
|
|
- // Add per-target and per-configuration preprocessor definitions.
|
|
|
- std::set<std::string> definesSet;
|
|
|
- std::set<std::string> debugDefinesSet;
|
|
|
- std::set<std::string> releaseDefinesSet;
|
|
|
- std::set<std::string> minsizeDefinesSet;
|
|
|
- std::set<std::string> debugrelDefinesSet;
|
|
|
-
|
|
|
- this->AddCompileDefinitions(definesSet, &target, "");
|
|
|
- this->AddCompileDefinitions(debugDefinesSet, &target, "DEBUG");
|
|
|
- this->AddCompileDefinitions(releaseDefinesSet, &target, "RELEASE");
|
|
|
- this->AddCompileDefinitions(minsizeDefinesSet, &target, "MINSIZEREL");
|
|
|
- this->AddCompileDefinitions(debugrelDefinesSet, &target, "RELWITHDEBINFO");
|
|
|
-
|
|
|
- std::string defines = " ";
|
|
|
- std::string debugDefines = " ";
|
|
|
- std::string releaseDefines = " ";
|
|
|
- std::string minsizeDefines = " ";
|
|
|
- std::string debugrelDefines = " ";
|
|
|
-
|
|
|
- this->JoinDefines(definesSet, defines, "");
|
|
|
- this->JoinDefines(debugDefinesSet, debugDefines, "");
|
|
|
- this->JoinDefines(releaseDefinesSet, releaseDefines, "");
|
|
|
- this->JoinDefines(minsizeDefinesSet, minsizeDefines, "");
|
|
|
- this->JoinDefines(debugrelDefinesSet, debugrelDefines, "");
|
|
|
-
|
|
|
- flags += defines;
|
|
|
- flagsDebug += debugDefines;
|
|
|
- flagsRelease += releaseDefines;
|
|
|
- flagsMinSizeRel += minsizeDefines;
|
|
|
- flagsRelWithDebInfo += debugrelDefines;
|
|
|
-
|
|
|
- // The template files have CXX FLAGS in them, that need to be replaced.
|
|
|
- // There are not separate CXX and C template files, so we use the same
|
|
|
- // variable names. The previous code sets up flags* variables to contain
|
|
|
- // the correct C or CXX flags
|
|
|
- cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_MINSIZEREL",
|
|
|
- flagsMinSizeRel.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_DEBUG",
|
|
|
- flagsDebug.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_RELWITHDEBINFO",
|
|
|
- flagsRelWithDebInfo.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_RELEASE",
|
|
|
- flagsRelease.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS", flags.c_str());
|
|
|
-
|
|
|
- cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_MINSIZEREL",
|
|
|
- minsizeDefines.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_DEBUG",
|
|
|
- debugDefines.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_RELWITHDEBINFO",
|
|
|
- debugrelDefines.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_RELEASE",
|
|
|
- releaseDefines.c_str());
|
|
|
- cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS", defines.c_str());
|
|
|
+ // Add per-target and per-configuration preprocessor definitions.
|
|
|
+ std::set<std::string> definesSet;
|
|
|
+ std::set<std::string> debugDefinesSet;
|
|
|
+ std::set<std::string> releaseDefinesSet;
|
|
|
+ std::set<std::string> minsizeDefinesSet;
|
|
|
+ std::set<std::string> debugrelDefinesSet;
|
|
|
+
|
|
|
+ this->AddCompileDefinitions(definesSet, &target, "", linkLanguage);
|
|
|
+ this->AddCompileDefinitions(debugDefinesSet, &target,
|
|
|
+ "DEBUG", linkLanguage);
|
|
|
+ this->AddCompileDefinitions(releaseDefinesSet, &target,
|
|
|
+ "RELEASE", linkLanguage);
|
|
|
+ this->AddCompileDefinitions(minsizeDefinesSet, &target,
|
|
|
+ "MINSIZEREL", linkLanguage);
|
|
|
+ this->AddCompileDefinitions(debugrelDefinesSet, &target,
|
|
|
+ "RELWITHDEBINFO", linkLanguage);
|
|
|
+
|
|
|
+ std::string defines = " ";
|
|
|
+ std::string debugDefines = " ";
|
|
|
+ std::string releaseDefines = " ";
|
|
|
+ std::string minsizeDefines = " ";
|
|
|
+ std::string debugrelDefines = " ";
|
|
|
+
|
|
|
+ this->JoinDefines(definesSet, defines, "");
|
|
|
+ this->JoinDefines(debugDefinesSet, debugDefines, "");
|
|
|
+ this->JoinDefines(releaseDefinesSet, releaseDefines, "");
|
|
|
+ this->JoinDefines(minsizeDefinesSet, minsizeDefines, "");
|
|
|
+ this->JoinDefines(debugrelDefinesSet, debugrelDefines, "");
|
|
|
+
|
|
|
+ flags += defines;
|
|
|
+ flagsDebug += debugDefines;
|
|
|
+ flagsRelease += releaseDefines;
|
|
|
+ flagsMinSizeRel += minsizeDefines;
|
|
|
+ flagsRelWithDebInfo += debugrelDefines;
|
|
|
+
|
|
|
+ // The template files have CXX FLAGS in them, that need to be replaced.
|
|
|
+ // There are not separate CXX and C template files, so we use the same
|
|
|
+ // variable names. The previous code sets up flags* variables to
|
|
|
+ // contain the correct C or CXX flags
|
|
|
+ cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_MINSIZEREL",
|
|
|
+ flagsMinSizeRel.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_DEBUG",
|
|
|
+ flagsDebug.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_RELWITHDEBINFO",
|
|
|
+ flagsRelWithDebInfo.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS_RELEASE",
|
|
|
+ flagsRelease.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "CMAKE_CXX_FLAGS", flags.c_str());
|
|
|
+
|
|
|
+ cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_MINSIZEREL",
|
|
|
+ minsizeDefines.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_DEBUG",
|
|
|
+ debugDefines.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_RELWITHDEBINFO",
|
|
|
+ debugrelDefines.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS_RELEASE",
|
|
|
+ releaseDefines.c_str());
|
|
|
+ cmSystemTools::ReplaceString(line, "COMPILE_DEFINITIONS",
|
|
|
+ defines.c_str());
|
|
|
+ }
|
|
|
|
|
|
fout << line.c_str() << std::endl;
|
|
|
}
|