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 > }