aboutsummaryrefslogtreecommitdiff
path: root/devtools/create_project/msvc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/create_project/msvc.cpp')
-rw-r--r--devtools/create_project/msvc.cpp40
1 files changed, 31 insertions, 9 deletions
diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp
index b8d2401af9..dbfbcc128d 100644
--- a/devtools/create_project/msvc.cpp
+++ b/devtools/create_project/msvc.cpp
@@ -52,7 +52,7 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) {
if (!solution)
error("Could not open \"" + setup.outputDir + '/' + setup.projectName + ".sln\" for writing");
- solution << "Microsoft Visual Studio Solution File, Format Version " << _version + 1 << ".00\n";
+ solution << "Microsoft Visual Studio Solution File, Format Version " << getSolutionVersion() << ".00\n";
solution << "# Visual Studio " << getVisualStudioVersion() << "\n";
// Write main project
@@ -79,9 +79,11 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) {
"\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n"
"\t\tDebug|Win32 = Debug|Win32\n"
"\t\tAnalysis|Win32 = Analysis|Win32\n"
+ "\t\tLLVM|Win32 = LLVM|Win32\n"
"\t\tRelease|Win32 = Release|Win32\n"
"\t\tDebug|x64 = Debug|x64\n"
"\t\tAnalysis|x64 = Analysis|x64\n"
+ "\t\tLLVM|x64 = LLVM|x64\n"
"\t\tRelease|x64 = Release|x64\n"
"\tEndGlobalSection\n"
"\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n";
@@ -91,12 +93,16 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) {
"\t\t{" << i->second << "}.Debug|Win32.Build.0 = Debug|Win32\n"
"\t\t{" << i->second << "}.Analysis|Win32.ActiveCfg = Analysis|Win32\n"
"\t\t{" << i->second << "}.Analysis|Win32.Build.0 = Analysis|Win32\n"
+ "\t\t{" << i->second << "}.LLVM|Win32.ActiveCfg = LLVM|Win32\n"
+ "\t\t{" << i->second << "}.LLVM|Win32.Build.0 = LLVM|Win32\n"
"\t\t{" << i->second << "}.Release|Win32.ActiveCfg = Release|Win32\n"
"\t\t{" << i->second << "}.Release|Win32.Build.0 = Release|Win32\n"
"\t\t{" << i->second << "}.Debug|x64.ActiveCfg = Debug|x64\n"
"\t\t{" << i->second << "}.Debug|x64.Build.0 = Debug|x64\n"
"\t\t{" << i->second << "}.Analysis|x64.ActiveCfg = Analysis|x64\n"
"\t\t{" << i->second << "}.Analysis|x64.Build.0 = Analysis|x64\n"
+ "\t\t{" << i->second << "}.LLVM|x64.ActiveCfg = LLVM|x64\n"
+ "\t\t{" << i->second << "}.LLVM|x64.Build.0 = LLVM|x64\n"
"\t\t{" << i->second << "}.Release|x64.ActiveCfg = Release|x64\n"
"\t\t{" << i->second << "}.Release|x64.Build.0 = Release|x64\n";
}
@@ -114,12 +120,14 @@ void MSVCProvider::createOtherBuildFiles(const BuildSetup &setup) {
// Create the configuration property files (for Debug and Release with 32 and 64bits versions)
// Note: we use the debug properties for the analysis configuration
- createBuildProp(setup, true, false, false);
- createBuildProp(setup, true, true, false);
- createBuildProp(setup, false, false, false);
- createBuildProp(setup, false, false, true);
- createBuildProp(setup, false, true, false);
- createBuildProp(setup, false, true, true);
+ createBuildProp(setup, true, false, "Release");
+ createBuildProp(setup, true, true, "Release");
+ createBuildProp(setup, false, false, "Debug");
+ createBuildProp(setup, false, true, "Debug");
+ createBuildProp(setup, false, false, "Analysis");
+ createBuildProp(setup, false, true, "Analysis");
+ createBuildProp(setup, false, false, "LLVM");
+ createBuildProp(setup, false, true, "LLVM");
}
void MSVCProvider::createGlobalProp(const BuildSetup &setup) {
@@ -149,18 +157,32 @@ void MSVCProvider::createGlobalProp(const BuildSetup &setup) {
outputGlobalPropFile(setup, properties, 64, x64Defines, convertPathToWin(setup.filePrefix), setup.runBuildEvents);
}
+int MSVCProvider::getSolutionVersion() {
+ return _version + 1;
+}
+
std::string MSVCProvider::getPreBuildEvent() const {
std::string cmdLine = "";
cmdLine = "@echo off\n"
"echo Executing Pre-Build script...\n"
- "echo.\n"
- "@call &quot;$(SolutionDir)../../devtools/create_project/scripts/prebuild.cmd&quot; &quot;$(SolutionDir)/../..&quot; &quot;$(TargetDir)&quot;\n"
+ "echo.\n"
+ "@call &quot;$(SolutionDir)../../devtools/create_project/scripts/prebuild.cmd&quot; &quot;$(SolutionDir)/../..&quot; &quot;$(TargetDir)&quot;\n"
"EXIT /B0";
return cmdLine;
}
+std::string MSVCProvider::getTestPreBuildEvent(const BuildSetup &setup) const {
+ // Build list of folders containing tests
+ std::string target = "";
+
+ for (StringList::const_iterator it = setup.testDirs.begin(); it != setup.testDirs.end(); ++it)
+ target += " $(SolutionDir)" + *it + "*.h";
+
+ return "&quot;$(SolutionDir)../../test/cxxtest/cxxtestgen.py&quot; --runner=ParenPrinter --no-std --no-eh -o $(SolutionDir)test_runner.cpp" + target;
+}
+
std::string MSVCProvider::getPostBuildEvent(bool isWin32, bool createInstaller) const {
std::string cmdLine = "";