> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of Simon Keary > Sent: zaterdag 20 november 2004 13:41 > To: [EMAIL PROTECTED] > Subject: Fw: RE: [nant-dev] How to contribute <solution> task fixes > > > 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.
Would it be possible to create a unified diff (diff -u) and attach it, instead of putting it in the body of the mail ? > I think there may also be an additional problem to do with > configurations that I haven't fixed. Basically, the > <solution> task assumes that for a given solution > configuration each project will have a configuration of the > same name. Usually this is true as there are "debug" and > "release" configurations for the solution and for each > project. However this isn't always the case. For example, I > added a "debugall" and "releaseall" solution configuration > that just use the "debug" and "release" project > configurations, respectively. I'll try and fix this and if I > get it working send the changes a bit later. This is a known issue : http://sourceforge.net/tracker/index.php?func=detail&aid=947214&group_id=316 50&atid=402868 Also, I made quite some changes to the solution task lately, so you might want to sync first. Thanks ! Gert > > 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 > > 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("Pr > oject")); > --- > > 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 > > } > > > > ----- Original Message ----- > From: "Gert Driesen" > To: "'Simon Keary'" , [EMAIL PROTECTED] > Subject: RE: [nant-dev] How to contribute task fixes > Date: Wed, 17 Nov 2004 15:12:01 +0100 > ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers