aboutsummaryrefslogtreecommitdiff
path: root/tools/create_msvc/create_msvc.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2009-12-30 16:04:59 +0000
committerJohannes Schickel2009-12-30 16:04:59 +0000
commit1d2d9ec6aaeddcc189e413be82757fa63cffced4 (patch)
tree81139fae387442e293df9f9db88a28dd83b8b834 /tools/create_msvc/create_msvc.cpp
parent24ac1f63c88f89ca41a71962050c71605b8d2d42 (diff)
downloadscummvm-rg350-1d2d9ec6aaeddcc189e413be82757fa63cffced4.tar.gz
scummvm-rg350-1d2d9ec6aaeddcc189e413be82757fa63cffced4.tar.bz2
scummvm-rg350-1d2d9ec6aaeddcc189e413be82757fa63cffced4.zip
Commit patch 2 "Simplify createBuildProp code" from fr #2891357 "create_msvc: Add support for MSVC10".
svn-id: r46758
Diffstat (limited to 'tools/create_msvc/create_msvc.cpp')
-rw-r--r--tools/create_msvc/create_msvc.cpp138
1 files changed, 34 insertions, 104 deletions
diff --git a/tools/create_msvc/create_msvc.cpp b/tools/create_msvc/create_msvc.cpp
index ebe7bb7536..9c69453eeb 100644
--- a/tools/create_msvc/create_msvc.cpp
+++ b/tools/create_msvc/create_msvc.cpp
@@ -217,8 +217,10 @@ public:
* Generates the project properties for debug and release settings.
*
* @param setup Description of the desired build setup.
+ * @param isRelease Type of property file
+ * @param isWin32 Bitness of property file
*/
- virtual void createBuildProp(const BuildSetup &setup) = 0;
+ virtual void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32) = 0;
/**
* Get the file extension for project files
@@ -282,7 +284,7 @@ public:
void outputGlobalPropFile(std::ofstream &properties, int bits, const std::string &defines, const std::string &prefix);
- void createBuildProp(const BuildSetup &setup);
+ void createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32);
const char *getProjectExtension();
const char *getPropertiesExtension();
@@ -898,8 +900,11 @@ void ProjectProvider::createMSVCProject(const BuildSetup &setup) {
// Create the global property file
createGlobalProp(setup);
- // Create the configuration property files
- createBuildProp(setup);
+ // Create the configuration property files (for Debug and Release with 32 and 64bits versions)
+ createBuildProp(setup, true, false);
+ createBuildProp(setup, true, true);
+ createBuildProp(setup, false, false);
+ createBuildProp(setup, false, true);
}
void ProjectProvider::createScummVMSolution(const BuildSetup &setup) {
@@ -1565,130 +1570,55 @@ void VisualStudioProvider::outputGlobalPropFile(std::ofstream &properties, int b
properties.flush();
}
-void VisualStudioProvider::createBuildProp(const BuildSetup &setup) {
- std::ofstream properties((setup.outputDir + '/' + "ScummVM_Debug" + getPropertiesExtension()).c_str());
+void VisualStudioProvider::createBuildProp(const BuildSetup &setup, bool isRelease, bool isWin32) {
+ const std::string outputType = (isRelease ? "Release" : "Debug");
+ const std::string outputBitness = (isWin32 ? "32" : "64");
+
+ std::ofstream properties((setup.outputDir + '/' + "ScummVM_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension()).c_str());
if (!properties)
- error("Could not open \"" + setup.outputDir + '/' + "ScummVM_Debug" + + getPropertiesExtension() + "\" for writing");
+ error("Could not open \"" + setup.outputDir + '/' + "ScummVM_" + outputType + (isWin32 ? "" : "64") + getPropertiesExtension() + "\" for writing");
properties << "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n"
"<VisualStudioPropertySheet\n"
"\tProjectType=\"Visual C++\"\n"
"\tVersion=\"8.00\"\n"
- "\tName=\"ScummVM_Debug32\"\n"
- "\tInheritedPropertySheets=\".\\ScummVM_Global.vsprops\"\n"
+ "\tName=\"ScummVM_" << outputType << outputBitness << "\"\n"
+ "\tInheritedPropertySheets=\".\\ScummVM_Global" << (isWin32 ? "" : "64") << ".vsprops\"\n"
"\t>\n"
"\t<Tool\n"
- "\t\tName=\"VCCLCompilerTool\"\n"
- "\t\tOptimization=\"0\"\n"
+ "\t\tName=\"VCCLCompilerTool\"\n";
+
+ if (isRelease) {
+ properties << "\t\tEnableIntrinsicFunctions=\"true\"\n"
+ "\t\tWholeProgramOptimization=\"true\"\n"
"\t\tPreprocessorDefinitions=\"WIN32\"\n"
- "\t\tMinimalRebuild=\"true\"\n"
- "\t\tBasicRuntimeChecks=\"3\"\n"
- "\t\tRuntimeLibrary=\"1\"\n"
- "\t\tEnableFunctionLevelLinking=\"true\"\n"
- "\t\tWarnAsError=\"false\"\n"
- "\t\tDebugInformationFormat=\"4\"\n"
+ "\t\tStringPooling=\"true\"\n"
+ "\t\tBufferSecurityCheck=\"false\"\n"
+ "\t\tDebugInformationFormat=\"0\"\n"
"\t/>\n"
"\t<Tool\n"
"\t\tName=\"VCLinkerTool\"\n"
- "\t\tLinkIncremental=\"2\"\n"
- "\t\tGenerateDebugInformation=\"true\"\n"
- "\t\tIgnoreDefaultLibraryNames=\"libcmt.lib\"\n"
- "\t/>\n"
- "</VisualStudioPropertySheet>\n";
-
- properties.flush();
- properties.close();
-
- properties.open((setup.outputDir + '/' + "ScummVM_Debug64" + getPropertiesExtension()).c_str());
- if (!properties)
- error("Could not open \"" + setup.outputDir + '/' + "ScummVM_Debug64" + getPropertiesExtension() + "\" for writing");
-
- properties << "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n"
- "<VisualStudioPropertySheet\n"
- "\tProjectType=\"Visual C++\"\n"
- "\tVersion=\"8.00\"\n"
- "\tName=\"ScummVM_Debug64\"\n"
- "\tInheritedPropertySheets=\".\\ScummVM_Global64.vsprops\"\n"
- "\t>\n"
- "\t<Tool\n"
- "\t\tName=\"VCCLCompilerTool\"\n"
- "\t\tOptimization=\"0\"\n"
+ "\t\tLinkIncremental=\"1\"\n"
+ "\t\tIgnoreDefaultLibraryNames=\"\"\n"
+ "\t\tSetChecksum=\"true\"\n";
+ } else {
+ properties << "\t\tOptimization=\"0\"\n"
"\t\tPreprocessorDefinitions=\"WIN32\"\n"
"\t\tMinimalRebuild=\"true\"\n"
"\t\tBasicRuntimeChecks=\"3\"\n"
"\t\tRuntimeLibrary=\"1\"\n"
"\t\tEnableFunctionLevelLinking=\"true\"\n"
"\t\tWarnAsError=\"false\"\n"
- "\t\tDebugInformationFormat=\"3\"\n" // For x64 format "4" (Edit and continue) is not supported, thus we default to "3"
+ "\t\tDebugInformationFormat=\"" << (isWin32 ? "4" : "3") << "\"\n" // For x64 format "4" (Edit and continue) is not supported, thus we default to "3"
"\t/>\n"
"\t<Tool\n"
"\t\tName=\"VCLinkerTool\"\n"
"\t\tLinkIncremental=\"2\"\n"
"\t\tGenerateDebugInformation=\"true\"\n"
- "\t\tIgnoreDefaultLibraryNames=\"libcmt.lib\"\n"
- "\t/>\n"
- "</VisualStudioPropertySheet>\n";
-
- properties.flush();
- properties.close();
-
- properties.open((setup.outputDir + '/' + "ScummVM_Release" + getPropertiesExtension()).c_str());
- if (!properties)
- error("Could not open \"" + setup.outputDir + '/' + "ScummVM_Release" + getPropertiesExtension() + "\" for writing");
-
- properties << "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n"
- "<VisualStudioPropertySheet\n"
- "\tProjectType=\"Visual C++\"\n"
- "\tVersion=\"8.00\"\n"
- "\tName=\"ScummVM_Release32\"\n"
- "\tInheritedPropertySheets=\".\\ScummVM_Global.vsprops\"\n"
- "\t>\n"
- "\t<Tool\n"
- "\t\tName=\"VCCLCompilerTool\"\n"
- "\t\tEnableIntrinsicFunctions=\"true\"\n"
- "\t\tWholeProgramOptimization=\"true\"\n"
- "\t\tPreprocessorDefinitions=\"WIN32\"\n"
- "\t\tStringPooling=\"true\"\n"
- "\t\tBufferSecurityCheck=\"false\"\n"
- "\t\tDebugInformationFormat=\"0\"\n"
- "\t/>\n"
- "\t<Tool\n"
- "\t\tName=\"VCLinkerTool\"\n"
- "\t\tLinkIncremental=\"1\"\n"
- "\t\tIgnoreDefaultLibraryNames=\"\"\n"
- "\t\tSetChecksum=\"true\"\n"
- "\t/>\n"
- "</VisualStudioPropertySheet>\n";
-
- properties.flush();
- properties.close();
-
- properties.open((setup.outputDir + '/' + "ScummVM_Release64" + getPropertiesExtension()).c_str());
- if (!properties)
- error("Could not open \"" + setup.outputDir + '/' + "ScummVM_Release64" + getPropertiesExtension() + "\" for writing");
+ "\t\tIgnoreDefaultLibraryNames=\"libcmt.lib\"\n";
+ }
- properties << "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n"
- "<VisualStudioPropertySheet\n"
- "\tProjectType=\"Visual C++\"\n"
- "\tVersion=\"8.00\"\n"
- "\tName=\"ScummVM_Release64\"\n"
- "\tInheritedPropertySheets=\".\\ScummVM_Global64.vsprops\"\n"
- "\t>\n"
- "\t<Tool\n"
- "\t\tName=\"VCCLCompilerTool\"\n"
- "\t\tEnableIntrinsicFunctions=\"true\"\n"
- "\t\tWholeProgramOptimization=\"true\"\n"
- "\t\tPreprocessorDefinitions=\"WIN32\"\n"
- "\t\tStringPooling=\"true\"\n"
- "\t\tBufferSecurityCheck=\"false\"\n"
- "\t\tDebugInformationFormat=\"0\"\n"
- "\t/>\n"
- "\t<Tool\n"
- "\t\tName=\"VCLinkerTool\"\n"
- "\t\tLinkIncremental=\"1\"\n"
- "\t\tIgnoreDefaultLibraryNames=\"\"\n"
- "\t\tSetChecksum=\"true\"\n"
- "\t/>\n"
+ properties << "\t/>\n"
"</VisualStudioPropertySheet>\n";
properties.flush();