From 96d53f11e554f37c135fa2d009f9ffed1a5ec724 Mon Sep 17 00:00:00 2001
From: John Hurliman
Date: Thu, 22 Oct 2009 17:03:13 -0700
Subject: Added VS2010 support to Prebuild and created runprebuild2010.bat
---
Prebuild/src/Core/Nodes/ProjectNode.cs | 4 +
Prebuild/src/Core/Targets/VS2008Target.cs | 2 +-
Prebuild/src/Core/Targets/VS2010Target.cs | 134 +++++++++++++++++++++++++++
Prebuild/src/Core/Targets/VSGenericTarget.cs | 2 +-
Prebuild/src/Core/Targets/VSVersion.cs | 6 +-
5 files changed, 145 insertions(+), 3 deletions(-)
create mode 100644 Prebuild/src/Core/Targets/VS2010Target.cs
(limited to 'Prebuild')
diff --git a/Prebuild/src/Core/Nodes/ProjectNode.cs b/Prebuild/src/Core/Nodes/ProjectNode.cs
index 0a24abf..04af7a3 100644
--- a/Prebuild/src/Core/Nodes/ProjectNode.cs
+++ b/Prebuild/src/Core/Nodes/ProjectNode.cs
@@ -90,6 +90,10 @@ namespace Prebuild.Core.Nodes
/// .NET 3.5
///
v3_5,
+ ///
+ /// .NET 4.0
+ ///
+ v4_0,
}
///
/// The Node object representing /Prebuild/Solution/Project elements
diff --git a/Prebuild/src/Core/Targets/VS2008Target.cs b/Prebuild/src/Core/Targets/VS2008Target.cs
index f30017b..e685962 100644
--- a/Prebuild/src/Core/Targets/VS2008Target.cs
+++ b/Prebuild/src/Core/Targets/VS2008Target.cs
@@ -120,7 +120,7 @@ namespace Prebuild.Core.Targets
#region Constructors
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
public VS2008Target()
: base()
diff --git a/Prebuild/src/Core/Targets/VS2010Target.cs b/Prebuild/src/Core/Targets/VS2010Target.cs
new file mode 100644
index 0000000..8772d18
--- /dev/null
+++ b/Prebuild/src/Core/Targets/VS2010Target.cs
@@ -0,0 +1,134 @@
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.IO;
+using System.Text;
+
+using Prebuild.Core.Attributes;
+using Prebuild.Core.Interfaces;
+using Prebuild.Core.Nodes;
+using Prebuild.Core.Utilities;
+using System.CodeDom.Compiler;
+
+namespace Prebuild.Core.Targets
+{
+
+ ///
+ ///
+ ///
+ [Target("vs2010")]
+ public class VS2010Target : VSGenericTarget
+ {
+ #region Fields
+ string solutionVersion = "11.00";
+ string productVersion = "9.0.21022";
+ string schemaVersion = "2.0";
+ string versionName = "Visual Studio 2010";
+ string name = "vs2008";
+ VSVersion version = VSVersion.VS10;
+
+ Hashtable tools;
+ Kernel kernel;
+
+ ///
+ /// Gets or sets the solution version.
+ ///
+ /// The solution version.
+ public override string SolutionVersion
+ {
+ get
+ {
+ return solutionVersion;
+ }
+ }
+ ///
+ /// Gets or sets the product version.
+ ///
+ /// The product version.
+ public override string ProductVersion
+ {
+ get
+ {
+ return productVersion;
+ }
+ }
+ ///
+ /// Gets or sets the schema version.
+ ///
+ /// The schema version.
+ public override string SchemaVersion
+ {
+ get
+ {
+ return schemaVersion;
+ }
+ }
+ ///
+ /// Gets or sets the name of the version.
+ ///
+ /// The name of the version.
+ public override string VersionName
+ {
+ get
+ {
+ return versionName;
+ }
+ }
+ ///
+ /// Gets or sets the version.
+ ///
+ /// The version.
+ public override VSVersion Version
+ {
+ get
+ {
+ return version;
+ }
+ }
+ ///
+ /// Gets the name.
+ ///
+ /// The name.
+ public override string Name
+ {
+ get
+ {
+ return name;
+ }
+ }
+
+ protected override string GetToolsVersionXml(FrameworkVersion frameworkVersion)
+ {
+ switch (frameworkVersion)
+ {
+ case FrameworkVersion.v4_0:
+ return "ToolsVersion=\"4.0\"";
+ case FrameworkVersion.v3_5:
+ return "ToolsVersion=\"3.5\"";
+ case FrameworkVersion.v3_0:
+ return "ToolsVersion=\"3.0\"";
+ default:
+ return "ToolsVersion=\"2.0\"";
+ }
+ }
+
+ public override string SolutionTag
+ {
+ get { return "# Visual Studio 2010"; }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public VS2010Target()
+ : base()
+ {
+ }
+
+ #endregion
+ }
+}
diff --git a/Prebuild/src/Core/Targets/VSGenericTarget.cs b/Prebuild/src/Core/Targets/VSGenericTarget.cs
index 84f1df5..fdcc2b9 100644
--- a/Prebuild/src/Core/Targets/VSGenericTarget.cs
+++ b/Prebuild/src/Core/Targets/VSGenericTarget.cs
@@ -173,7 +173,7 @@ namespace Prebuild.Core.Targets
#region Project File
using (ps)
{
- ps.WriteLine("", GetToolsVersionXml(project.FrameworkVersion));
+ ps.WriteLine("", this.Version == VSVersion.VS10 ? "4.0" : "3.5");
ps.WriteLine(" ");
ps.WriteLine(" Local");
ps.WriteLine(" {0}", this.ProductVersion);
diff --git a/Prebuild/src/Core/Targets/VSVersion.cs b/Prebuild/src/Core/Targets/VSVersion.cs
index f477086..59549b0 100644
--- a/Prebuild/src/Core/Targets/VSVersion.cs
+++ b/Prebuild/src/Core/Targets/VSVersion.cs
@@ -45,6 +45,10 @@ namespace Prebuild.Core.Targets
///
/// Visual Studio 2008
///
- VS90
+ VS90,
+ ///
+ /// Visual Studio 2010
+ ///
+ VS10
}
}
--
cgit v1.1