aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Prebuild/src/Core/Targets/VS2005Target.cs
diff options
context:
space:
mode:
authorJeff Ames2008-03-17 20:55:21 +0000
committerJeff Ames2008-03-17 20:55:21 +0000
commit79209c429705beb57ad9b787718856ab2c9fd37c (patch)
tree6f459e172985bce8ffbfc09a5b9a4594dd881a62 /Prebuild/src/Core/Targets/VS2005Target.cs
parent* More almost completely unproductive log message fiddling (diff)
downloadopensim-SC_OLD-79209c429705beb57ad9b787718856ab2c9fd37c.zip
opensim-SC_OLD-79209c429705beb57ad9b787718856ab2c9fd37c.tar.gz
opensim-SC_OLD-79209c429705beb57ad9b787718856ab2c9fd37c.tar.bz2
opensim-SC_OLD-79209c429705beb57ad9b787718856ab2c9fd37c.tar.xz
Merged changes in Prebuild trunk up to r258 into OpenSim's Prebuild.
Hopefully this should make merging upstream easier. Building with NAnt should still work, but Visual Studio is untested.
Diffstat (limited to 'Prebuild/src/Core/Targets/VS2005Target.cs')
-rw-r--r--Prebuild/src/Core/Targets/VS2005Target.cs89
1 files changed, 55 insertions, 34 deletions
diff --git a/Prebuild/src/Core/Targets/VS2005Target.cs b/Prebuild/src/Core/Targets/VS2005Target.cs
index bd56beb..4c17a3a 100644
--- a/Prebuild/src/Core/Targets/VS2005Target.cs
+++ b/Prebuild/src/Core/Targets/VS2005Target.cs
@@ -26,9 +26,9 @@ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
26#region CVS Information 26#region CVS Information
27/* 27/*
28 * $Source$ 28 * $Source$
29 * $Author: robloach $ 29 * $Author: borrillis $
30 * $Date: 2007-02-27 19:52:34 +0100 (ti, 27 feb 2007) $ 30 * $Date: 2007-05-25 01:03:16 +0900 (Fri, 25 May 2007) $
31 * $Revision: 207 $ 31 * $Revision: 243 $
32 */ 32 */
33#endregion 33#endregion
34 34
@@ -36,6 +36,7 @@ using System;
36using System.Collections; 36using System.Collections;
37using System.Collections.Specialized; 37using System.Collections.Specialized;
38using System.IO; 38using System.IO;
39using System.Text;
39 40
40using Prebuild.Core.Attributes; 41using Prebuild.Core.Attributes;
41using Prebuild.Core.Interfaces; 42using Prebuild.Core.Interfaces;
@@ -235,7 +236,7 @@ namespace Prebuild.Core.Targets
235 236
236 Hashtable tools; 237 Hashtable tools;
237 Kernel kernel; 238 Kernel kernel;
238 239
239 protected virtual string ToolsVersionXml 240 protected virtual string ToolsVersionXml
240 { 241 {
241 get 242 get
@@ -249,7 +250,7 @@ namespace Prebuild.Core.Targets
249 get { return "# Visual Studio 2005"; } 250 get { return "# Visual Studio 2005"; }
250 } 251 }
251 252
252 /// <summary> 253 /// <summary>
253 /// Gets or sets the solution version. 254 /// Gets or sets the solution version.
254 /// </summary> 255 /// </summary>
255 /// <value>The solution version.</value> 256 /// <value>The solution version.</value>
@@ -260,6 +261,7 @@ namespace Prebuild.Core.Targets
260 return "9.00"; 261 return "9.00";
261 } 262 }
262 } 263 }
264
263 /// <summary> 265 /// <summary>
264 /// Gets or sets the product version. 266 /// Gets or sets the product version.
265 /// </summary> 267 /// </summary>
@@ -287,6 +289,7 @@ namespace Prebuild.Core.Targets
287 this.schemaVersion = value; 289 this.schemaVersion = value;
288 } 290 }
289 } 291 }
292
290 /// <summary> 293 /// <summary>
291 /// Gets or sets the name of the version. 294 /// Gets or sets the name of the version.
292 /// </summary> 295 /// </summary>
@@ -298,6 +301,7 @@ namespace Prebuild.Core.Targets
298 return "Visual C# 2005"; 301 return "Visual C# 2005";
299 } 302 }
300 } 303 }
304
301 /// <summary> 305 /// <summary>
302 /// Gets or sets the version. 306 /// Gets or sets the version.
303 /// </summary> 307 /// </summary>
@@ -377,7 +381,7 @@ namespace Prebuild.Core.Targets
377 #region Project File 381 #region Project File
378 using (ps) 382 using (ps)
379 { 383 {
380 ps.WriteLine("<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"{0}>", ToolsVersionXml ); 384 ps.WriteLine("<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"{0}>", ToolsVersionXml);
381 //ps.WriteLine(" <{0}", toolInfo.XMLTag); 385 //ps.WriteLine(" <{0}", toolInfo.XMLTag);
382 ps.WriteLine(" <PropertyGroup>"); 386 ps.WriteLine(" <PropertyGroup>");
383 ps.WriteLine(" <ProjectType>Local</ProjectType>"); 387 ps.WriteLine(" <ProjectType>Local</ProjectType>");
@@ -431,7 +435,7 @@ namespace Prebuild.Core.Targets
431 ps.WriteLine(" <ConfigurationOverrideFile>"); 435 ps.WriteLine(" <ConfigurationOverrideFile>");
432 ps.WriteLine(" </ConfigurationOverrideFile>"); 436 ps.WriteLine(" </ConfigurationOverrideFile>");
433 ps.WriteLine(" <DefineConstants>{0}</DefineConstants>", conf.Options["CompilerDefines"]); 437 ps.WriteLine(" <DefineConstants>{0}</DefineConstants>", conf.Options["CompilerDefines"]);
434 ps.WriteLine(" <DocumentationFile>{0}</DocumentationFile>", conf.Options["XmlDocFile"]); 438 ps.WriteLine(" <DocumentationFile>{0}</DocumentationFile>", Helper.NormalizePath(conf.Options["XmlDocFile"].ToString()));
435 ps.WriteLine(" <DebugSymbols>{0}</DebugSymbols>", conf.Options["DebugInformation"]); 439 ps.WriteLine(" <DebugSymbols>{0}</DebugSymbols>", conf.Options["DebugInformation"]);
436 ps.WriteLine(" <FileAlignment>{0}</FileAlignment>", conf.Options["FileAlignment"]); 440 ps.WriteLine(" <FileAlignment>{0}</FileAlignment>", conf.Options["FileAlignment"]);
437 // ps.WriteLine(" <IncrementalBuild = \"{0}\"", conf.Options["IncrementalBuild"]); 441 // ps.WriteLine(" <IncrementalBuild = \"{0}\"", conf.Options["IncrementalBuild"]);
@@ -458,7 +462,7 @@ namespace Prebuild.Core.Targets
458 // Assembly References 462 // Assembly References
459 ps.WriteLine(" <ItemGroup>"); 463 ps.WriteLine(" <ItemGroup>");
460 string refPath = ((ReferencePathNode) project.ReferencePaths[0]).Path; 464 string refPath = ((ReferencePathNode) project.ReferencePaths[0]).Path;
461 465
462 foreach (ReferenceNode refr in project.References) 466 foreach (ReferenceNode refr in project.References)
463 { 467 {
464 if (!solution.ProjectsTable.ContainsKey(refr.Name)) 468 if (!solution.ProjectsTable.ContainsKey(refr.Name))
@@ -471,7 +475,7 @@ namespace Prebuild.Core.Targets
471 475
472 string path; 476 string path;
473 477
474 if( refr.Name.EndsWith(".dll", StringComparison.InvariantCultureIgnoreCase )) 478 if (refr.Name.EndsWith(".dll", StringComparison.InvariantCultureIgnoreCase))
475 { 479 {
476 path = Helper.NormalizePath(Path.Combine( refPath, refr.Name), '\\'); 480 path = Helper.NormalizePath(Path.Combine( refPath, refr.Name), '\\');
477 } 481 }
@@ -479,7 +483,7 @@ namespace Prebuild.Core.Targets
479 { 483 {
480 path = refr.Name + ".dll"; 484 path = refr.Name + ".dll";
481 } 485 }
482 486
483 // TODO: Allow reference to *.exe files 487 // TODO: Allow reference to *.exe files
484 ps.WriteLine(" <HintPath>{0}</HintPath>", path ); 488 ps.WriteLine(" <HintPath>{0}</HintPath>", path );
485 ps.WriteLine(" <Private>{0}</Private>", refr.LocalCopy); 489 ps.WriteLine(" <Private>{0}</Private>", refr.LocalCopy);
@@ -602,35 +606,53 @@ namespace Prebuild.Core.Targets
602 { 606 {
603 if (!list.Contains(file)) 607 if (!list.Contains(file))
604 { 608 {
605 ps.Write(" <{0} ", project.Files.GetBuildAction(file)); 609 ps.Write(" <{0} ", project.Files.GetBuildAction(file));
606 ps.WriteLine("Include=\"{0}\">", file);
607 610
611 int startPos = 0;
612 if ( project.Files.GetPreservePath( file ) )
613 {
614 while ( ( @"./\" ).IndexOf( file.Substring( startPos, 1 ) ) != -1 )
615 startPos++;
608 616
609 if (file.Contains("Designer.cs")) 617 }
610 { 618 else
611 ps.WriteLine(" <DependentUpon>{0}</DependentUpon>", file.Substring(0, file.IndexOf(".Designer.cs")) + ".cs"); 619 {
612 } 620 startPos = file.LastIndexOf( Path.GetFileName( file ) );
621 }
622 ps.WriteLine("Include=\"{0}\">", Helper.NormalizePath(file));
613 623
614 if (project.Files.GetIsLink(file)) 624
615 { 625 if (file.Contains("Designer.cs"))
616 ps.WriteLine(" <Link>{0}</Link>", Path.GetFileName(file)); 626 {
617 } 627 string d = ".Designer.cs";
618 else if (project.Files.GetBuildAction(file) != BuildAction.None) 628 int index = file.Contains("\\") ? file.IndexOf("\\") + 1 : 0;
619 { 629 ps.WriteLine(" <DependentUpon>{0}</DependentUpon>", file.Substring(index, file.Length - index - d.Length) + ".cs");
620 if (project.Files.GetBuildAction(file) != BuildAction.EmbeddedResource) 630 }
621 { 631
622 ps.WriteLine(" <SubType>{0}</SubType>", project.Files.GetSubType(file)); 632 if (project.Files.GetIsLink(file))
623 } 633 {
624 } 634 string alias = project.Files.GetLinkPath( file );
625 if (project.Files.GetCopyToOutput(file) != CopyToOutput.Never) 635 alias += file.Substring( startPos );
636 alias = Helper.NormalizePath( alias );
637 ps.WriteLine( " <Link>{0}</Link>", alias );
638 }
639 else if (project.Files.GetBuildAction(file) != BuildAction.None)
640 {
641 if (project.Files.GetBuildAction(file) != BuildAction.EmbeddedResource)
626 { 642 {
627 ps.WriteLine(" <CopyToOutputDirectory>{0}</CopyToOutputDirectory>", project.Files.GetCopyToOutput(file)); 643 ps.WriteLine(" <SubType>{0}</SubType>", project.Files.GetSubType(file));
628 } 644 }
645 }
629 646
630 ps.WriteLine(" </{0}>", project.Files.GetBuildAction(file)); 647 if (project.Files.GetCopyToOutput(file) != CopyToOutput.Never)
648 {
649 ps.WriteLine(" <CopyToOutputDirectory>{0}</CopyToOutputDirectory>", project.Files.GetCopyToOutput(file));
631 } 650 }
651
652 ps.WriteLine(" </{0}>", project.Files.GetBuildAction(file));
632 } 653 }
633 } 654 }
655 }
634 // ps.WriteLine(" </Include>"); 656 // ps.WriteLine(" </Include>");
635 657
636 ps.WriteLine(" </ItemGroup>"); 658 ps.WriteLine(" </ItemGroup>");
@@ -658,15 +680,14 @@ namespace Prebuild.Core.Targets
658 ps.WriteLine(" <PropertyGroup>"); 680 ps.WriteLine(" <PropertyGroup>");
659 //ps.WriteLine(" <Settings ReferencePath=\"{0}\">", MakeRefPath(project)); 681 //ps.WriteLine(" <Settings ReferencePath=\"{0}\">", MakeRefPath(project));
660 682
661
662 ps.WriteLine(" <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>"); 683 ps.WriteLine(" <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>");
663 ps.WriteLine(" <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>");
664 684
665 if (projectFile.Contains( "OpenSim.csproj" )) 685 if (projectFile.Contains( "OpenSim.csproj" ))
666 { 686 {
667 ps.WriteLine(" <StartArguments>-loginserver -sandbox -accounts</StartArguments>"); 687 ps.WriteLine(" <StartArguments>-loginserver -sandbox -accounts</StartArguments>");
668 } 688 }
669 689
690 ps.WriteLine(" <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>");
670 ps.WriteLine(" <ReferencePath>{0}</ReferencePath>", MakeRefPath(project)); 691 ps.WriteLine(" <ReferencePath>{0}</ReferencePath>", MakeRefPath(project));
671 ps.WriteLine(" <LastOpenVersion>{0}</LastOpenVersion>", this.ProductVersion); 692 ps.WriteLine(" <LastOpenVersion>{0}</LastOpenVersion>", this.ProductVersion);
672 ps.WriteLine(" <ProjectView>ProjectFiles</ProjectView>"); 693 ps.WriteLine(" <ProjectView>ProjectFiles</ProjectView>");
@@ -678,7 +699,7 @@ namespace Prebuild.Core.Targets
678 ps.Write(" Condition = \" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' \"", conf.Name); 699 ps.Write(" Condition = \" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' \"", conf.Name);
679 ps.WriteLine(" />"); 700 ps.WriteLine(" />");
680 } 701 }
681 702
682 ps.WriteLine("</Project>"); 703 ps.WriteLine("</Project>");
683 } 704 }
684 #endregion 705 #endregion