oops! - looks like my mail editor might have hard wrapped lines in the diff. Here they are as an attachment just in case...
Simon
----- Original Message -----
From: "Simon Keary" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Fw: RE: [nant-dev] How to contribute
Date: Sat, 20 Nov 2004 20:41:16 +0800
>
>
> Hi Gert,
>
> Below is a diff of the changes. If you have any suggestions for improvements or aren't sure of what all the modifications do just let me know.
>
> I think there may also be an additional problem to do with configurations that I haven't fixed. Basically, the
>
> Regards,
> Simon
>
>
> diff -r -w nant-0.85-nightly/src/NAnt.VSNet/ConfigurationBase.cs nantchanges/nant-0.85-nightly/src/NAnt.VSNet/ConfigurationBase.cs
> 155a156,157
> .....
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/ConfigurationBase.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/ConfigurationBase.cs
155a156,157
> case "noinherit":
> return "";
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/ProjectBase.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/ProjectBase.cs
46a47
> _projectDependencies = new ArrayList();
149a151,155
>
> public ArrayList ProjectDependencies {
> get { return _projectDependencies; }
> }
>
390a397
> private ArrayList _projectDependencies;
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/Reference.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/Reference.cs
89a90,93
> string referencedProjectGuid =
> elemReference.Attributes["Project"];
> if (referencedProjectGuid == null) {
> referencedProjectGuid =
> elemReference.Attributes["ReferencedProjectIdentifier"];
> }
91c95
< if (elemReference.Attributes["Project"] != null) {
---
> if (referencedProjectGuid != null) {
98c102
< string projectFile =
solution.GetProjectFileFromGuid(elemReference.GetAttribute("Project"));
---
> string projectFile =
> solution.GetProjectFileFromGuid(referencedProjectGuid);
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/Solution.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/Solution.cs
652a653,663
>
> // Now go through all the project dependencies
> and store them in
> // the project so they are available for later
> use (such as link time).
> string[] dependencies =
> GetProjectDependencies(projectGuid);
>
> foreach (string dependency in dependencies) {
> ProjectBase dependencyProject =
> GetProjectFromGuid(dependency);
> if (dependencyProject != null) {
>
> project.ProjectDependencies.Add(dependencyProject);
> }
> }
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/VcArgumentMap.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/VcArgumentMap.cs
69,85c69,85
< map.AddEnum("AssemblerOutput", null, null, "FA", "FAcs", "FAc",
"FAs");
< map.AddBool("BufferSecurityCheck", "GS");
< map.AddEnum("CompileAs", null, null, "TC", "TP");
< map.AddEnum("DebugInformationFormat", null, null, "Z7", "Zd",
"Zi", "ZI");
< map.AddBool("EnableFunctionLevelLinking", "Gy");
< map.AddBool("EnableIntrinsicFunctions", "Oi");
< map.AddBool("ExceptionHandling", "EHsc");
< map.AddEnum("FavorSizeOrSpeed", null, null, "Ot", "Os");
< map.AddBool("GlobalOptimizations", "Og");
< map.AddEnum("InlineFunctionExpansion", null, "Ob0", "Ob1", "Ob2");
< map.AddBool("OmitFramePointers", "Oy");
< map.AddEnum("Optimization", null, "Od", "O1", "O2", "Ox");
< map.AddEnum("RuntimeLibrary", null, "MT", "MTd", "MD", "MDd",
"ML", "MLd");
< map.AddBool("StringPooling", "GF");
< map.AddEnum("StructMemberAlignment", null, null, "Zp1", "Zp2",
"Zp4", "Zp8", "Zp16");
< map.AddEnum("UsePrecompiledHeader", null, null, "Yc", "YX", "Yu");
< map.AddEnum("WarningLevel", null, "W0", "W1", "W2", "W3", "W4");
---
> map.AddEnum("AssemblerOutput", null, null, "/FA", "/FAcs",
> "/FAc", "/FAs");
> map.AddBool("BufferSecurityCheck", "/GS");
> map.AddEnum("CompileAs", null, null, "/TC", "/TP");
> map.AddEnum("DebugInformationFormat", null, null, "/Z7", "/Zd",
> "/Zi", "/ZI");
> map.AddBool("EnableFunctionLevelLinking", "/Gy");
> map.AddBool("EnableIntrinsicFunctions", "/Oi");
> map.AddBool("ExceptionHandling", "/EHsc");
> map.AddEnum("FavorSizeOrSpeed", null, null, "/Ot", "/Os");
> map.AddBool("GlobalOptimizations", "/Og");
> map.AddEnum("InlineFunctionExpansion", null, "/Ob0", "/Ob1",
> "/Ob2");
> map.AddBool("OmitFramePointers", "/Oy");
> map.AddEnum("Optimization", null, "/Od", "/O1", "/O2", "/Ox");
> map.AddEnum("RuntimeLibrary", null, "/MT", "/MTd", "/MD", "/MDd",
> "/ML", "/MLd");
> map.AddBool("StringPooling", "/GF");
> map.AddEnum("StructMemberAlignment", null, null, "/Zp1", "/Zp2",
> "/Zp4", "/Zp8", "/Zp16");
> map.AddEnum("UsePrecompiledHeader", null, "", "/Yc", "/YX",
> "/Yu");
> map.AddEnum("WarningLevel", null, "/W0", "/W1", "/W2", "/W3",
> "/W4");
91,95c91,95
< map.AddBool("GenerateDebugInformation", "DEBUG");
< map.AddEnum("LinkIncremental", null, null, "INCREMENTAL:NO",
"INCREMENTAL");
< map.AddString("ModuleDefinitionFile", "DEF:");
< map.AddEnum("OptimizeForWindows98", "OPT:", null, "NOWIN98",
"WIN98");
< map.AddEnum("SubSystem", "SUBSYSTEM:", null, "CONSOLE",
"WINDOWS");
---
> map.AddBool("GenerateDebugInformation", "/DEBUG");
> map.AddEnum("LinkIncremental", null, null, "/INCREMENTAL:NO",
> "/INCREMENTAL");
> map.AddString("ModuleDefinitionFile", "/DEF:");
> map.AddEnum("OptimizeForWindows98", "/OPT:", null, "NOWIN98",
> "WIN98");
> map.AddEnum("SubSystem", "/SUBSYSTEM:", null, "CONSOLE",
> "WINDOWS");
118c118
< return "/" + value;
---
> return value;
120c120
< return "/" + _name + value;
---
> return _name + value;
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/VcConfiguration.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/VcConfiguration.cs
155c155
< return Path.Combine(OutputDir.FullName, linkOutput);
---
> return Path.Combine(ProjectDir.FullName, linkOutput);
160c160
< return Path.Combine(OutputDir.FullName, librarianOutput);
---
> return Path.Combine(ProjectDir.FullName, librarianOutput);
diff -r -w nant-0.85-nightly/src/NAnt.VSNet/VcProject.cs
nantchanges/nant-0.85-nightly/src/NAnt.VSNet/VcProject.cs
135a136,156
>
> VcConfiguration stdafxConfig = null;
>
> // If VC project uses precompiled headers then the
> precompiled header
> // output (.pch file) must be generated before
> compiling any other
> // source files.
> foreach (VcConfiguration config in buildConfigs.Keys) {
> const string compilerTool = "VCCLCompilerTool";
> Hashtable compilerArgs =
> config.GetToolArguments(compilerTool, _clArgMap);
>
> object o = compilerArgs["UsePrecompiledHeader"];
>
> if (o != null) {
> string arg = o as string;
> if (arg.Equals("/Yc")) {
> BuildCPPFiles((ArrayList)
> buildConfigs[config], baseConfig, config);
> stdafxConfig = config;
> }
> }
> }
>
136a158
> if (config != stdafxConfig) {
138a161
> }
342a366,368
> if (metadataDir.Equals("$(NOINHERIT)"))
> {
>
> clTask.MetaDataIncludeDirs.DirectoryNames.Clear();
> } else {
346a373
> }
382c409,438
< if (IsOutputDll(fileConfig)) {
---
> string undefinePreprocessorDefs =
> fileConfig.GetToolSetting(compilerTool, "UndefinePreprocessorDefinitions");
> if
> (!StringUtils.IsNullOrEmpty(undefinePreprocessorDefs)) {
> foreach (string def in
> undefinePreprocessorDefs.Split(';', ',')) {
> clTask.Arguments.Add(new
> Argument("/U"));
> clTask.Arguments.Add(new Argument(def));
> }
> }
>
>
> string addOptions =
> baseConfig.GetToolSetting(compilerTool, "AdditionalOptions");
> if (addOptions != null) {
> StringReader reader = new
> StringReader(addOptions);
> string addOptionsLine = reader.ReadLine();
> while (addOptionsLine != null) {
> foreach(string addOption in
> addOptionsLine.Split(' ')) {
> clTask.Arguments.Add(new
> Argument(addOption));
> }
>
> addOptionsLine = reader.ReadLine();
> }
> }
>
> string exceptionHandling =
> baseConfig.GetToolSetting(compilerTool, "ExceptionHandling");
> if (exceptionHandling == null ||
> exceptionHandling.ToUpper().Equals("TRUE")) {
> clTask.Arguments.Add(new Argument("/EHsc"));
> }
>
>
> if (IsOutputDll(fileConfig))
> {
399a456,460
> string arg =
> compilerArgs["UsePrecompiledHeader"] as string;
>
> // if arg.length == 0 then this
> configuration explicitly turns
> // OFF use of precompiled
> headers - even if parent config uses it.
> if (arg == null || arg.Length >
> 0) {
411a473
> }
529a592,604
> foreach (ProjectBase dependency in ProjectDependencies)
> {
> if (dependency is VcProject) {
> VcConfiguration vcConfig =
> dependency.ProjectConfigurations[baseConfig.Name] as VcConfiguration;
>
> string libraryName =
> vcConfig.GetToolSetting("VCLibrarianTool", "OutputFile");
> if (libraryName != null) {
> string libOutFile = new
> FileInfo(Path.Combine(
>
> dependency.ProjectDirectory.FullName, libraryName)).FullName;
>
> linkTask.Sources.FileNames.Add(libOutFile);
> }
> }
> }
>
555c630,633
< foreach(string addOption in addOptions.Split(' ')) {
---
> StringReader reader = new
> StringReader(addOptions);
> string addOptionsLine = reader.ReadLine();
> while (addOptionsLine != null) {
> foreach(string addOption in
> addOptionsLine.Split(' ')) {
557a636,638
>
> addOptionsLine = reader.ReadLine();
> }
diff -r -w nant-0.85-nightly/src/NAnt.VisualCpp/Tasks/ClTask.cs
nantchanges/nant-0.85-nightly/src/NAnt.VisualCpp/Tasks/ClTask.cs
92c92
< get { return (_pchFile != null) ?
Path.Combine(OutputDir.FullName, _pchFile) : null; }
---
> get { return (_pchFile != null) ?
> Path.Combine(OutputDir.Parent.FullName, _pchFile) : null; }
336,340d335
< // specify pch file, if user specified one
< if (PchFile != null) {
< writer.WriteLine("/Fp\"{0}\"", PchFile);
< }
<
diff -r -w nant-0.85-nightly/src/NAnt.VisualCpp/Tasks/LibTask.cs
nantchanges/nant-0.85-nightly/src/NAnt.VisualCpp/Tasks/LibTask.cs
160a161
> if (libdir.Length > 0) {
162a164
> }
diff -r -w nant-0.85-nightly/src/NAnt.VisualCpp/Tasks/LinkTask.cs
nantchanges/nant-0.85-nightly/src/NAnt.VisualCpp/Tasks/LinkTask.cs
188a189
> if (libdir.Length > 0) {
190a192
> }
