Farid.
------------------------------------------------------------------------
Index: data.js
===================================================================
--- data.js (revision 429988)
+++ data.js (working copy)
@@ -156,6 +156,42 @@
, confMTReleaseDllName);
///////////////////////////////////////////////////////////////////
+// Utils template project
+var projectUtilsName = "Utils";
+
+var projectConfUtilsDebugStatic =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confDebugStaticName);
+
+var projectConfUtilsReleaseStatic =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confReleaseStaticName);
+
+var projectConfUtilsMTDebugStatic =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confMTDebugStaticName);
+
+var projectConfUtilsMTReleaseStatic =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confMTReleaseStaticName);
+
+var projectConfUtilsDebugDll =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confDebugDllName);
+
+var projectConfUtilsReleaseDll =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confReleaseDllName);
+
+var projectConfUtilsMTDebugDll =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confMTDebugDllName);
+
+var projectConfUtilsMTReleaseDll =
+ new ProjectConfiguration(projectUtilsName, platformWin32Name
+ , confMTReleaseDllName);
+
+///////////////////////////////////////////////////////////////////
// rwtest project
var projectRwTestName = ".rwtest";
@@ -288,6 +324,10 @@
projectConfTestsDebugStatic);
solutionConfDebugStatic.projectConfigurations.add(
+ projectConfUtilsDebugStatic.projectName,
+ projectConfUtilsDebugStatic);
+
+solutionConfDebugStatic.projectConfigurations.add(
projectConfRunExamplesDebugStatic.projectName,
projectConfRunExamplesDebugStatic);
@@ -317,6 +357,10 @@
projectConfTestsReleaseStatic);
solutionConfReleaseStatic.projectConfigurations.add(
+ projectConfUtilsReleaseStatic.projectName,
+ projectConfUtilsReleaseStatic);
+
+solutionConfReleaseStatic.projectConfigurations.add(
projectConfRunExamplesReleaseStatic.projectName,
projectConfRunExamplesReleaseStatic);
@@ -345,6 +389,10 @@
projectConfTestsMTDebugStatic);
solutionConfMTDebugStatic.projectConfigurations.add(
+ projectConfUtilsMTDebugStatic.projectName,
+ projectConfUtilsMTDebugStatic);
+
+solutionConfMTDebugStatic.projectConfigurations.add(
projectConfRunExamplesMTDebugStatic.projectName,
projectConfRunExamplesMTDebugStatic);
@@ -373,6 +421,10 @@
projectConfTestsMTReleaseStatic);
solutionConfMTReleaseStatic.projectConfigurations.add(
+ projectConfUtilsMTReleaseStatic.projectName,
+ projectConfUtilsMTReleaseStatic);
+
+solutionConfMTReleaseStatic.projectConfigurations.add(
projectConfRunExamplesMTReleaseStatic.projectName,
projectConfRunExamplesMTReleaseStatic);
@@ -401,6 +453,10 @@
projectConfTestsDebugDll);
solutionConfDebugDll.projectConfigurations.add(
+ projectConfUtilsDebugDll.projectName,
+ projectConfUtilsDebugDll);
+
+solutionConfDebugDll.projectConfigurations.add(
projectConfRunExamplesDebugDll.projectName,
projectConfRunExamplesDebugDll);
@@ -429,6 +485,10 @@
projectConfTestsReleaseDll);
solutionConfReleaseDll.projectConfigurations.add(
+ projectConfUtilsReleaseDll.projectName,
+ projectConfUtilsReleaseDll);
+
+solutionConfReleaseDll.projectConfigurations.add(
projectConfRunExamplesReleaseDll.projectName,
projectConfRunExamplesReleaseDll);
@@ -458,6 +518,10 @@
projectConfTestsMTDebugDll);
solutionConfMTDebugDll.projectConfigurations.add(
+ projectConfUtilsMTDebugDll.projectName,
+ projectConfUtilsMTDebugDll);
+
+solutionConfMTDebugDll.projectConfigurations.add(
projectConfRunExamplesMTDebugDll.projectName,
projectConfRunExamplesMTDebugDll);
@@ -486,6 +550,10 @@
projectConfTestsMTReleaseDll);
solutionConfMTReleaseDll.projectConfigurations.add(
+ projectConfUtilsMTReleaseDll.projectName,
+ projectConfUtilsMTReleaseDll);
+
+solutionConfMTReleaseDll.projectConfigurations.add(
projectConfRunExamplesMTReleaseDll.projectName,
projectConfRunExamplesMTReleaseDll);
@@ -537,6 +605,9 @@
projectTests.dependencies.add(projectRwTestName, projectRwTest);
solution.projects.add(projectTests.name, projectTests);
+var projectUtils = new Project(projectUtilsName);
+solution.projects.add(projectUtils.name, projectUtils);
+
var projectRunExamples = new Project(projectRunExamplesName);
solution.projects.add(projectRunExamples.name, projectRunExamples);
@@ -735,6 +806,66 @@
confTstMTReleaseDll.name, confTstMTReleaseDll);
+// for utils
+projectUtils.platforms.add(platformWin32Ex.name, platformWin32Ex);
+
+var confUtlDebugStatic =
+ new Configuration(
+ confDebugStaticName, configTypeExe,
+ confDebugStaticOut, confDebugStaticOut);
+platformWin32Ex.configurations.add(
+ confUtlDebugStatic.name, confUtlDebugStatic);
+
+var confUtlReleaseStatic =
+ new Configuration(
+ confReleaseStaticName, configTypeExe,
+ confReleaseStaticOut, confReleaseStaticOut);
+platformWin32Ex.configurations.add(
+ confUtlReleaseStatic.name, confUtlReleaseStatic);
+
+var confUtlMTDebugStatic =
+ new Configuration(
+ confMTDebugStaticName, configTypeExe,
+ confMTDebugStaticOut, confMTDebugStaticOut);
+platformWin32Ex.configurations.add(
+ confUtlMTDebugStatic.name, confUtlMTDebugStatic);
+
+var confUtlMTReleaseStatic =
+ new Configuration(
+ confMTReleaseStaticName, configTypeExe,
+ confMTReleaseStaticOut, confMTReleaseStaticOut);
+platformWin32Ex.configurations.add(
+ confUtlMTReleaseStatic.name, confUtlMTReleaseStatic);
+
+var confUtlDebugDll =
+ new Configuration(
+ confDebugDllName, configTypeExe,
+ confDebugDllOut, confDebugDllOut);
+platformWin32Ex.configurations.add(
+ confUtlDebugDll.name, confUtlDebugDll);
+
+var confUtlReleaseDll =
+ new Configuration(
+ confReleaseDllName, configTypeExe,
+ confReleaseDllOut, confReleaseDllOut);
+platformWin32Ex.configurations.add(
+ confUtlReleaseDll.name, confUtlReleaseDll);
+
+var confUtlMTDebugDll =
+ new Configuration(
+ confMTDebugDllName, configTypeExe,
+ confMTDebugDllOut, confMTDebugDllOut);
+platformWin32Ex.configurations.add(
+ confUtlMTDebugDll.name, confUtlMTDebugDll);
+
+var confUtlMTReleaseDll =
+ new Configuration(
+ confMTReleaseDllName, configTypeExe,
+ confMTReleaseDllOut, confMTReleaseDllOut);
+platformWin32Ex.configurations.add(
+ confUtlMTReleaseDll.name, confUtlMTReleaseDll);
+
+
// for rwtest
projectRwTest.platforms.add(platformWin32Rw.name, platformWin32Rw);
------------------------------------------------------------------------
Index: generate.js
===================================================================
--- generate.js (revision 429988)
+++ generate.js (working copy)
@@ -24,10 +24,14 @@
var testsProjectsPrefix = "test_";
var testsProjectFolder = "tests";
+var utilsProjectsPrefix = "utils_";
+var utilsProjectFolder = "util";
+
var defineRWSHARED = "_RWSHARED";
var samplesDir = "examples";
var testsDir = "tests";
+var utilsDir = "util";
var libOutputDir = "..\\lib";
var logFile = null;
@@ -36,6 +40,163 @@
var iccConversionUtility = "ICProjConvert90.exe";
+var srcFilterUUID = "{4FC737F1-C7A5-4376-A066-2A32D752A2FF}";
+var incFilterUUID = "{93995380-89BD-4b04-88EB-625FBE52EBFB}";
+
+function addProject(result, solution, srcDir,
+ projectTemplateName, projectNamePrefix, projectFolder,
+ projectName, projectSrcFiles, projectIncFiles,
+ includeOffset, oldProjects)
+{
+ var justUpdate = false;
+ if (oldProjects != null)
+ {
+ var prjOldTmp = oldProjects[projectName];
+ if (prjOldTmp != null)
+ justUpdate = true;
+ }
+
+ if (justUpdate)
+ {
+ logFile.WriteLine("Checking " + projectName);
+ WScript.Echo(" Checking " + projectName + "...");
+ }
+ else
+ {
+ logFile.WriteLine("Creating " + projectName);
+ WScript.Echo(" Creating " + projectName + "...");
+ }
+
+ var project =
+ solution.projects[projectTemplateName].shallowClone();
+
+ project.name = projectNamePrefix + projectName;
+ project.folder = projectFolder;
+
+ if (justUpdate)
+ project.id = oldProjects[projectName].id;
+ else
+ project.id = createUUID();
+
+ project.dependencies.add(projectStdLibName);
+ project.platforms =
+ solution.projects[projectTemplateName].platforms.clone();
+
+ if (justUpdate)
+ {
+ result.projects.add(projectName, project);
+ return;
+ }
+
+ if (projectSrcFiles && 0 < projectSrcFiles.length)
+ {
+ var filter = new Filter("Source Files");
+ filter.filter = "cpp;c;cxx;s;cc";
+ filter.id = srcFilterUUID;
+
+ for (i = 0; i < projectSrcFiles.length; ++i)
+ {
+ var fileName = projectSrcFiles[i];
+ filter.sourceFiles.add(fileName, false);
+ }
+
+ project.sourceFiles.add(filter.name, filter);
+ }
+
+ if (projectIncFiles && 0 < projectIncFiles.length)
+ {
+ var filter = new Filter("Header Files");
+ filter.filter = "h;hpp;hxx";
+ filter.id = incFilterUUID;
+
+ for (i = 0; i < projectIncFiles.length; ++i)
+ {
+ var fileName = projectIncFiles[i];
+ filter.sourceFiles.add(fileName, false);
+ }
+
+ project.sourceFiles.add(filter.name, filter);
+ }
+
+ for (i in project.platforms)
+ {
+ var platform = project.platforms[i];
+ if (! platform || ! platform.configurations)
+ {
+ continue;
+ }
+
+ for (j in platform.configurations)
+ {
+ var config = platform.configurations[j];
+ if (! config || ! config.tools)
+ {
+ continue;
+ }
+
+ var oldCompiler = config.tools[compilerToolName];
+ var newCompiler = oldCompiler.clone();
+ for (k in oldCompiler.includeDirectories)
+ {
+ if (!oldCompiler.includeDirectories[k])
+ {
+ newCompiler.includeDirectories.func_remove(k);
+ }
+ }
+
+ for (m in oldCompiler.includeDirectories)
+ {
+ if (!oldCompiler.includeDirectories[m])
+ {
+ var findex = m.indexOf(varSign);
+ if (findex == 0)
+ {
+ newCompiler.includeDirectories.add(
+ varSign + includeOffset +
+ m.substr(varSign.length));
+ }
+ else
+ {
+ newCompiler.includeDirectories.add(
+ includeOffset + m);
+ }
+ }
+ }
+
+ var postBuildTool = config.tools[postBuildToolName];
+ if (postBuildTool)
+ {
+ if (true == copyDll)
+ {
+ var libPrj = result.projects[projectStdLibName];
+ var libPlatform = libPrj.platforms[platform.name];
+ var libConfig =
+ libPlatform.configurations[config.name];
+ var dllName =
+ libConfig.tools[linkerToolName].outputFile;
+ var cmdCopyDll = "copy /Y " + includeOffset +
+ "..\\lib" + "\\" + dllName + " $(OutDir)\\" +
+ dllName;
+
+ postBuildTool.commands.func_remove(varCmdCopyDll);
+ postBuildTool.commands.add(
+ varCmdCopyDll, cmdCopyDll);
+ }
+ else
+ {
+ config.tools.func_remove(postBuildToolName);
+ }
+ }
+
+ config.tools.func_remove(compilerToolName);
+ config.tools.add(compilerToolName, newCompiler);
+ }
+ }
+
+ result.projects.add(projectName, project);
+ logFile.WriteLine(projectName + " created");
+}
+
function fillProjectsFromFolders(result, solution, srcDir,
projectTemplateName, projectNamePrefix, projectFolder,
includeOffset, excludedFolders, excludedFiles,
@@ -62,8 +223,6 @@
oldProjects);
}
- var libPrj = result.projects[projectStdLibName];
-
var rx = new RegExp("^.+\\.(?:cpp)$", "i");
var enumFiles = new Enumerator(folder.Files);
for (; !enumFiles.atEnd(); enumFiles.moveNext())
@@ -77,126 +236,12 @@
}
var lastPoint = fileName.lastIndexOf(".");
- var prjName = projectNamePrefix + fileName.substr(0, lastPoint);
var pureName = fileName.substr(0, lastPoint);
-
- var justUpdate = false;
- if (oldProjects != null)
- {
- var prjOldTmp = oldProjects[pureName];
- if (prjOldTmp != null)
- justUpdate = true;
- }
-
- if (justUpdate)
- {
- logFile.WriteLine("Checking " + pureName);
- WScript.Echo(" Checking " + pureName + "...");
- }
- else
- {
- logFile.WriteLine("Creating " + pureName);
- WScript.Echo(" Creating " + pureName + "...");
- }
-
- var project =
- solution.projects[projectTemplateName].shallowClone();
- project.name = prjName;
- project.folder = projectFolder;
-
- if (justUpdate)
- project.id = oldProjects[pureName].id;
- else
- project.id = createUUID();
-
- project.dependencies.add(projectStdLibName);
- project.platforms =
- solution.projects[projectTemplateName].platforms.clone();
-
- if (justUpdate)
- {
- result.projects.add(pureName, project);
- continue;
- }
-
- project.sourceFiles.add(fileName, false);
-
- for (i in project.platforms)
- {
- var platform = project.platforms[i];
- if (! platform || ! platform.configurations)
- {
- continue;
- }
-
- for (j in platform.configurations)
- {
- var config = platform.configurations[j];
- if (! config || ! config.tools)
- {
- continue;
- }
-
- var oldCompiler = config.tools[compilerToolName];
- var newCompiler = oldCompiler.clone();
- for (k in oldCompiler.includeDirectories)
- {
- if (!oldCompiler.includeDirectories[k])
- {
- newCompiler.includeDirectories.func_remove(k);
- }
- }
-
- for (m in oldCompiler.includeDirectories)
- {
- if (!oldCompiler.includeDirectories[m])
- {
- var findex = m.indexOf(varSign);
- if (findex == 0)
- {
- newCompiler.includeDirectories.add(
- varSign + includeOffset +
- m.substr(varSign.length));
- }
- else
- {
- newCompiler.includeDirectories.add(
- includeOffset + m);
- }
- }
- }
-
- var postBuildTool = config.tools[postBuildToolName];
- if (postBuildTool)
- {
- if (true == copyDll)
- {
- var libPlatform = libPrj.platforms[platform.name];
- var libConfig =
- libPlatform.configurations[config.name];
- var dllName =
- libConfig.tools[linkerToolName].outputFile;
- var cmdCopyDll = "copy /Y " + includeOffset +
- "..\\lib" + "\\" + dllName + " $(OutDir)\\" +
- dllName;
-
- postBuildTool.commands.func_remove(varCmdCopyDll);
- postBuildTool.commands.add(
- varCmdCopyDll, cmdCopyDll);
- }
- else
- {
- config.tools.func_remove(postBuildToolName);
- }
- }
-
- config.tools.func_remove(compilerToolName);
- config.tools.add(compilerToolName, newCompiler);
- }
- }
-
- result.projects.add(pureName, project);
- logFile.WriteLine(pureName + " created");
+ var srcFiles = new Array(fileName);
+ var incFiles = new Array;
+ addProject(result, solution, srcDir,
+ projectTemplateName, projectNamePrefix, projectFolder,
+ pureName, srcFiles, incFiles, includeOffset, oldProjects);
}
}
}
@@ -235,6 +280,104 @@
}
+// checks if all files in files array are exists in folder srcDir
+function CheckFiles(srcDir, files, projectName)
+{
+ if (!files || 0 >= files.length)
+ return;
+
+ for (i = 0; i < files.length; ++i)
+ {
+ var fileName = srcDir + "\\" + files[i];
+ if (!fso.FileExists(fileName))
+ {
+ WScript.StdErr.WriteLine("Generate: Fatal error: "
+ + "File "+ fileName + " of project "
+ + projectName + " does not exist");
+ WScript.Quit(3);
+ }
+ }
+}
+
+
+// creates utils projects in a real solution
+function fillSolutionWithUtils(result, solution, srcDir, oldProjects)
+{
+ var utlDir = srcDir + utilsDir;
+
+ var includeOffset = "";
+
+ // generate exec.vcproj
+ {
+ var projectName = "exec";
+
+ var srcFiles = new Array("cmdopt.cpp", "exec.cpp",
+ "output.cpp", "runall.cpp", "util.cpp");
+
+ CheckFiles(utlDir, srcFiles, projectName);
+
+ var incFiles = new Array("exec.h", "cmdopt.h",
+ "output.h", "util.h");
+
+ CheckFiles(utlDir, incFiles, projectName);
+
+ addProject(result, solution, utlDir,
+ projectUtilsName, utilsProjectsPrefix, utilsDir,
+ projectName, srcFiles, incFiles,
+ includeOffset, oldProjects);
+ }
+
+ // iconv.cpp
+ // generate localedef.vcproj
+ {
+ var projectName = "localedef";
+
+ var srcFiles = new Array("aliases.cpp", "charmap.cpp",
+ "codecvt.cpp", "collate.cpp", "ctype.cpp", "def.cpp",
+ "diagnostic.cpp", "localedef.cpp", "messages.cpp",
+ "monetary.cpp", "numeric.cpp", "path.cpp", "scanner.cpp",
+ "time.cpp");
+
+ CheckFiles(utlDir, srcFiles, projectName);
+
+ var incFiles = new Array("aliases.h", "charmap.h",
+ "def.h", "diagnostic.h", "loc_exception.h",
+ "localedef.h", "path.h", "scanner.h");
+
+ CheckFiles(utlDir, incFiles, projectName);
+
+ addProject(result, solution, utlDir,
+ projectUtilsName, utilsProjectsPrefix, utilsDir,
+ projectName, srcFiles, incFiles,
+ includeOffset, oldProjects);
+ }
+
+ // generate locale.vcproj
+ {
+ var projectName = "locale";
+
+ var srcFiles = new Array("aliases.cpp", "charmap.cpp",
+ "codecvt.cpp", "collate.cpp", "ctype.cpp", "def.cpp",
+ "diagnostic.cpp", "locale.cpp", "memchk.cpp",
+ "messages.cpp", "monetary.cpp", "numeric.cpp",
+ "path.cpp", "scanner.cpp", "time.cpp");
+
+ CheckFiles(utlDir, srcFiles, projectName);
+
+ var incFiles = new Array("aliases.h", "charmap.h",
+ "def.h", "diagnostic.h", "loc_exception.h",
+ "memchk.h", "path.h", "scanner.h");
+
+ CheckFiles(utlDir, incFiles, projectName);
+
+ addProject(result, solution, utlDir,
+ projectUtilsName, utilsProjectsPrefix, utilsDir,
+ projectName, srcFiles, incFiles,
+ includeOffset, oldProjects);
+ }
+}
+
+
function updateSolutionProjectConfiguration(result,
projectTemplateName, projectNamePrefix)
{
@@ -382,7 +525,8 @@
}
if (projName == projectExamplesName ||
- projName == projectTestsName)
+ projName == projectTestsName ||
+ projName == projectUtilsName)
{
continue;
}
@@ -663,7 +807,7 @@
WScript.Echo("Library and configure projects are created");
logFile.WriteLine("Library and configure projects are created");
-
+
logFile.WriteLine("Creating examples");
WScript.Echo("Creating examples...");
fillSolutionWithSamples(result, solution, srcDir, null);
@@ -681,11 +825,21 @@
logFile.WriteLine("Configuring tests");
updateSolutionProjectConfiguration(result,
projectTestsName, testsProjectsPrefix);
+
+ logFile.WriteLine("Creating utils");
+ WScript.Echo("Creating utils...");
+ fillSolutionWithUtils(result, solution, srcDir, null);
+ WScript.Echo("Configuring utils...");
+ logFile.WriteLine("Configuring utils");
+ updateSolutionProjectConfiguration(result,
+ projectUtilsName, utilsProjectsPrefix);
+
logFile.WriteLine("Clearing temporary data");
WScript.Echo("Clearing temporary data...");
removeProjectTemplates(result, projectExamplesName);
removeProjectTemplates(result, projectTestsName);
+ removeProjectTemplates(result, projectUtilsName);
return result;
}
@@ -694,7 +848,7 @@
{
var filter = createFilter(projectDir, offsetDir,
"Source Files", "cpp;c;cxx;s;cc", /^.+\.cc|.+\.c$/i);
- filter.id = "{4FC737F1-C7A5-4376-A066-2A32D752A2FF}";
+ filter.id = srcFilterUUID;
return filter;
}
@@ -702,7 +856,7 @@
{
var filter = createFilter(projectDir, offsetDir,
"Source Files", "cpp;cxx;s", /^.+\.cc|.+\.c$/i);
- filter.id = "{4FC737F1-C7A5-4376-A066-2A32D752A2FF}";
+ filter.id = srcFilterUUID;
return filter;
}
@@ -710,7 +864,7 @@
{
var filter = createFilter(projectDir, offsetDir,
"Header Files", "h;hpp;hxx;c;cc", /^.+\.cc?/i);
- filter.id = "{93995380-89BD-4b04-88EB-625FBE52EBFB}";
+ filter.id = incFilterUUID;
return filter;
}
@@ -723,7 +877,7 @@
{
var filter = createFilter(projectDir, offsetDir,
"Source Files", "cpp;c;cxx;s;cc", /^.+\.cc|.+\.c|.+\.cpp|.+\.cxx$/i);
- filter.id = "{4FC737F1-C7A5-4376-A066-2A32D752A2FF}";
+ filter.id = srcFilterUUID;
return filter;
}
@@ -731,7 +885,7 @@
{
var filter = createFilter(projectDir, offsetDir,
"Header Files", "h;hpp;hxx", /^.+\.cc|.+\.c|.+\.hpp|.+\.hxx$/i);
- filter.id = "{93995380-89BD-4b04-88EB-625FBE52EBFB}";
+ filter.id = incFilterUUID;
return filter;
}
@@ -962,7 +1116,8 @@
}
if (projName == projectExamplesName ||
- projName == projectTestsName)
+ projName == projectTestsName ||
+ projName == projectUtilsName)
{
continue;
}
@@ -1079,10 +1234,20 @@
updateSolutionProjectConfiguration(result,
projectTestsName, testsProjectsPrefix);
+ logFile.WriteLine("Checking utils");
+ WScript.Echo("Checking utils...");
+ fillSolutionWithUtils(result, solution, srcDir, oldProjects);
+
+ WScript.Echo("Configuring utils...");
+ logFile.WriteLine("Configuring utils");
+ updateSolutionProjectConfiguration(result,
+ projectUtilsName, utilsProjectsPrefix);
+
logFile.WriteLine("Clearing temporary data");
WScript.Echo("Clearing temporary data...");
removeProjectTemplates(result, projectExamplesName);
removeProjectTemplates(result, projectTestsName);
+ removeProjectTemplates(result, projectUtilsName);
return result;
}
------------------------------------------------------------------------
Index: generate.wsf
===================================================================
--- generate.wsf (revision 429988)
+++ generate.wsf (working copy)
@@ -66,6 +66,7 @@
var libsrcDir = "\\src";
var libDir = "\\lib";
var testsDir = "\\tests";
+var utilsDir = "\\util";
var winconfigDir = "\\etc\\config\\windows";
var etcDir = "\\etc";
var configDir = "\\etc\\config";
@@ -272,6 +273,9 @@
if (! fso.FolderExists(builddir + testsDir))
fso.CreateFolder(builddir + testsDir);
+ if (! fso.FolderExists(builddir + utilsDir))
+ fso.CreateFolder(builddir + utilsDir);
+
if (! fso.FolderExists(builddir + libsrcDir))
fso.CreateFolder(builddir + libsrcDir);
------------------------------------------------------------------------
Index: icc-config.js
===================================================================
--- icc-config.js (revision 429988)
+++ icc-config.js (working copy)
@@ -54,6 +54,10 @@
compilerICC90Release, linkerICCDebug, linkerICCRelease,
librarianICC, customICC, postICC);
+ configureToolsUtils(icc90SolutionName, compilerICC90Debug,
+ compilerICC90Release, linkerICCDebug, linkerICCRelease,
+ librarianICC, customICC, postICC);
+
configureToolsRwTest(icc90SolutionName, compilerICC90Debug,
compilerICC90Release, linkerICCDebug, linkerICCRelease,
librarianICC, customICC, postICC);
------------------------------------------------------------------------
Index: msvc-config.js
===================================================================
--- msvc-config.js (revision 429988)
+++ msvc-config.js (working copy)
@@ -18,6 +18,9 @@
var testsBaseAnsiIncludeDir = "..\\include\\ansi";
var testsIncludeDir = "include";
+var utilsBaseIncludeDir = "..\\include";
+var utilsBaseAnsiIncludeDir = "..\\include\\ansi";
+
// defines
var defineRWSHARED = "_RWSHARED";
var defineRWSTD_TEST_SRC = "_RWSTD_TEST_SRC";
@@ -459,6 +462,140 @@
}
+function configureToolsUtils( solutionName,
+ compilerDebug, compilerRelease,
+ linkerDebug, linkerRelease,
+ librarianTool, customTool,
+ postBuildTool)
+{
+ var compilerDebugUtils = compilerDebug.clone();
+ var compilerReleaseUtils = compilerRelease.clone();
+ var linkerDebugUtils = linkerDebug.clone();
+ var linkerReleaseUtils = linkerRelease.clone();
+
+ var postUtilsDll = postBuildTool.clone();
+ postUtilsDll.commands.add(varCmdCopyDll, varCmdCopyDll);
+
+ compilerDebugUtils.includeDirectories.add(utilsBaseIncludeDir);
+ compilerDebugUtils.includeDirectories.add(utilsBaseAnsiIncludeDir);
+
+ compilerReleaseUtils.includeDirectories.add(utilsBaseIncludeDir);
+ compilerReleaseUtils.includeDirectories.add(utilsBaseAnsiIncludeDir);
+
+ var solutionCfg = getSolution(solutionName);
+ var utilsProj = solutionCfg.projects.get(projectUtilsName);
+ var platform = utilsProj.platforms.get(platformWin32Name);
+
+ // debug static
+ var compilerDebugStaticUtl = compilerDebugUtils.clone();
+ compilerDebugStaticUtl.runtime = "SINGLEDEBUG";
+ compilerDebugStaticUtl.defines.add(defineRWSTDDEBUG);
+
+ var configuration = platform.configurations.get(confDebugStaticName);
+ compilerDebugStaticUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ configuration.tools.add(compilerToolName, compilerDebugStaticUtl);
+ configuration.tools.add(linkerToolName, linkerDebugUtils);
+
+ // release static
+ var compilerReleaseStaticUtl = compilerReleaseUtils.clone();
+ compilerReleaseStaticUtl.runtime = "SINGLE";
+
+ var configuration = platform.configurations.get(confReleaseStaticName);
+ compilerReleaseStaticUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ configuration.tools.add(compilerToolName, compilerReleaseStaticUtl);
+ configuration.tools.add(linkerToolName, linkerReleaseUtils);
+
+ // debug multi-threaded static
+ var compilerMTDebugStaticUtl = compilerDebugUtils.clone();
+ compilerMTDebugStaticUtl.runtime = "MULTIDEBUG";
+ compilerMTDebugStaticUtl.defines.add(defineRWSTDDEBUG);
+
+ var configuration = platform.configurations.get(confMTDebugStaticName);
+ compilerMTDebugStaticUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ configuration.tools.add(compilerToolName, compilerMTDebugStaticUtl);
+ configuration.tools.add(linkerToolName, linkerDebugUtils);
+
+ // release multi-threaded static
+ var compilerMTReleaseStaticUtl = compilerReleaseUtils.clone();
+ compilerMTReleaseStaticUtl.runtime = "MULTI";
+
+ var configuration = platform.configurations.get(confMTReleaseStaticName);
+ compilerMTReleaseStaticUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ configuration.tools.add(compilerToolName, compilerMTReleaseStaticUtl);
+ configuration.tools.add(linkerToolName, linkerReleaseUtils);
+
+ // debug dll
+ var compilerDebugDllUtl = compilerDebugUtils.clone();
+ compilerDebugDllUtl.runtime = "SINGLEDEBUG";
+ compilerDebugDllUtl.defines.add(defineRWSHARED);
+ compilerDebugDllUtl.defines.add(defineRWSTDDEBUG);
+
+ var configuration = platform.configurations.get(confDebugDllName);
+ compilerDebugDllUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ var postUtilsDebugDll = postUtilsDll.clone();
+
+ configuration.tools.add(compilerToolName, compilerDebugDllUtl);
+ configuration.tools.add(linkerToolName, linkerDebugUtils);
+ configuration.tools.add(postBuildToolName, postUtilsDebugDll);
+
+ // release dll
+ var compilerReleaseDllUtl = compilerReleaseUtils.clone();
+ compilerReleaseDllUtl.runtime = "SINGLE";
+ compilerReleaseDllUtl.defines.add(defineRWSHARED);
+
+ var configuration = platform.configurations.get(confReleaseDllName);
+ compilerReleaseDllUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ var postUtilsReleaseDll = postUtilsDll.clone();
+
+ configuration.tools.add(compilerToolName, compilerReleaseDllUtl);
+ configuration.tools.add(linkerToolName, linkerReleaseUtils);
+ configuration.tools.add(postBuildToolName, postUtilsReleaseDll);
+
+ // debug multi-threaded dll
+ var compilerMTDebugDllUtl = compilerDebugUtils.clone();
+ compilerMTDebugDllUtl.runtime = "MultiDebugDll";
+ compilerMTDebugDllUtl.defines.add(defineRWSHARED);
+ compilerMTDebugDllUtl.defines.add(defineRWSTDDEBUG);
+
+ var configuration = platform.configurations.get(confMTDebugDllName);
+ compilerMTDebugDllUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ var postUtilsMTDebugDll = postUtilsDll.clone();
+
+ configuration.tools.add(compilerToolName, compilerMTDebugDllUtl);
+ configuration.tools.add(linkerToolName, linkerDebugUtils);
+ configuration.tools.add(postBuildToolName, postUtilsMTDebugDll);
+
+ // release multi-threaded dll
+ var compilerMTReleaseDllUtl = compilerReleaseUtils.clone();
+ compilerMTReleaseDllUtl.runtime = "MULTIDLL";
+ compilerMTReleaseDllUtl.defines.add(defineRWSHARED);
+
+ var configuration = platform.configurations.get(confMTReleaseDllName);
+ compilerMTReleaseDllUtl.includeDirectories.add(
+ varSign + utilsBaseIncludeDir + "/" + configuration.outputDir);
+
+ var postUtilsMTReleaseDll = postUtilsDll.clone();
+
+ configuration.tools.add(compilerToolName, compilerMTReleaseDllUtl);
+ configuration.tools.add(linkerToolName, linkerReleaseUtils);
+ configuration.tools.add(postBuildToolName, postUtilsMTReleaseDll);
+}
+
+
function configureToolsRwTest( solutionName,
compilerDebug, compilerRelease,
linkerDebug, linkerRelease,
@@ -751,6 +888,10 @@
compilerVC71Release, linkerVCDebug, linkerVCRelease,
librarianVC, customVC, postVC);
+ configureToolsUtils(vc71SolutionName, compilerVC71Debug,
+ compilerVC71Release, linkerVCDebug, linkerVCRelease,
+ librarianVC, customVC, postVC);
+
configureToolsRwTest(vc71SolutionName, compilerVC71Debug,
compilerVC71Release, linkerVCDebug, linkerVCRelease,
librarianVC, customVC, postVC);
@@ -815,6 +956,10 @@
compilerVC80Release, linkerVCDebug, linkerVCRelease,
librarianVC, customVC, postVC);
+ configureToolsUtils(vc80SolutionName, compilerVC80Debug,
+ compilerVC80Release, linkerVCDebug, linkerVCRelease,
+ librarianVC, customVC, postVC);
+
configureToolsRwTest(vc80SolutionName, compilerVC80Debug,
compilerVC80Release, linkerVCDebug, linkerVCRelease,
librarianVC, customVC, postVC);