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

Reply via email to