summaryrefslogtreecommitdiff
path: root/mcs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/tools')
-rw-r--r--mcs/tools/cil-strip/Mono.Cecil.Cil/CodeReader.cs6
-rw-r--r--mcs/tools/corcompare/mono-api-info.cs30
-rw-r--r--mcs/tools/csharp/repl.cs236
-rw-r--r--mcs/tools/linker/Descriptors/mscorlib.xml2
-rw-r--r--mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs21
-rw-r--r--mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs45
-rw-r--r--mcs/tools/mdbrebase/mdbrebase.cs29
-rw-r--r--mcs/tools/mdoc/Mono.Documentation/monodocer.cs2
-rw-r--r--mcs/tools/mdoc/Test/DocTest-v1.cs4
-rw-r--r--mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/GenericBase`1.xml8
-rw-r--r--mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest/Widget.xml20
-rw-r--r--mcs/tools/mdoc/Test/en.expected.delete/index.xml3
-rw-r--r--mcs/tools/mdoc/Test/en.expected.importecmadoc/index.xml3
-rw-r--r--mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml8
-rw-r--r--mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml25
-rw-r--r--mcs/tools/mdoc/Test/en.expected.importslashdoc/index.xml3
-rw-r--r--mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml8
-rw-r--r--mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest/Widget.xml24
-rw-r--r--mcs/tools/mdoc/Test/en.expected.since/index.xml3
-rw-r--r--mcs/tools/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml8
-rw-r--r--mcs/tools/mdoc/Test/en.expected/Mono.DocTest/Widget.xml23
-rw-r--r--mcs/tools/mdoc/Test/en.expected/index.xml3
-rw-r--r--mcs/tools/mdoc/Test/html.expected/Mono.DocTest/Widget.html31
-rw-r--r--mcs/tools/mdoc/Test/msxdoc-expected.importslashdoc.xml22
-rwxr-xr-xmcs/tools/mkbundle/mkbundle.cs77
-rw-r--r--mcs/tools/mkbundle/template_z.c3
-rw-r--r--mcs/tools/monop/monop.cs2
-rw-r--r--mcs/tools/security/sn.cs2
-rw-r--r--mcs/tools/tuner/Mono.Tuner/AdjustVisibility.cs3
-rw-r--r--mcs/tools/xbuild/ErrorUtilities.cs4
-rw-r--r--mcs/tools/xbuild/Makefile166
-rw-r--r--mcs/tools/xbuild/SolutionParser.cs10
-rw-r--r--mcs/tools/xbuild/XBuildConsts.cs20
-rw-r--r--mcs/tools/xbuild/data/12.0/Microsoft.Common.targets (renamed from mcs/tools/xbuild/xbuild/4.0/Microsoft.Common.targets)59
-rw-r--r--mcs/tools/xbuild/data/12.0/Microsoft.Common.tasks35
-rw-r--r--mcs/tools/xbuild/data/2.0/Microsoft.Common.targets (renamed from mcs/tools/xbuild/xbuild/2.0/Microsoft.Common.targets)19
-rw-r--r--mcs/tools/xbuild/data/2.0/Microsoft.Common.tasks (renamed from mcs/tools/xbuild/xbuild/2.0/Microsoft.Common.tasks)0
-rw-r--r--mcs/tools/xbuild/data/3.5/Microsoft.Common.targets (renamed from mcs/tools/xbuild/xbuild/3.5/Microsoft.Common.targets)19
-rw-r--r--mcs/tools/xbuild/data/3.5/Microsoft.Common.tasks (renamed from mcs/tools/xbuild/xbuild/3.5/Microsoft.Common.tasks)0
-rw-r--r--mcs/tools/xbuild/data/4.0/Microsoft.Common.targets917
-rw-r--r--mcs/tools/xbuild/data/4.0/Microsoft.Common.tasks (renamed from mcs/tools/xbuild/xbuild/4.0/Microsoft.Common.tasks)0
-rw-r--r--mcs/tools/xbuild/data/MSBuild/Microsoft.Build.CommonTypes.xsd (renamed from mcs/tools/xbuild/xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd)132
-rw-r--r--mcs/tools/xbuild/data/MSBuild/Microsoft.Build.Core.xsd (renamed from mcs/tools/xbuild/xbuild/MSBuild/Microsoft.Build.Core.xsd)94
-rw-r--r--mcs/tools/xbuild/data/Microsoft.Build.xsd (renamed from mcs/tools/xbuild/xbuild/Microsoft.Build.xsd)12
-rw-r--r--mcs/tools/xbuild/data/Microsoft.CSharp.targets (renamed from mcs/tools/xbuild/xbuild/Microsoft.CSharp.targets)6
-rw-r--r--mcs/tools/xbuild/data/Microsoft.VisualBasic.targets (renamed from mcs/tools/xbuild/xbuild/Microsoft.VisualBasic.targets)2
-rw-r--r--mcs/tools/xbuild/data/xbuild.exe.config.in16
-rw-r--r--mcs/tools/xbuild/data/xbuild.rsp (renamed from mcs/tools/xbuild/xbuild/xbuild.rsp)0
-rw-r--r--mcs/tools/xbuild/frameworks/net_2.0.xml (renamed from mcs/tools/xbuild/xbuild/2.0/FrameworkList.xml)0
-rw-r--r--mcs/tools/xbuild/frameworks/net_3.0.xml (renamed from mcs/tools/xbuild/xbuild/FrameworkList-3.0.xml)0
-rw-r--r--mcs/tools/xbuild/frameworks/net_3.5.xml (renamed from mcs/tools/xbuild/xbuild/3.5/FrameworkList.xml)0
-rw-r--r--mcs/tools/xbuild/frameworks/net_4.0.xml (renamed from mcs/tools/xbuild/xbuild/4.0/FrameworkList.xml)0
-rw-r--r--mcs/tools/xbuild/frameworks/net_4.0_client.xml53
-rw-r--r--mcs/tools/xbuild/frameworks/net_4.5.xml (renamed from mcs/tools/xbuild/xbuild/4.5/FrameworkList.xml)0
-rw-r--r--mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.0.targets (renamed from mcs/tools/xbuild/xbuild/Microsoft.Silverlight.CSharp.targets)3
-rw-r--r--mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.5.targets5
-rw-r--r--mcs/tools/xbuild/targets/Microsoft.Portable.Core.props14
-rw-r--r--mcs/tools/xbuild/targets/Microsoft.Portable.Core.targets (renamed from mcs/tools/xbuild/xbuild/Microsoft.Portable.CSharp.targets)20
-rw-r--r--mcs/tools/xbuild/targets/Microsoft.WebApplication.targets (renamed from mcs/tools/xbuild/xbuild/Microsoft.WebApplication.targets)0
-rw-r--r--mcs/tools/xbuild/xbuild.exe.sources1
-rw-r--r--mcs/tools/xbuild/xbuild.make25
-rw-r--r--mcs/tools/xbuild/xbuild/4.0/Microsoft.Portable.CSharp.targets3
-rw-r--r--mcs/tools/xbuild/xbuild/4.5/Microsoft.Portable.CSharp.targets3
-rw-r--r--mcs/tools/xbuild/xbuild/Microsoft.Silverlight.Common.targets159
-rw-r--r--mcs/tools/xbuild/xbuild/Microsoft.Silverlight.VisualBasic.targets4
-rw-r--r--mcs/tools/xbuild/xbuild_targets.make22
-rw-r--r--mcs/tools/xbuild/xbuild_test.make96
67 files changed, 2012 insertions, 561 deletions
diff --git a/mcs/tools/cil-strip/Mono.Cecil.Cil/CodeReader.cs b/mcs/tools/cil-strip/Mono.Cecil.Cil/CodeReader.cs
index 9fe965f556..4e7ca90fa6 100644
--- a/mcs/tools/cil-strip/Mono.Cecil.Cil/CodeReader.cs
+++ b/mcs/tools/cil-strip/Mono.Cecil.Cil/CodeReader.cs
@@ -98,7 +98,11 @@ namespace Mono.Cecil.Cil {
public static VariableDefinition GetVariable (MethodBody body, int index)
{
- return body.Variables [index];
+ // bug 15727 - newer cecil does the same (in MethodDefinition.GetVariable)
+ var variables = body.Variables;
+ if (index < 0 || index >= variables.Count)
+ return null;
+ return variables [index];
}
void ReadCilBody (MethodBody body, BinaryReader br)
diff --git a/mcs/tools/corcompare/mono-api-info.cs b/mcs/tools/corcompare/mono-api-info.cs
index 72c6da574e..2dc4bcebb3 100644
--- a/mcs/tools/corcompare/mono-api-info.cs
+++ b/mcs/tools/corcompare/mono-api-info.cs
@@ -1231,6 +1231,9 @@ namespace CorCompare
static object GetFlaggedEnumValue (TypeDefinition type, object value)
{
+ if (value is ulong)
+ return GetFlaggedEnumValue (type, (ulong)value);
+
long flags = Convert.ToInt64 (value);
var signature = new StringBuilder ();
@@ -1257,6 +1260,33 @@ namespace CorCompare
return signature.ToString ();
}
+ static object GetFlaggedEnumValue (TypeDefinition type, ulong flags)
+ {
+ var signature = new StringBuilder ();
+
+ for (int i = type.Fields.Count - 1; i >= 0; i--) {
+ FieldDefinition field = type.Fields [i];
+
+ if (!field.HasConstant)
+ continue;
+
+ ulong flag = Convert.ToUInt64 (field.Constant);
+
+ if (flag == 0)
+ continue;
+
+ if ((flags & flag) == flag) {
+ if (signature.Length != 0)
+ signature.Append (", ");
+
+ signature.Append (field.Name);
+ flags -= flag;
+ }
+ }
+
+ return signature.ToString ();
+ }
+
static object GetEnumValue (TypeDefinition type, object value)
{
foreach (FieldDefinition field in type.Fields) {
diff --git a/mcs/tools/csharp/repl.cs b/mcs/tools/csharp/repl.cs
index abdaed2d13..1d8738bce7 100644
--- a/mcs/tools/csharp/repl.cs
+++ b/mcs/tools/csharp/repl.cs
@@ -8,6 +8,7 @@
//
// Copyright 2001, 2002, 2003 Ximian, Inc (http://www.ximian.com)
// Copyright 2004, 2005, 2006, 2007, 2008 Novell, Inc
+// Copyright 2011-2013 Xamarin Inc
//
//
// TODO:
@@ -34,6 +35,8 @@ namespace Mono {
public class Driver {
public static string StartupEvalExpression;
static int? attach;
+ static string target_host;
+ static int target_port;
static string agent;
static int Main (string [] args)
@@ -73,15 +76,17 @@ namespace Mono {
CSharpShell shell;
#if !ON_DOTNET
if (attach.HasValue) {
- shell = new ClientCSharpShell (eval, attach.Value);
+ shell = new ClientCSharpShell_v1 (eval, attach.Value);
} else if (agent != null) {
new CSharpAgent (eval, agent, agent_stderr).Run (startup_files);
return 0;
} else
#endif
- {
+ if (target_host != null)
+ shell = new ClientCSharpShell (eval, target_host, target_port);
+ else
shell = new CSharpShell (eval);
- }
+
return shell.Run (startup_files);
}
@@ -101,6 +106,26 @@ namespace Mono {
}
break;
default:
+ if (args [pos].StartsWith ("--server=")){
+ var hostport = args [pos].Substring (9);
+ int p = hostport.IndexOf (':');
+ if (p == -1){
+ target_host = hostport;
+ target_port = 10000;
+ } else {
+ target_host = hostport.Substring (0,p);
+ if (!int.TryParse (hostport.Substring (p), out target_port)){
+ Console.Error.WriteLine ("Usage is: --server[=host[:port]");
+ Environment.Exit (1);
+ }
+ }
+ return pos + 1;
+ }
+ if (args [pos].StartsWith ("--client")){
+ target_host = "localhost";
+ target_port = 10000;
+ return pos + 1;
+ }
if (args [pos].StartsWith ("--agent:")) {
agent = args[pos];
return pos + 1;
@@ -513,6 +538,154 @@ namespace Mono {
}
+ //
+ // Stream helper extension methods
+ //
+ public static class StreamHelper {
+ static DataConverter converter = DataConverter.LittleEndian;
+
+ static void GetBuffer (this Stream stream, byte [] b)
+ {
+ int n, offset = 0;
+ int len = b.Length;
+
+ do {
+ n = stream.Read (b, offset, len);
+ if (n == 0)
+ throw new IOException ("End reached");
+
+ offset += n;
+ len -= n;
+ } while (len > 0);
+ }
+
+ public static int GetInt (this Stream stream)
+ {
+ byte [] b = new byte [4];
+ stream.GetBuffer (b);
+ return converter.GetInt32 (b, 0);
+ }
+
+ public static string GetString (this Stream stream)
+ {
+ int len = stream.GetInt ();
+ if (len == 0)
+ return "";
+
+ byte [] b = new byte [len];
+ stream.GetBuffer (b);
+
+ return Encoding.UTF8.GetString (b);
+ }
+
+ public static void WriteInt (this Stream stream, int n)
+ {
+ byte [] bytes = converter.GetBytes (n);
+ stream.Write (bytes, 0, bytes.Length);
+ }
+
+ public static void WriteString (this Stream stream, string s)
+ {
+ stream.WriteInt (s.Length);
+ byte [] bytes = Encoding.UTF8.GetBytes (s);
+ stream.Write (bytes, 0, bytes.Length);
+ }
+ }
+
+ public enum AgentStatus : byte {
+ // Received partial input, complete
+ PARTIAL_INPUT = 1,
+
+ // The result was set, expect the string with the result
+ RESULT_SET = 2,
+
+ // No result was set, complete
+ RESULT_NOT_SET = 3,
+
+ // Errors and warnings string follows
+ ERROR = 4,
+ }
+
+ class ClientCSharpShell : CSharpShell {
+ string target_host;
+ int target_port;
+
+ public ClientCSharpShell (Evaluator evaluator, string target_host, int target_port) : base (evaluator)
+ {
+ this.target_port = target_port;
+ this.target_host = target_host;
+ }
+
+ T ConnectServer<T> (Func<NetworkStream,T> callback, Action<Exception> error)
+ {
+ try {
+ var client = new TcpClient (target_host, target_port);
+ var ns = client.GetStream ();
+ T ret = callback (ns);
+ ns.Flush ();
+ ns.Close ();
+ client.Close ();
+ return ret;
+ } catch (Exception e){
+ error (e);
+ return default(T);
+ }
+ }
+
+ protected override string Evaluate (string input)
+ {
+ return ConnectServer<string> ((ns)=> {
+ try {
+ ns.WriteString ("EVALTXT");
+ ns.WriteString (input);
+
+ while (true) {
+ AgentStatus s = (AgentStatus) ns.ReadByte ();
+
+ switch (s){
+ case AgentStatus.PARTIAL_INPUT:
+ return input;
+
+ case AgentStatus.ERROR:
+ string err = ns.GetString ();
+ Console.Error.WriteLine (err);
+ break;
+
+ case AgentStatus.RESULT_NOT_SET:
+ return null;
+
+ case AgentStatus.RESULT_SET:
+ string res = ns.GetString ();
+ Console.WriteLine (res);
+ return null;
+ }
+ }
+ } catch (Exception e){
+ Console.Error.WriteLine ("Error evaluating expression, exception: {0}", e);
+ }
+ return null;
+ }, (e) => {
+ Console.Error.WriteLine ("Error communicating with server {0}", e);
+ });
+ }
+
+ public override int Run (string [] startup_files)
+ {
+ // The difference is that we do not call Evaluator.Init, that is done on the target
+ this.startup_files = startup_files;
+ return ReadEvalPrintLoop ();
+ }
+
+ protected override void ConsoleInterrupt (object sender, ConsoleCancelEventArgs a)
+ {
+ ConnectServer<int> ((ns)=> {
+ ns.WriteString ("INTERRUPT");
+ return 0;
+ }, (e) => { });
+ }
+
+ }
+
#if !ON_DOTNET
//
// A shell connected to a CSharpAgent running in a remote process.
@@ -520,10 +693,10 @@ namespace Mono {
// - Support Gtk and Winforms main loops if detected, this should
// probably be done as a separate agent in a separate place.
//
- class ClientCSharpShell : CSharpShell {
+ class ClientCSharpShell_v1 : CSharpShell {
NetworkStream ns, interrupt_stream;
- public ClientCSharpShell (Evaluator evaluator, int pid)
+ public ClientCSharpShell_v1 (Evaluator evaluator, int pid)
: base (evaluator)
{
// Create a server socket we listen on whose address is passed to the agent
@@ -548,7 +721,7 @@ namespace Mono {
Console.WriteLine ("Connected.");
}
-
+
//
// A remote version of Evaluate
//
@@ -599,57 +772,6 @@ namespace Mono {
}
//
- // Stream helper extension methods
- //
- public static class StreamHelper {
- static DataConverter converter = DataConverter.LittleEndian;
-
- public static int GetInt (this Stream stream)
- {
- byte [] b = new byte [4];
- if (stream.Read (b, 0, 4) != 4)
- throw new IOException ("End reached");
- return converter.GetInt32 (b, 0);
- }
-
- public static string GetString (this Stream stream)
- {
- int len = stream.GetInt ();
- byte [] b = new byte [len];
- if (stream.Read (b, 0, len) != len)
- throw new IOException ("End reached");
- return Encoding.UTF8.GetString (b);
- }
-
- public static void WriteInt (this Stream stream, int n)
- {
- byte [] bytes = converter.GetBytes (n);
- stream.Write (bytes, 0, bytes.Length);
- }
-
- public static void WriteString (this Stream stream, string s)
- {
- stream.WriteInt (s.Length);
- byte [] bytes = Encoding.UTF8.GetBytes (s);
- stream.Write (bytes, 0, bytes.Length);
- }
- }
-
- public enum AgentStatus : byte {
- // Received partial input, complete
- PARTIAL_INPUT = 1,
-
- // The result was set, expect the string with the result
- RESULT_SET = 2,
-
- // No result was set, complete
- RESULT_NOT_SET = 3,
-
- // Errors and warnings string follows
- ERROR = 4,
- }
-
- //
// This is the agent loaded into the target process when using --attach.
//
class CSharpAgent
diff --git a/mcs/tools/linker/Descriptors/mscorlib.xml b/mcs/tools/linker/Descriptors/mscorlib.xml
index 4f814f4bde..0fae1a02c0 100644
--- a/mcs/tools/linker/Descriptors/mscorlib.xml
+++ b/mcs/tools/linker/Descriptors/mscorlib.xml
@@ -33,6 +33,8 @@
<method name="InternalArray__IndexOf" />
<method name="InternalArray__get_Item" />
<method name="InternalArray__set_Item" />
+ <method name="InternalArray__IReadOnlyList_get_Item" />
+ <method name="InternalArray__IReadOnlyCollection_get_Count" />
</type>
<type fullname="System.ArrayTypeMismatchException" />
<type fullname="System.Attribute" />
diff --git a/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs b/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs
index bb944b1b55..30b7779f58 100644
--- a/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs
+++ b/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs
@@ -189,7 +189,7 @@ namespace Mono.Linker.Steps {
MarkCustomAttribute (ca);
}
- void MarkCustomAttribute (CustomAttribute ca)
+ protected virtual void MarkCustomAttribute (CustomAttribute ca)
{
MarkMethod (ca.Constructor);
@@ -296,7 +296,7 @@ namespace Mono.Linker.Steps {
MarkCustomAttributes (module);
}
- void MarkField (FieldReference reference)
+ protected void MarkField (FieldReference reference)
{
// if (IgnoreScope (reference.DeclaringType.Scope))
// return;
@@ -346,10 +346,7 @@ namespace Mono.Linker.Steps {
protected virtual void MarkSerializable (TypeDefinition type)
{
- if (!type.HasMethods)
- return;
-
- MarkMethodsIf (type.Methods, IsDefaultConstructorPredicate);
+ MarkDefaultConstructor (type);
MarkMethodsIf (type.Methods, IsSpecialSerializationConstructorPredicate);
}
@@ -582,6 +579,14 @@ namespace Mono.Linker.Steps {
return method.IsConstructor && !method.IsStatic;
}
+ protected void MarkDefaultConstructor (TypeDefinition type)
+ {
+ if ((type == null) || !type.HasMethods)
+ return;
+
+ MarkMethodsIf (type.Methods, IsDefaultConstructorPredicate);
+ }
+
static MethodPredicate IsStaticConstructorPredicate = new MethodPredicate (IsStaticConstructor);
static bool IsStaticConstructor (MethodDefinition method)
@@ -901,12 +906,12 @@ namespace Mono.Linker.Steps {
return null;
}
- void MarkProperty (PropertyDefinition prop)
+ protected void MarkProperty (PropertyDefinition prop)
{
MarkCustomAttributes (prop);
}
- void MarkEvent (EventDefinition evt)
+ protected void MarkEvent (EventDefinition evt)
{
MarkCustomAttributes (evt);
MarkMethodIfNotNull (evt.AddMethod);
diff --git a/mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs b/mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs
index 5cea341b09..9bd2bad934 100644
--- a/mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs
+++ b/mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs
@@ -37,6 +37,7 @@ namespace Mono.Linker.Steps {
public class SweepStep : BaseStep {
AssemblyDefinition [] assemblies;
+ HashSet<AssemblyDefinition> resolvedTypeReferences;
protected override void Process ()
{
@@ -93,6 +94,9 @@ namespace Mono.Linker.Steps {
void SweepReferences (AssemblyDefinition assembly, AssemblyDefinition target)
{
+ if (assembly == target)
+ return;
+
var references = assembly.MainModule.AssemblyReferences;
for (int i = 0; i < references.Count; i++) {
var reference = references [i];
@@ -102,15 +106,54 @@ namespace Mono.Linker.Steps {
references.RemoveAt (i);
// Removing the reference does not mean it will be saved back to disk!
// That depends on the AssemblyAction set for the `assembly`
- if (Annotations.GetAction (assembly) == AssemblyAction.Copy) {
+ switch (Annotations.GetAction (assembly)) {
+ case AssemblyAction.Copy:
// Copy means even if "unlinked" we still want that assembly to be saved back
// to disk (OutputStep) without the (removed) reference
Annotations.SetAction (assembly, AssemblyAction.Save);
+ ResolveAllTypeReferences (assembly);
+ break;
+
+ case AssemblyAction.Save:
+ case AssemblyAction.Link:
+ ResolveAllTypeReferences (assembly);
+ break;
}
return;
}
}
+ void ResolveAllTypeReferences (AssemblyDefinition assembly)
+ {
+ if (resolvedTypeReferences == null)
+ resolvedTypeReferences = new HashSet<AssemblyDefinition> ();
+ if (resolvedTypeReferences.Contains (assembly))
+ return;
+ resolvedTypeReferences.Add (assembly);
+
+ var hash = new Dictionary<TypeReference,IMetadataScope> ();
+
+ foreach (TypeReference tr in assembly.MainModule.GetTypeReferences ()) {
+ if (hash.ContainsKey (tr))
+ continue;
+ var td = tr.Resolve ();
+ IMetadataScope scope = tr.Scope;
+ // at this stage reference might include things that can't be resolved
+ // and if it is (resolved) it needs to be kept only if marked (#16213)
+ if ((td != null) && Annotations.IsMarked (td))
+ scope = assembly.MainModule.Import (td).Scope;
+ hash.Add (tr, scope);
+ }
+
+ // Resolve everything first before updating scopes.
+ // If we set the scope to null, then calling Resolve() on any of its
+ // nested types would crash.
+
+ foreach (var e in hash) {
+ e.Key.Scope = e.Value;
+ }
+ }
+
void SweepType (TypeDefinition type)
{
if (type.HasFields)
diff --git a/mcs/tools/mdbrebase/mdbrebase.cs b/mcs/tools/mdbrebase/mdbrebase.cs
index 65e7f26fa9..40b6836003 100644
--- a/mcs/tools/mdbrebase/mdbrebase.cs
+++ b/mcs/tools/mdbrebase/mdbrebase.cs
@@ -2,6 +2,7 @@ using System;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
+using System.Text.RegularExpressions;
using System.IO;
using Mono.CompilerServices.SymbolWriter;
@@ -15,6 +16,11 @@ class Settings
public string OutputDirectory { get; set; }
public string InputPattern { get; set; }
public string OutputPattern { get; set; }
+ public bool InputPatternIsRegex { get; set; }
+ public bool FileNamesOnly { get; set; }
+ public bool Verbose { get; set; }
+
+ Regex inputPatternRegex;
public bool Validate ()
{
@@ -23,8 +29,15 @@ class Settings
public string Replace (string input)
{
- if (input.StartsWith (InputPattern))
- return input.Replace (InputPattern, OutputPattern);
+ if (InputPatternIsRegex) {
+ if (inputPatternRegex == null)
+ inputPatternRegex = new Regex (InputPattern);
+ return inputPatternRegex.Replace (input, OutputPattern);
+ } else {
+ if (input.StartsWith (InputPattern))
+ return OutputPattern + input.Substring (InputPattern.Length);
+ }
+
return input;
}
}
@@ -46,7 +59,14 @@ class MdbRebase
var output = new MonoSymbolFile ();
foreach (var s in input.Sources) {
- s.FileName = settings.Replace (s.FileName);
+ var newFileName = settings.FileNamesOnly
+ ? Path.Combine (Path.GetDirectoryName (s.FileName), settings.Replace (Path.GetFileName (s.FileName)))
+ : settings.Replace (s.FileName);
+
+ if (settings.Verbose)
+ Console.WriteLine ("{0} -> {1}", s.FileName, newFileName);
+
+ s.FileName = newFileName;
output.AddSource (s);
}
@@ -97,6 +117,9 @@ class Driver {
var p = new OptionSet () {
{ "d=|output=", "Output directory to the mdb file, replace existing one if ommited", v => s.OutputDirectory = v },
+ { "v|verbose", "Be verbose with output (show individual path rewrites)", v => s.Verbose = true },
+ { "f|filenames", "Only operate on file names, not full absolute paths", v => s.FileNamesOnly = true },
+ { "r|regex", "Input pattern is a regular expression", v => s.InputPatternIsRegex = true },
{ "i=|input-pattern=", "Input pattern to replace (must not be a prefix to output-pattern)(required)", v => s.InputPattern = v },
{ "o=|output-pattern=", "Output pattern to replace (required)", v => s.OutputPattern = v },
{ "h|?|help", v => showHelp = true },
diff --git a/mcs/tools/mdoc/Mono.Documentation/monodocer.cs b/mcs/tools/mdoc/Mono.Documentation/monodocer.cs
index 7559208868..244d0478bd 100644
--- a/mcs/tools/mdoc/Mono.Documentation/monodocer.cs
+++ b/mcs/tools/mdoc/Mono.Documentation/monodocer.cs
@@ -3365,10 +3365,10 @@ public abstract class MemberFormatter {
if (type is PointerType) {
return AppendPointerTypeName (buf, type, context);
}
- AppendNamespace (buf, type);
if (type is GenericParameter) {
return AppendTypeName (buf, type, context);
}
+ AppendNamespace (buf, type);
GenericInstanceType genInst = type as GenericInstanceType;
if (type.GenericParameters.Count == 0 &&
(genInst == null ? true : genInst.GenericArguments.Count == 0)) {
diff --git a/mcs/tools/mdoc/Test/DocTest-v1.cs b/mcs/tools/mdoc/Test/DocTest-v1.cs
index 6896008e2f..52bc196111 100644
--- a/mcs/tools/mdoc/Test/DocTest-v1.cs
+++ b/mcs/tools/mdoc/Test/DocTest-v1.cs
@@ -362,6 +362,10 @@ namespace Mono.DocTest {
/// <returns>A <see cref="T:Mono.DocTest.Widget" /> instance.</returns>
public static Widget operator+ (Widget x) {return null;}
+ /// <remarks><c>M:Mono.DocTest.Widget.op_Division</c>.</remarks>
+ /// <returns>A <see cref="T:Mono.DocTest.Widget" /> instance.</returns>
+ public static Widget op_Division = null;
+
/// <param name="x1">Yet Another <see cref="T:Mono.DocTest.Widget" />.</param>
/// <param name="x2">Yay, <see cref="T:Mono.DocTest.Widget" />s.</param>
/// <remarks><c>M:Mono.DocTest.Widget.op_Addition(Mono.DocTest.Widget,Mono.DocTest.Widget)</c>.</remarks>
diff --git a/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/GenericBase`1.xml b/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/GenericBase`1.xml
index 9700fe0543..91c9851251 100644
--- a/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/GenericBase`1.xml
+++ b/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/GenericBase`1.xml
@@ -91,6 +91,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -102,6 +103,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -113,6 +115,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -124,6 +127,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -170,6 +174,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -181,6 +186,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -192,6 +198,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -203,6 +210,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
diff --git a/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest/Widget.xml b/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest/Widget.xml
index 6d67e84a38..804141f78e 100644
--- a/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest/Widget.xml
+++ b/mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest/Widget.xml
@@ -101,6 +101,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -112,6 +113,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -123,6 +125,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -134,6 +137,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -341,6 +345,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -352,6 +357,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -363,6 +369,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -374,6 +381,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -712,6 +720,18 @@
<remarks>To be added.</remarks>
</Docs>
</Member>
+ <Member MemberName="op_Division">
+ <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget op_Division;" />
+ <MemberSignature Language="ILAsm" Value=".field public static class Mono.DocTest.Widget op_Division" />
+ <MemberType>Field</MemberType>
+ <ReturnValue>
+ <ReturnType>Mono.DocTest.Widget</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="op_Explicit">
<MemberSignature Language="C#" Value="public static int op_Explicit (Mono.DocTest.Widget x);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(class Mono.DocTest.Widget x) cil managed" />
diff --git a/mcs/tools/mdoc/Test/en.expected.delete/index.xml b/mcs/tools/mdoc/Test/en.expected.delete/index.xml
index cca910f7cd..3bf5e2463b 100644
--- a/mcs/tools/mdoc/Test/en.expected.delete/index.xml
+++ b/mcs/tools/mdoc/Test/en.expected.delete/index.xml
@@ -3,6 +3,9 @@
<Assembly Name="DocTest" Version="0.0.0.0">
<Attributes>
<Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
</Attributes>
diff --git a/mcs/tools/mdoc/Test/en.expected.importecmadoc/index.xml b/mcs/tools/mdoc/Test/en.expected.importecmadoc/index.xml
index c2ec0ea27f..13ad1ddd85 100644
--- a/mcs/tools/mdoc/Test/en.expected.importecmadoc/index.xml
+++ b/mcs/tools/mdoc/Test/en.expected.importecmadoc/index.xml
@@ -3,6 +3,9 @@
<Assembly Name="DocTest" Version="0.0.0.0">
<Attributes>
<Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
</Attributes>
diff --git a/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml b/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml
index a4f8b4baf8..183416b919 100644
--- a/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml
+++ b/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml
@@ -108,6 +108,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -119,6 +120,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -130,6 +132,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -141,6 +144,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -190,6 +194,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -201,6 +206,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -212,6 +218,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -223,6 +230,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
diff --git a/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml b/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml
index 3143519780..890e316c4b 100644
--- a/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml
+++ b/mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml
@@ -141,6 +141,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -152,6 +153,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -163,6 +165,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -174,6 +177,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -424,6 +428,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -435,6 +440,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -446,6 +452,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -457,6 +464,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -866,6 +874,23 @@
<c>M:Mono.DocTest.Widget.op_Addition(Mono.DocTest.Widget,Mono.DocTest.Widget)</c>.</remarks>
</Docs>
</Member>
+ <Member MemberName="op_Division">
+ <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget op_Division;" />
+ <MemberSignature Language="ILAsm" Value=".field public static class Mono.DocTest.Widget op_Division" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Mono.DocTest.Widget</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <returns>A <see cref="T:Mono.DocTest.Widget" /> instance.</returns>
+ <remarks>
+ <c>M:Mono.DocTest.Widget.op_Division</c>.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="op_Explicit">
<MemberSignature Language="C#" Value="public static int op_Explicit (Mono.DocTest.Widget x);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(class Mono.DocTest.Widget x) cil managed" />
diff --git a/mcs/tools/mdoc/Test/en.expected.importslashdoc/index.xml b/mcs/tools/mdoc/Test/en.expected.importslashdoc/index.xml
index 365d685b38..1d4f1666de 100644
--- a/mcs/tools/mdoc/Test/en.expected.importslashdoc/index.xml
+++ b/mcs/tools/mdoc/Test/en.expected.importslashdoc/index.xml
@@ -3,6 +3,9 @@
<Assembly Name="DocTest" Version="0.0.0.0">
<Attributes>
<Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
</Attributes>
diff --git a/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml b/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml
index 393a51ae7b..b850e47bef 100644
--- a/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml
+++ b/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml
@@ -126,6 +126,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -137,6 +138,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -148,6 +150,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -159,6 +162,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -209,6 +213,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -220,6 +225,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -231,6 +237,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -242,6 +249,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
diff --git a/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest/Widget.xml b/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest/Widget.xml
index 0c1f189305..9e79eef402 100644
--- a/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest/Widget.xml
+++ b/mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest/Widget.xml
@@ -123,6 +123,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -134,6 +135,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -145,6 +147,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -156,6 +159,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -407,6 +411,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -418,6 +423,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -429,6 +435,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -440,6 +447,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -846,6 +854,22 @@
<remarks>To be added.</remarks>
</Docs>
</Member>
+ <Member MemberName="op_Division">
+ <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget op_Division;" />
+ <MemberSignature Language="ILAsm" Value=".field public static class Mono.DocTest.Widget op_Division" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Mono.DocTest.Widget</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="op_Explicit">
<MemberSignature Language="C#" Value="public static int op_Explicit (Mono.DocTest.Widget x);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(class Mono.DocTest.Widget x) cil managed" />
diff --git a/mcs/tools/mdoc/Test/en.expected.since/index.xml b/mcs/tools/mdoc/Test/en.expected.since/index.xml
index 56d6aca288..45914b3273 100644
--- a/mcs/tools/mdoc/Test/en.expected.since/index.xml
+++ b/mcs/tools/mdoc/Test/en.expected.since/index.xml
@@ -3,6 +3,9 @@
<Assembly Name="DocTest" Version="2.0.0.0">
<Attributes>
<Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
</Attributes>
diff --git a/mcs/tools/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml b/mcs/tools/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml
index 42c2af1365..7941eab44a 100644
--- a/mcs/tools/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml
+++ b/mcs/tools/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml
@@ -104,6 +104,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -115,6 +116,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -126,6 +128,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -137,6 +140,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -186,6 +190,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -197,6 +202,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -208,6 +214,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -219,6 +226,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
diff --git a/mcs/tools/mdoc/Test/en.expected/Mono.DocTest/Widget.xml b/mcs/tools/mdoc/Test/en.expected/Mono.DocTest/Widget.xml
index b2242b0099..8e20daa9d1 100644
--- a/mcs/tools/mdoc/Test/en.expected/Mono.DocTest/Widget.xml
+++ b/mcs/tools/mdoc/Test/en.expected/Mono.DocTest/Widget.xml
@@ -117,6 +117,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -128,6 +129,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -139,6 +141,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -150,6 +153,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -390,6 +394,7 @@
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -401,6 +406,7 @@
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -412,6 +418,7 @@
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -423,6 +430,7 @@
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -812,6 +820,21 @@
<remarks>To be added.</remarks>
</Docs>
</Member>
+ <Member MemberName="op_Division">
+ <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget op_Division;" />
+ <MemberSignature Language="ILAsm" Value=".field public static class Mono.DocTest.Widget op_Division" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Mono.DocTest.Widget</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="op_Explicit">
<MemberSignature Language="C#" Value="public static int op_Explicit (Mono.DocTest.Widget x);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(class Mono.DocTest.Widget x) cil managed" />
diff --git a/mcs/tools/mdoc/Test/en.expected/index.xml b/mcs/tools/mdoc/Test/en.expected/index.xml
index cca910f7cd..3bf5e2463b 100644
--- a/mcs/tools/mdoc/Test/en.expected/index.xml
+++ b/mcs/tools/mdoc/Test/en.expected/index.xml
@@ -3,6 +3,9 @@
<Assembly Name="DocTest" Version="0.0.0.0">
<Attributes>
<Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
</Attributes>
diff --git a/mcs/tools/mdoc/Test/html.expected/Mono.DocTest/Widget.html b/mcs/tools/mdoc/Test/html.expected/Mono.DocTest/Widget.html
index 943c58d422..7f29d8c54a 100644
--- a/mcs/tools/mdoc/Test/html.expected/Mono.DocTest/Widget.html
+++ b/mcs/tools/mdoc/Test/html.expected/Mono.DocTest/Widget.html
@@ -361,6 +361,20 @@
</tr>
<tr valign="top">
<td>
+ <div>static </div>
+ </td>
+ <td>
+ <b>
+ <a href="#F:Mono.DocTest.Widget.op_Division">op_Division</a>
+ </b>
+ </td>
+ <td>
+ <i>
+ <a href="../Mono.DocTest/Widget.html">Widget</a>
+ </i>. <span class="NotEntered">Documentation for this section has not yet been entered.</span></td>
+ </tr>
+ <tr valign="top">
+ <td>
<div>
</div>
</td>
@@ -1771,6 +1785,23 @@
<b>Namespace: </b>Mono.DocTest<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div>
<hr size="1" />
</blockquote>
+ <h3 id="F:Mono.DocTest.Widget.op_Division">op_Division Field</h3>
+ <blockquote id="F:Mono.DocTest.Widget.op_Division:member">
+ <p class="Summary">
+ <span class="NotEntered">Documentation for this section has not yet been entered.</span>
+ </p>
+ <h2>Syntax</h2>
+ <div class="Signature">public static <a href="../Mono.DocTest/Widget.html">Widget</a> operator/ </div>
+ <h4 class="Subsection">Returns</h4>
+ <blockquote class="SubsectionBox" id="F:Mono.DocTest.Widget.op_Division:Returns">A <a href="../Mono.DocTest/Widget.html">Mono.DocTest.Widget</a> instance.</blockquote>
+ <h2 class="Section">Remarks</h2>
+ <div class="SectionBox" id="F:Mono.DocTest.Widget.op_Division:Remarks">
+ <tt>M:Mono.DocTest.Widget.op_Division</tt>.</div>
+ <h2 class="Section">Requirements</h2>
+ <div class="SectionBox" id="F:Mono.DocTest.Widget.op_Division:Version Information">
+ <b>Namespace: </b>Mono.DocTest<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div>
+ <hr size="1" />
+ </blockquote>
<h3 id="M:Mono.DocTest.Widget.op_Explicit(Mono.DocTest.Widget)~System.Int32">Conversion Method</h3>
<blockquote id="M:Mono.DocTest.Widget.op_Explicit(Mono.DocTest.Widget)~System.Int32:member">
<p class="Summary">
diff --git a/mcs/tools/mdoc/Test/msxdoc-expected.importslashdoc.xml b/mcs/tools/mdoc/Test/msxdoc-expected.importslashdoc.xml
index e431794cd2..11bac1bf51 100644
--- a/mcs/tools/mdoc/Test/msxdoc-expected.importslashdoc.xml
+++ b/mcs/tools/mdoc/Test/msxdoc-expected.importslashdoc.xml
@@ -266,6 +266,7 @@ class Example {
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -277,6 +278,7 @@ class Example {
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -288,6 +290,7 @@ class Example {
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -299,6 +302,7 @@ class Example {
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -402,6 +406,7 @@ class Example {
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -413,6 +418,7 @@ class Example {
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -424,6 +430,7 @@ class Example {
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -435,6 +442,7 @@ class Example {
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -568,6 +576,12 @@ class Example {
<remarks>
<c>M:Mono.DocTest.Widget.op_Addition(Mono.DocTest.Widget,Mono.DocTest.Widget)</c>.</remarks>
</member>
+ <member name="F:Mono.DocTest.Widget.op_Division">
+ <summary>To be added.</summary>
+ <returns>A <see cref="T:Mono.DocTest.Widget" /> instance.</returns>
+ <remarks>
+ <c>M:Mono.DocTest.Widget.op_Division</c>.</remarks>
+ </member>
<member name="M:Mono.DocTest.Widget.op_Explicit(Mono.DocTest.Widget)~System.Int32">
<param name="x">
<see cref="T:Mono.DocTest.Widget" />s are fun!.</param>
@@ -848,6 +862,7 @@ class Example {
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -859,6 +874,7 @@ class Example {
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -870,6 +886,7 @@ class Example {
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -881,6 +898,7 @@ class Example {
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -919,6 +937,7 @@ class Example {
<exception cref="T:System.ArgumentNullException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -930,6 +949,7 @@ class Example {
<exception cref="T:System.ArgumentOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -941,6 +961,7 @@ class Example {
<exception cref="T:System.FormatException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
@@ -952,6 +973,7 @@ class Example {
<exception cref="T:System.IndexOutOfRangeException">To be added; from:
<see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
<see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+ <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
<see cref="M:System.String.FormatHelper(System.Text.StringBuilder,System.IFormatProvider,System.String,System.Object[])" />,
<see cref="M:System.String.get_Chars(System.Int32)" />,
<see cref="M:System.String.InternalSetChar(System.Int32,System.Char)" />,
diff --git a/mcs/tools/mkbundle/mkbundle.cs b/mcs/tools/mkbundle/mkbundle.cs
index 17262cd5ec..8f7e736ff6 100755
--- a/mcs/tools/mkbundle/mkbundle.cs
+++ b/mcs/tools/mkbundle/mkbundle.cs
@@ -38,6 +38,8 @@ class MakeBundle {
static bool compress;
static bool nomain;
static bool? use_dos2unix = null;
+ static bool skip_scan;
+ static string ctor_func;
static int Main (string [] args)
{
@@ -146,6 +148,16 @@ class MakeBundle {
}
break;
+ case "--skip-scan":
+ skip_scan = true;
+ break;
+ case "--static-ctor":
+ if (i+1 == top) {
+ Help ();
+ return 1;
+ }
+ ctor_func = args [++i];
+ break;
default:
sources.Add (args [i]);
break;
@@ -163,10 +175,10 @@ class MakeBundle {
Environment.Exit (1);
}
- List<Assembly> assemblies = LoadAssemblies (sources);
+ List<string> assemblies = LoadAssemblies (sources);
List<string> files = new List<string> ();
- foreach (Assembly a in assemblies)
- QueueAssembly (files, a.CodeBase);
+ foreach (string file in assemblies)
+ QueueAssembly (files, file);
// Special casing mscorlib.dll: any specified mscorlib.dll cannot be loaded
// by Assembly.ReflectionFromLoadFrom(). Instead the fx assembly which runs
@@ -266,7 +278,6 @@ class MakeBundle {
try {
List<string> c_bundle_names = new List<string> ();
List<string[]> config_names = new List<string[]> ();
- byte [] buffer = new byte [8192];
using (StreamWriter ts = new StreamWriter (File.Create (temp_s))) {
using (StreamWriter tc = new StreamWriter (File.Create (temp_c))) {
@@ -309,10 +320,11 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
long real_size = stream.Length;
int n;
if (compress) {
+ byte[] cbuffer = new byte [8192];
MemoryStream ms = new MemoryStream ();
GZipStream deflate = new GZipStream (ms, CompressionMode.Compress, leaveOpen:true);
- while ((n = stream.Read (buffer, 0, buffer.Length)) != 0){
- deflate.Write (buffer, 0, n);
+ while ((n = stream.Read (cbuffer, 0, cbuffer.Length)) != 0){
+ deflate.Write (cbuffer, 0, n);
}
stream.Close ();
deflate.Close ();
@@ -335,6 +347,7 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
#endif
// The non-parallel part
+ byte [] buffer = new byte [8192];
foreach (var url in files) {
string fname = new Uri (url).LocalPath;
string aname = Path.GetFileName (fname);
@@ -436,6 +449,12 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
tc.WriteLine ("\tNULL\n};\n");
tc.WriteLine ("static char *image_name = \"{0}\";", prog);
+ if (ctor_func != null) {
+ tc.WriteLine ("\nextern void {0} (void);", ctor_func);
+ tc.WriteLine ("\n__attribute__ ((constructor)) static void mono_mkbundle_ctor (void)");
+ tc.WriteLine ("{{\n\t{0} ();\n}}", ctor_func);
+ }
+
tc.WriteLine ("\nstatic void install_dll_config_files (void) {\n");
foreach (string[] ass in config_names){
tc.WriteLine ("\tmono_register_config_for_assembly (\"{0}\", assembly_config_{1});\n", ass [0], ass [1]);
@@ -517,20 +536,29 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
}
}
- static List<Assembly> LoadAssemblies (List<string> sources)
+ static List<string> LoadAssemblies (List<string> sources)
{
- List<Assembly> assemblies = new List<Assembly> ();
+ List<string> assemblies = new List<string> ();
bool error = false;
foreach (string name in sources){
- Assembly a = LoadAssembly (name);
+ try {
+ Assembly a = LoadAssembly (name);
- if (a == null){
- error = true;
- continue;
- }
+ if (a == null){
+ error = true;
+ continue;
+ }
- assemblies.Add (a);
+ assemblies.Add (a.CodeBase);
+ } catch (Exception e) {
+ if (skip_scan) {
+ Console.WriteLine ("File will not be scanned: {0}", name);
+ assemblies.Add (new Uri (new FileInfo (name).FullName).ToString ());
+ } else {
+ throw;
+ }
+ }
}
if (error)
@@ -543,18 +571,23 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
static void QueueAssembly (List<string> files, string codebase)
{
+ // Console.WriteLine ("CODE BASE IS {0}", codebase);
if (files.Contains (codebase))
return;
files.Add (codebase);
- Assembly a = universe.LoadFile (new Uri(codebase).LocalPath);
-
if (!autodeps)
return;
-
- foreach (AssemblyName an in a.GetReferencedAssemblies ()) {
- a = universe.Load (an.Name);
- QueueAssembly (files, a.CodeBase);
+ try {
+ Assembly a = universe.LoadFile (new Uri(codebase).LocalPath);
+
+ foreach (AssemblyName an in a.GetReferencedAssemblies ()) {
+ a = universe.Load (an.Name);
+ QueueAssembly (files, a.CodeBase);
+ }
+ } catch (Exception e) {
+ if (!skip_scan)
+ throw;
}
}
@@ -593,6 +626,8 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
Error ("Cannot find assembly `" + assembly + "'" );
Console.WriteLine ("Log: \n" + total_log);
} catch (IKVM.Reflection.BadImageFormatException f) {
+ if (skip_scan)
+ throw;
Error ("Cannot load assembly (bad file format) " + f.Message);
} catch (FileLoadException f){
Error ("Cannot load assembly " + f.Message);
@@ -625,6 +660,8 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
" --static Statically link to mono libs\n" +
" --nomain Don't include a main() function, for libraries\n" +
" -z Compress the assemblies before embedding.\n" +
+ " --skip-scan Skip scanning assemblies that could not be loaded (but still embed them).\n" +
+ " --static-ctor ctor Add a constructor call to the supplied function.\n" +
" You need zlib development headers and libraries.\n");
}
diff --git a/mcs/tools/mkbundle/template_z.c b/mcs/tools/mkbundle/template_z.c
index 8a8e600798..9bd32cf8c6 100644
--- a/mcs/tools/mkbundle/template_z.c
+++ b/mcs/tools/mkbundle/template_z.c
@@ -13,7 +13,8 @@ my_inflate (const Byte *compr, uLong compr_len, Byte *uncompr, uLong uncompr_len
memset (&stream, 0, sizeof (z_stream));
stream.next_in = (Byte *) compr;
stream.avail_in = (uInt) compr_len;
- /* To decompress gzip format: http://stackoverflow.com/a/1838702/83444 */
+
+ // http://www.zlib.net/manual.html
err = inflateInit2 (&stream, 16+MAX_WBITS);
if (err != Z_OK)
return 1;
diff --git a/mcs/tools/monop/monop.cs b/mcs/tools/monop/monop.cs
index 504d899f83..af9012a904 100644
--- a/mcs/tools/monop/monop.cs
+++ b/mcs/tools/monop/monop.cs
@@ -315,7 +315,7 @@ class MonoP {
assembly = options.AssemblyReference;
if (options.ShowAll){
- ShowAll (assembly, options.FilterObsolete, options.ShowPrivate);
+ ShowAll (assembly, options.ShowPrivate, options.FilterObsolete);
return;
} else {
if (options.Type == null) {
diff --git a/mcs/tools/security/sn.cs b/mcs/tools/security/sn.cs
index c84505d30a..4f66600770 100644
--- a/mcs/tools/security/sn.cs
+++ b/mcs/tools/security/sn.cs
@@ -126,7 +126,7 @@ namespace Mono.Tools {
return new StrongName (data).RSA;
}
catch {
- if (data [0] != 0x30)
+ if (data.Length == 0 || data [0] != 0x30)
throw;
// this could be a PFX file
Console.Write ("Enter password for private key (will be visible when typed): ");
diff --git a/mcs/tools/tuner/Mono.Tuner/AdjustVisibility.cs b/mcs/tools/tuner/Mono.Tuner/AdjustVisibility.cs
index 30c5ac4b9d..6b684b6066 100644
--- a/mcs/tools/tuner/Mono.Tuner/AdjustVisibility.cs
+++ b/mcs/tools/tuner/Mono.Tuner/AdjustVisibility.cs
@@ -38,9 +38,6 @@ using Mono.Cecil;
namespace Mono.Tuner {
public class AdjustVisibility : BaseStep {
-
- static readonly object internalized_key = new object ();
-
protected override void ProcessAssembly (AssemblyDefinition assembly)
{
if (Annotations.GetAction (assembly) != AssemblyAction.Link)
diff --git a/mcs/tools/xbuild/ErrorUtilities.cs b/mcs/tools/xbuild/ErrorUtilities.cs
index a21048644b..79eda999ee 100644
--- a/mcs/tools/xbuild/ErrorUtilities.cs
+++ b/mcs/tools/xbuild/ErrorUtilities.cs
@@ -33,9 +33,9 @@ namespace Mono.XBuild.CommandLine {
public static class ErrorUtilities {
static string[] version = {
- String.Format ("XBuild Engine Version {0}", Consts.MonoVersion),
+ String.Format ("XBuild Engine Version {0}", XBuildConsts.Version),
String.Format ("Mono, Version {0}", Consts.MonoVersion),
- "Copyright (C) Marek Sieradzki 2005-2008, Novell 2008-2011.",
+ "Copyright (C) 2005-2013 Various Mono authors",
};
diff --git a/mcs/tools/xbuild/Makefile b/mcs/tools/xbuild/Makefile
index 0fcbbfa784..ea5ae9dbb2 100644
--- a/mcs/tools/xbuild/Makefile
+++ b/mcs/tools/xbuild/Makefile
@@ -3,99 +3,93 @@ SUBDIRS =
include ../../build/rules.make
NO_TESTS = yes
-BUILD_FRAMEWORK = Microsoft.Build.Framework.dll
-BUILD_ENGINE = Microsoft.Build.Engine.dll
-INSTALL_FRAMEWORK_VERSION = $(FRAMEWORK_VERSION)
+include xbuild.make
-ifeq (3.5, $(FRAMEWORK_VERSION))
-NAME_SUFFIX = .v3.5
-ASSEMBLY_VERSION = 3.5.0.0
-BUILD_FRAMEWORK := $(topdir)/class/lib/$(PROFILE)/$(BUILD_FRAMEWORK)
-BUILD_ENGINE := $(topdir)/class/lib/$(PROFILE)/$(BUILD_ENGINE)
-else
-ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-NAME_SUFFIX = .v4.0
-ASSEMBLY_VERSION = 4.0.0.0
-INSTALL_FRAMEWORK_VERSION = 4.0
-endif
-endif
-
-LOCAL_MCS_FLAGS = -r:$(BUILD_FRAMEWORK) -r:Microsoft.Build.Utilities$(NAME_SUFFIX).dll -r:$(BUILD_ENGINE)
+LOCAL_MCS_FLAGS = -r:$(XBUILD_FRAMEWORK) -r:$(XBUILD_UTILITIES) -r:$(XBUILD_ENGINE)
PROGRAM = xbuild.exe
include ../../build/executable.make
XBUILD_DIR=.
-XBUILD_FRAMEWORKS_DIR=$(mono_libdir)/mono/xbuild-frameworks/.NETFramework/
-REDISTLIST_DIR=$(XBUILD_FRAMEWORKS_DIR)/v$(FRAMEWORK_VERSION)/RedistList
-include $(XBUILD_DIR)/xbuild_targets.make
+include $(XBUILD_DIR)/xbuild_test.make
+
+ifeq (4.0, $(FRAMEWORK_VERSION))
+install-local: xbuild-net4-fail
+else
+install-local: install-extras
+endif
+
+NETFRAMEWORK_DIR=$(mono_libdir)/mono/xbuild-frameworks/.NETFramework
+VS_TARGETS_DIR = $(mono_libdir)/mono/xbuild/Microsoft/VisualStudio
+PORTABLE_TARGETS_DIR = $(mono_libdir)/mono/xbuild/Microsoft/Portable
+
+
+install-extras: install-bin-data install-frameworks install-pcl-targets install-web-targets
+
+install-bin-data:
+ $(MKINSTALLDIRS) $(DESTDIR)$(XBUILD_BIN_DIR)/MSBuild
+ $(INSTALL_DATA) data/xbuild.rsp $(DESTDIR)$(XBUILD_BIN_DIR)
+ $(INSTALL_DATA) data/$(XBUILD_VERSION)/Microsoft.Common.tasks $(DESTDIR)$(XBUILD_BIN_DIR)
+ $(INSTALL_DATA) data/$(XBUILD_VERSION)/Microsoft.Common.targets $(DESTDIR)$(XBUILD_BIN_DIR)
+ $(INSTALL_DATA) data/Microsoft.Build.xsd $(DESTDIR)$(XBUILD_BIN_DIR)
+ $(INSTALL_DATA) data/Microsoft.CSharp.targets $(DESTDIR)$(XBUILD_BIN_DIR)
+ $(INSTALL_DATA) data/Microsoft.VisualBasic.targets $(DESTDIR)$(XBUILD_BIN_DIR)
+ $(INSTALL_DATA) data/MSBuild/Microsoft.Build.CommonTypes.xsd $(DESTDIR)$(XBUILD_BIN_DIR)/MSBuild
+ $(INSTALL_DATA) data/MSBuild/Microsoft.Build.Core.xsd $(DESTDIR)$(XBUILD_BIN_DIR)/MSBuild
+ sed -e 's/@ASM_VERSION@/$(XBUILD_ASSEMBLY_VERSION)/g' data/xbuild.exe.config.in > $(DESTDIR)$(XBUILD_BIN_DIR)/xbuild.exe.config
+
+install-frameworks:
+ $(MKINSTALLDIRS) $(DESTDIR)$(NETFRAMEWORK_DIR)/v$(FRAMEWORK_VERSION)/RedistList
+ $(INSTALL_DATA) frameworks/net_$(FRAMEWORK_VERSION).xml $(DESTDIR)$(NETFRAMEWORK_DIR)/v$(FRAMEWORK_VERSION)/RedistList/FrameworkList.xml
+ $(MKINSTALLDIRS) $(DESTDIR)$(NETFRAMEWORK_DIR)/v3.0/RedistList
+ $(INSTALL_DATA) frameworks/net_3.0.xml $(DESTDIR)$(NETFRAMEWORK_DIR)/v3.0/RedistList/FrameworkList.xml
+ $(MKINSTALLDIRS) $(DESTDIR)$(NETFRAMEWORK_DIR)/v4.0/RedistList
+ $(INSTALL_DATA) frameworks/net_4.0.xml $(DESTDIR)$(NETFRAMEWORK_DIR)/v4.0/RedistList/FrameworkList.xml
+ $(MKINSTALLDIRS) $(DESTDIR)$(NETFRAMEWORK_DIR)/v4.0/Profile/Client/RedistList
+ $(INSTALL_DATA) frameworks/net_4.0_client.xml $(DESTDIR)$(NETFRAMEWORK_DIR)/v4.0/Profile/Client/RedistList/FrameworkList.xml
-install-local: install-extras
+install-pcl-targets:
+ $(MKINSTALLDIRS) $(DESTDIR)$(PORTABLE_TARGETS_DIR)/v4.0
+ $(INSTALL_DATA) targets/Microsoft.Portable.CSharp_4.0.targets $(DESTDIR)$(PORTABLE_TARGETS_DIR)/v4.0/Microsoft.Portable.CSharp.targets
+ $(MKINSTALLDIRS) $(DESTDIR)$(PORTABLE_TARGETS_DIR)/v4.5
+ $(INSTALL_DATA) targets/Microsoft.Portable.CSharp_4.5.targets $(DESTDIR)$(PORTABLE_TARGETS_DIR)/v4.5/Microsoft.Portable.CSharp.targets
+ $(INSTALL_DATA) targets/Microsoft.Portable.Core.targets $(DESTDIR)$(PORTABLE_TARGETS_DIR)/Microsoft.Portable.Core.targets
+ $(INSTALL_DATA) targets/Microsoft.Portable.Core.props $(DESTDIR)$(PORTABLE_TARGETS_DIR)/Microsoft.Portable.Core.props
-WEBAPP_DIR = Microsoft/VisualStudio
-SILVERLIGHT_DIR = $(mono_libdir)/mono/xbuild/Microsoft/Silverlight
-PORTABLE_DIR = $(mono_libdir)/mono/xbuild/Microsoft/Portable
-EXTRAS_DIR = $(mono_libdir)/mono/$(INSTALL_FRAMEWORK_VERSION)
-install-extras:
- $(MKINSTALLDIRS) $(DESTDIR)$(EXTRAS_DIR) $(DESTDIR)$(REDISTLIST_DIR) $(DESTDIR)$(XBUILD_FRAMEWORKS_DIR)/v3.0/RedistList $(DESTDIR)$(XBUILD_FRAMEWORKS_DIR)/v4.0/RedistList $(DESTDIR)$(mono_libdir)/mono/3.5 $(DESTDIR)$(mono_libdir)/mono/4.0
- $(INSTALL_DATA) xbuild/xbuild.rsp $(DESTDIR)$(mono_libdir)/mono/$(FRAMEWORK_VERSION)
- $(INSTALL_DATA) xbuild/$(INSTALL_FRAMEWORK_VERSION)/Microsoft.Common.tasks $(DESTDIR)$(EXTRAS_DIR)
- $(INSTALL_DATA) xbuild/$(INSTALL_FRAMEWORK_VERSION)/Microsoft.Common.targets $(DESTDIR)$(EXTRAS_DIR)
- $(INSTALL_DATA) xbuild/Microsoft.Build.xsd $(DESTDIR)$(EXTRAS_DIR)
- $(INSTALL_DATA) xbuild/2.0/Microsoft.Common.targets $(DESTDIR)$(mono_libdir)/mono/2.0
- $(INSTALL_DATA) xbuild/3.5/Microsoft.Common.targets $(DESTDIR)$(mono_libdir)/mono/3.5
- $(INSTALL_DATA) xbuild/Microsoft.CSharp.targets $(DESTDIR)$(EXTRAS_DIR)
- $(INSTALL_DATA) xbuild/Microsoft.VisualBasic.targets $(DESTDIR)$(EXTRAS_DIR)
- $(INSTALL_DATA) xbuild/$(FRAMEWORK_VERSION)/FrameworkList.xml $(DESTDIR)$(REDISTLIST_DIR)
- $(INSTALL_DATA) xbuild/4.0/FrameworkList.xml $(DESTDIR)$(XBUILD_FRAMEWORKS_DIR)/v4.0/RedistList/FrameworkList.xml
- $(INSTALL_DATA) xbuild/FrameworkList-3.0.xml $(DESTDIR)$(XBUILD_FRAMEWORKS_DIR)/v3.0/RedistList/FrameworkList.xml
- $(MKINSTALLDIRS) $(DESTDIR)$(EXTRAS_DIR)/MSBuild
- $(INSTALL_DATA) xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd $(DESTDIR)$(EXTRAS_DIR)/MSBuild
- $(INSTALL_DATA) xbuild/MSBuild/Microsoft.Build.Core.xsd $(DESTDIR)$(EXTRAS_DIR)/MSBuild
- $(MKINSTALLDIRS) $(DESTDIR)$(mono_libdir)/mono/xbuild
- $(MKINSTALLDIRS) $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)/v9.0/WebApplications
- $(INSTALL_DATA) xbuild/Microsoft.WebApplication.targets $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)/v9.0/WebApplications
- $(MKINSTALLDIRS) $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)/v10.0/WebApplications
- $(INSTALL_DATA) xbuild/Microsoft.WebApplication.targets $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)/v10.0/WebApplications
- $(MKINSTALLDIRS) $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)/v11.0/WebApplications
- $(INSTALL_DATA) xbuild/Microsoft.WebApplication.targets $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)/v11.0/WebApplications
- $(MKINSTALLDIRS) $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0
- $(MKINSTALLDIRS) $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0
- $(INSTALL_DATA) xbuild/Microsoft.Silverlight.CSharp.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0
- $(INSTALL_DATA) xbuild/Microsoft.Silverlight.CSharp.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0
- $(INSTALL_DATA) xbuild/Microsoft.Silverlight.VisualBasic.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0
- $(INSTALL_DATA) xbuild/Microsoft.Silverlight.VisualBasic.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0
- sed -e 's/@SILVERLIGHT_VERSION@/2.0/g' xbuild/Microsoft.Silverlight.Common.targets > $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0/Microsoft.Silverlight.Common.targets
- sed -e 's/@SILVERLIGHT_VERSION@/3.0/g' xbuild/Microsoft.Silverlight.Common.targets > $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0/Microsoft.Silverlight.Common.targets
- $(MKINSTALLDIRS) $(DESTDIR)$(PORTABLE_DIR)/v4.0
- $(MKINSTALLDIRS) $(DESTDIR)$(PORTABLE_DIR)/v4.5
- $(INSTALL_DATA) xbuild/4.0/Microsoft.Portable.CSharp.targets $(DESTDIR)$(PORTABLE_DIR)/v4.0
- $(INSTALL_DATA) xbuild/4.5/Microsoft.Portable.CSharp.targets $(DESTDIR)$(PORTABLE_DIR)/v4.5
- $(INSTALL_DATA) xbuild/Microsoft.Portable.CSharp.targets $(DESTDIR)$(mono_libdir)/mono/4.0
+install-web-targets:
+ $(MKINSTALLDIRS) $(DESTDIR)$(VS_TARGETS_DIR)/v9.0/WebApplications
+ $(INSTALL_DATA) targets/Microsoft.WebApplication.targets $(DESTDIR)$(VS_TARGETS_DIR)/v9.0/WebApplications
+ $(MKINSTALLDIRS) $(DESTDIR)$(VS_TARGETS_DIR)/v10.0/WebApplications
+ $(INSTALL_DATA) targets/Microsoft.WebApplication.targets $(DESTDIR)$(VS_TARGETS_DIR)/v10.0/WebApplications
+ $(MKINSTALLDIRS) $(DESTDIR)$(VS_TARGETS_DIR)/v11.0/WebApplications
+ $(INSTALL_DATA) targets/Microsoft.WebApplication.targets $(DESTDIR)$(VS_TARGETS_DIR)/v11.0/WebApplications
EXTRA_DISTFILES = \
- xbuild/xbuild.rsp \
- xbuild/2.0/Microsoft.Common.tasks \
- xbuild/3.5/Microsoft.Common.tasks \
- xbuild/4.0/Microsoft.Common.tasks \
- xbuild/2.0/Microsoft.Common.targets \
- xbuild/3.5/Microsoft.Common.targets \
- xbuild/4.0/Microsoft.Common.targets \
- xbuild/4.0/Microsoft.Portable.CSharp.targets \
- xbuild/4.5/Microsoft.Portable.CSharp.targets \
- xbuild/2.0/FrameworkList.xml \
- xbuild/3.5/FrameworkList.xml \
- xbuild/4.0/FrameworkList.xml \
- xbuild/4.5/FrameworkList.xml \
- xbuild/FrameworkList-3.0.xml \
- xbuild/Microsoft.Build.xsd \
- xbuild/Microsoft.CSharp.targets \
- xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd \
- xbuild/MSBuild/Microsoft.Build.Core.xsd \
- xbuild/Microsoft.VisualBasic.targets \
- xbuild/Microsoft.WebApplication.targets \
- xbuild/Microsoft.Silverlight.Common.targets \
- xbuild/Microsoft.Silverlight.CSharp.targets \
- xbuild/Microsoft.Silverlight.VisualBasic.targets \
- xbuild/Microsoft.Portable.CSharp.targets \
- xbuild_targets.make
+ data/xbuild.rsp \
+ data/xbuild.exe.config.in \
+ data/Microsoft.Build.xsd \
+ data/2.0/Microsoft.Common.tasks \
+ data/3.5/Microsoft.Common.tasks \
+ data/4.0/Microsoft.Common.tasks \
+ data/12.0/Microsoft.Common.tasks \
+ data/2.0/Microsoft.Common.targets \
+ data/3.5/Microsoft.Common.targets \
+ data/4.0/Microsoft.Common.targets \
+ data/12.0/Microsoft.Common.targets \
+ data/Microsoft.CSharp.targets \
+ data/Microsoft.VisualBasic.targets \
+ data/MSBuild/Microsoft.Build.CommonTypes.xsd \
+ data/MSBuild/Microsoft.Build.Core.xsd \
+ frameworks/net_2.0.xml \
+ frameworks/net_3.0.xml \
+ frameworks/net_3.5.xml \
+ frameworks/net_4.0.xml \
+ frameworks/net_4.0_client.xml \
+ frameworks/net_4.5.xml \
+ targets/Microsoft.Portable.CSharp_4.0.targets \
+ targets/Microsoft.Portable.CSharp_4.5.targets \
+ targets/Microsoft.Portable.Core.targets \
+ targets/Microsoft.Portable.Core.props \
+ targets/Microsoft.WebApplication.targets \
+ xbuild.make \
+ xbuild_test.make
diff --git a/mcs/tools/xbuild/SolutionParser.cs b/mcs/tools/xbuild/SolutionParser.cs
index 7df387b021..92fd84e949 100644
--- a/mcs/tools/xbuild/SolutionParser.cs
+++ b/mcs/tools/xbuild/SolutionParser.cs
@@ -117,8 +117,16 @@ namespace Mono.XBuild.CommandLine {
AddGeneralSettings (file, p);
StreamReader reader = new StreamReader (file);
+
string slnVersion = GetSlnFileVersion (reader);
- if (slnVersion == "11.00")
+
+ if (slnVersion == "12.00")
+#if XBUILD_12
+ p.DefaultToolsVersion = "12.0";
+#else
+ p.DefaultToolsVersion = "4.0";
+#endif
+ else if (slnVersion == "11.00")
p.DefaultToolsVersion = "4.0";
else if (slnVersion == "10.00")
p.DefaultToolsVersion = "3.5";
diff --git a/mcs/tools/xbuild/XBuildConsts.cs b/mcs/tools/xbuild/XBuildConsts.cs
new file mode 100644
index 0000000000..dec250204d
--- /dev/null
+++ b/mcs/tools/xbuild/XBuildConsts.cs
@@ -0,0 +1,20 @@
+class XBuildConsts
+{
+#if XBUILD_12
+ public const string Version = "12.0";
+ public const string AssemblyVersion = "12.0.0.0";
+ public const string FileVersion = "12.0.21005.1";
+#elif NET_4_0
+ public const string Version = "4.0";
+ public const string AssemblyVersion = Consts.FxVersion;
+ public const string FileVersion = Consts.FxFileVersion;
+#elif NET_3_5
+ public const string Version = "3.5";
+ public const string AssemblyVersion = Consts.FxVersion;
+ public const string FileVersion = Consts.FxFileVersion;
+#else
+ public const string Version = "2.0";
+ public const string AssemblyVersion = Consts.FxVersion;
+ public const string FileVersion = Consts.FxFileVersion;
+#endif
+}
diff --git a/mcs/tools/xbuild/xbuild/4.0/Microsoft.Common.targets b/mcs/tools/xbuild/data/12.0/Microsoft.Common.targets
index d4ba50eb0a..a038573499 100644
--- a/mcs/tools/xbuild/xbuild/4.0/Microsoft.Common.targets
+++ b/mcs/tools/xbuild/data/12.0/Microsoft.Common.targets
@@ -7,9 +7,10 @@
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore\*"
Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore')"/>
- <Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
-
+ <Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
+
<PropertyGroup>
+ <OutputType Condition="'$(OutputType)' == ''">Exe</OutputType>
<TargetExt Condition="'$(OutputType)' == 'Winexe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Exe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Library'">.dll</TargetExt>
@@ -21,8 +22,8 @@
</PropertyGroup>
<PropertyGroup>
- <AssemblyName Condition="'$(AssemblyName)' == ''">$(RootNamespace)</AssemblyName>
- <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
+ <AssemblyName Condition="'$(AssemblyName)' == ''">$(MSBuildProjectName)</AssemblyName>
+ <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
<OutputPath Condition=" '$(Platform)'=='' and '$(Configuration)'=='' and '$(OutputPath)'=='' ">bin\Debug\</OutputPath>
<WarningLevel Condition="'$(WarningLevel)' == ''" >2</WarningLevel>
@@ -114,7 +115,7 @@
<Output TaskParameter="AppConfigFile" ItemName="AppConfigWithTargetPath"/>
</FindAppConfigFile>
- <MakeDir
+ <MakeDir
Directories="$(OutDir);$(IntermediateOutputPath);@(DocFileItem->'%(RelativeDir)')"
/>
</Target>
@@ -135,10 +136,10 @@
<Output Condition="'$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion35Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
- <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion30Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
- <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion20Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
</GetFrameworkPath>
@@ -170,7 +171,7 @@
<Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName"/>
</GetReferenceAssemblyPaths>
-
+
<!-- Remove duplicates. -->
<ItemGroup>
<_TargetFrameworkDirectories Include="$(_TargetFrameworkDirectories);$(TargetFrameworkDirectory)" KeepDuplicates="false" />
@@ -178,17 +179,17 @@
<PropertyGroup>
<TargetFrameworkDirectory>@(_TargetFrameworkDirectories)</TargetFrameworkDirectory>
</PropertyGroup>
-
+
<ItemGroup Condition="'$(ImplicitlyExpandDesignTimeFacades)' == 'true'">
<DesignTimeFacadeDirectoryRoots Include="$(TargetFrameworkDirectory)" />
<DesignTimeFacadeDirectories Include="%(DesignTimeFacadeDirectoryRoots.Identity)\Facades\" Condition="Exists('%(DesignTimeFacadeDirectoryRoots.Identity)\Facades\')" />
<_DesignTimeFacadeAssemblies Include="%(DesignTimeFacadeDirectories.Identity)\*.dll"/>
</ItemGroup>
-
+
<PropertyGroup Condition="'@(DesignTimeFacadeDirectories)' != ''">
<TargetFrameworkDirectory>$(TargetFrameworkDirectory);@(DesignTimeFacadeDirectories)</TargetFrameworkDirectory>
</PropertyGroup>
-
+
</Target>
<PropertyGroup>
@@ -198,7 +199,9 @@
</AllowedReferenceAssemblyFileExtensions>
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' ">
- .mdb
+ .exe.mdb;
+ .dll.mdb;
+ .xml
</AllowedReferenceRelatedFileExtensions>
<AssemblySearchPaths Condition="'$(AssemblySearchPaths)' == ''">
@@ -226,23 +229,23 @@
PrepareForBuild
</ResolveAssemblyReferencesDependsOn>
</PropertyGroup>
-
+
<PropertyGroup Condition="'$(TargetFrameworkMoniker)' != ''">
<TargetFrameworkMonikerAssemblyAttributesPath Condition="'$(TargetFrameworkMonikerAssemblyAttributesPath)' == ''">$(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttribute$(DefaultLanguageSourceExtension)</TargetFrameworkMonikerAssemblyAttributesPath>
- <GenerateTargetFrameworkAttribute Condition="'$(GenerateTargetFrameworkAttribute)' == '' and '$(TargetFrameworkMoniker)'
+ <GenerateTargetFrameworkAttribute Condition="'$(GenerateTargetFrameworkAttribute)' == '' and '$(TargetFrameworkMoniker)'
!= '' and '$(TargetingClr2Framework)' != 'true'">true</GenerateTargetFrameworkAttribute>
</PropertyGroup>
-
+
<ItemGroup Condition="'$(GenerateTargetFrameworkAttribute)' == 'true'">
<FileWrites Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
</ItemGroup>
-
+
<Target Name="GenerateTargetFrameworkMonikerAttribute"
DependsOnTargets="PrepareForBuild;GetReferenceAssemblyPaths"
Inputs="$(MSBuildToolsPath)\Microsoft.Common.targets"
Outputs="$(TargetFrameworkMonikerAssemblyAttributesPath)"
Condition="'$(GenerateTargetFrameworkAttribute)' == 'true'">
-
+
<WriteLinesToFile
File="$(TargetFrameworkMonikerAssemblyAttributesPath)"
Lines="$(TargetFrameworkMonikerAssemblyAttributeText)"
@@ -250,6 +253,10 @@
ContinueOnError="true"
Condition="'@(Compile)' != '' and '$(TargetFrameworkMonikerAssemblyAttributeText)' != ''"
/>
+
+ <ItemGroup Condition="'@(Compile)' != '' and '$(TargetFrameworkMonikerAssemblyAttributeText)' != ''">
+ <Compile Include="$(TargetFrameworkMonikerAssemblyAttributesPath)"/>
+ </ItemGroup>
</Target>
<Target Name="ResolveReferences" DependsOnTargets="$(ResolveReferencesDependsOn)"/>
@@ -287,7 +294,7 @@
<Output TaskParameter="RelatedFiles" ItemName="_ReferenceRelatedPaths"/>
<Output TaskParameter="SatelliteFiles" ItemName="ReferenceSatellitePaths"/>
<Output TaskParameter="CopyLocalFiles" ItemName="ReferenceCopyLocalPaths"/>
-
+
<!-- FIXME: backwards compatibility -->
<Output TaskParameter="ResolvedDependencyFiles" ItemName="_ResolvedDependencyFiles"/>
</ResolveAssemblyReference>
@@ -380,7 +387,7 @@
AfterBuild
</BuildDependsOn>
</PropertyGroup>
-
+
<Target Name="BuildOnlySettings"/>
<Target Name="BeforeBuild"/>
<Target Name="AfterBuild"/>
@@ -590,7 +597,7 @@
<Target Name="DeployOutputFiles"
DependsOnTargets="PrepareResources;CoreCompile;_CopyDeployFilesToOutputDirectory;_CopyAppConfigFile">
- <Copy
+ <Copy
SourceFiles="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
Condition="'$(OutDir)' != '' and Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')"
DestinationFolder="$(OutDir)"
@@ -623,7 +630,7 @@
<Copy SourceFiles="@(ItemsToCopyToOutputDirectoryPreserveNewest)"
DestinationFiles="@(ItemsToCopyToOutputDirectoryPreserveNewest->'$(OutDir)%(TargetPath)')"
- SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
</Target>
@@ -869,7 +876,7 @@
we can safely remove the file list now -->
<Delete Files="$(IntermediateOutputPath)$(CleanFile)" TreatErrorsAsWarnings="true" />
</Target>
-
+
<PropertyGroup>
<ImplicitlyExpandDesignTimeFacades>true</ImplicitlyExpandDesignTimeFacades>
@@ -883,9 +890,9 @@
GetReferenceAssemblyPaths
</ImplicitlyExpandDesignTimeFacadesDependsOn>
</PropertyGroup>
-
+
<Target Name="ImplicitlyExpandDesignTimeFacades" Condition="'$(ImplicitlyExpandDesignTimeFacades)' == 'true'" DependsOnTargets="$(ImplicitlyExpandDesignTimeFacadesDependsOn)">
-
+
<PropertyGroup>
<_HasReferenceToSystemRuntime Condition="'%(_ResolvedDependencyFiles.Filename)' == 'System.Runtime'">true</_HasReferenceToSystemRuntime>
</PropertyGroup>
@@ -900,11 +907,11 @@
</ReferencePath>
<_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" />
</ItemGroup>
-
+
<Message Importance="Low" Text="Including @(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" />
</Target>
-
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportAfter\*"
Condition="'$(ImportByWildcardAfterMicrosoftCommonTargets)' == 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportAfter')"/>
</Project>
diff --git a/mcs/tools/xbuild/data/12.0/Microsoft.Common.tasks b/mcs/tools/xbuild/data/12.0/Microsoft.Common.tasks
new file mode 100644
index 0000000000..550f6d0493
--- /dev/null
+++ b/mcs/tools/xbuild/data/12.0/Microsoft.Common.tasks
@@ -0,0 +1,35 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
+ <UsingTask TaskName="Microsoft.Build.Tasks.AL" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.AssignTargetPath" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.AssignCulture" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.AssignProjectConfiguration" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.CallTarget" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.CombinePath" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Copy" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.CreateCSharpManifestResourceName" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
+ <UsingTask TaskName="Microsoft.Build.Tasks.CreateItem" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.CreateProperty" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Csc" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Delete" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Error" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Exec" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.FindAppConfigFile" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.FindUnderPath" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.GenerateResource" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.GetFrameworkPath" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.GetFrameworkSdkPath" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.GetReferenceAssemblyPaths" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.LC" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.MakeDir" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Message" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.MSBuild" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.ReadLinesFromFile" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.RemoveDir" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.RemoveDuplicates" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.ResolveAssemblyReference" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.SignFile" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Touch" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Vbc" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.Warning" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.WriteLinesToFile" AssemblyName="Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+</Project>
diff --git a/mcs/tools/xbuild/xbuild/2.0/Microsoft.Common.targets b/mcs/tools/xbuild/data/2.0/Microsoft.Common.targets
index 2463225cca..fef699031c 100644
--- a/mcs/tools/xbuild/xbuild/2.0/Microsoft.Common.targets
+++ b/mcs/tools/xbuild/data/2.0/Microsoft.Common.targets
@@ -1,8 +1,9 @@
<Project DefaultTargets="Build" InitialTargets="_ValidateEssentialProperties" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
-
+
<PropertyGroup>
+ <OutputType Condition="'$(OutputType)' == ''">Exe</OutputType>
<TargetExt Condition="'$(OutputType)' == 'Winexe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Exe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Library'">.dll</TargetExt>
@@ -14,8 +15,8 @@
</PropertyGroup>
<PropertyGroup>
- <AssemblyName Condition="'$(AssemblyName)' == ''">$(RootNamespace)</AssemblyName>
- <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
+ <AssemblyName Condition="'$(AssemblyName)' == ''">$(MSBuildProjectName)</AssemblyName>
+ <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
<OutputPath Condition=" '$(Platform)'=='' and '$(Configuration)'=='' and '$(OutputPath)'=='' ">bin\Debug\</OutputPath>
<WarningLevel Condition="'$(WarningLevel)' == ''" >2</WarningLevel>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v2.0</TargetFrameworkVersion>
@@ -99,7 +100,7 @@
<Output TaskParameter="AppConfigFile" ItemName="AppConfigWithTargetPath"/>
</FindAppConfigFile>
- <MakeDir
+ <MakeDir
Directories="$(OutDir);$(IntermediateOutputPath);@(DocFileItem->'%(RelativeDir)')"
/>
</Target>
@@ -112,10 +113,10 @@
<Output Condition="'$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion35Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
- <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion30Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
- <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion20Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
</GetFrameworkPath>
@@ -134,7 +135,9 @@
</AllowedReferenceAssemblyFileExtensions>
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' ">
- .mdb
+ .exe.mdb;
+ .dll.mdb;
+ .xml
</AllowedReferenceRelatedFileExtensions>
<AssemblySearchPaths Condition="'$(AssemblySearchPaths)' == ''">
@@ -485,7 +488,7 @@
<Target Name="DeployOutputFiles"
DependsOnTargets="PrepareResources;CoreCompile;_CopyDeployFilesToOutputDirectory;_CopyAppConfigFile">
- <Copy
+ <Copy
SourceFiles="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
Condition="'$(OutDir)' != '' and Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')"
DestinationFolder="$(OutDir)"
diff --git a/mcs/tools/xbuild/xbuild/2.0/Microsoft.Common.tasks b/mcs/tools/xbuild/data/2.0/Microsoft.Common.tasks
index d1677c9d84..d1677c9d84 100644
--- a/mcs/tools/xbuild/xbuild/2.0/Microsoft.Common.tasks
+++ b/mcs/tools/xbuild/data/2.0/Microsoft.Common.tasks
diff --git a/mcs/tools/xbuild/xbuild/3.5/Microsoft.Common.targets b/mcs/tools/xbuild/data/3.5/Microsoft.Common.targets
index 787af8580a..03935bdba3 100644
--- a/mcs/tools/xbuild/xbuild/3.5/Microsoft.Common.targets
+++ b/mcs/tools/xbuild/data/3.5/Microsoft.Common.targets
@@ -1,8 +1,9 @@
<Project DefaultTargets="Build" InitialTargets="_ValidateEssentialProperties" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
-
+
<PropertyGroup>
+ <OutputType Condition="'$(OutputType)' == ''">Exe</OutputType>
<TargetExt Condition="'$(OutputType)' == 'Winexe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Exe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Library'">.dll</TargetExt>
@@ -14,8 +15,8 @@
</PropertyGroup>
<PropertyGroup>
- <AssemblyName Condition="'$(AssemblyName)' == ''">$(RootNamespace)</AssemblyName>
- <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
+ <AssemblyName Condition="'$(AssemblyName)' == ''">$(MSBuildProjectName)</AssemblyName>
+ <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
<OutputPath Condition=" '$(Platform)'=='' and '$(Configuration)'=='' and '$(OutputPath)'=='' ">bin\Debug\</OutputPath>
<WarningLevel Condition="'$(WarningLevel)' == ''" >2</WarningLevel>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v2.0</TargetFrameworkVersion>
@@ -99,7 +100,7 @@
<Output TaskParameter="AppConfigFile" ItemName="AppConfigWithTargetPath"/>
</FindAppConfigFile>
- <MakeDir
+ <MakeDir
Directories="$(OutDir);$(IntermediateOutputPath);@(DocFileItem->'%(RelativeDir)')"
/>
</Target>
@@ -112,10 +113,10 @@
<Output Condition="'$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion35Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
- <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion30Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
- <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion20Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
</GetFrameworkPath>
@@ -141,7 +142,9 @@
</AllowedReferenceAssemblyFileExtensions>
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' ">
- .mdb
+ .exe.mdb;
+ .dll.mdb;
+ .xml
</AllowedReferenceRelatedFileExtensions>
<AssemblySearchPaths Condition="'$(AssemblySearchPaths)' == ''">
@@ -492,7 +495,7 @@
<Target Name="DeployOutputFiles"
DependsOnTargets="PrepareResources;CoreCompile;_CopyDeployFilesToOutputDirectory;_CopyAppConfigFile">
- <Copy
+ <Copy
SourceFiles="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
Condition="'$(OutDir)' != '' and Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')"
DestinationFolder="$(OutDir)"
diff --git a/mcs/tools/xbuild/xbuild/3.5/Microsoft.Common.tasks b/mcs/tools/xbuild/data/3.5/Microsoft.Common.tasks
index 397d68c73e..397d68c73e 100644
--- a/mcs/tools/xbuild/xbuild/3.5/Microsoft.Common.tasks
+++ b/mcs/tools/xbuild/data/3.5/Microsoft.Common.tasks
diff --git a/mcs/tools/xbuild/data/4.0/Microsoft.Common.targets b/mcs/tools/xbuild/data/4.0/Microsoft.Common.targets
new file mode 100644
index 0000000000..a038573499
--- /dev/null
+++ b/mcs/tools/xbuild/data/4.0/Microsoft.Common.targets
@@ -0,0 +1,917 @@
+<Project DefaultTargets="Build" InitialTargets="_ValidateEssentialProperties" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ImportByWildcardBeforeMicrosoftCommonTargets Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == ''">true</ImportByWildcardBeforeMicrosoftCommonTargets>
+ <ImportByWildcardAfterMicrosoftCommonTargets Condition="'$(ImportByWildcardAfterMicrosoftCommonTargets)' == ''">true</ImportByWildcardAfterMicrosoftCommonTargets>
+ </PropertyGroup>
+
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore\*"
+ Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore')"/>
+
+ <Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
+
+ <PropertyGroup>
+ <OutputType Condition="'$(OutputType)' == ''">Exe</OutputType>
+ <TargetExt Condition="'$(OutputType)' == 'Winexe'">.exe</TargetExt>
+ <TargetExt Condition="'$(OutputType)' == 'Exe'">.exe</TargetExt>
+ <TargetExt Condition="'$(OutputType)' == 'Library'">.dll</TargetExt>
+ <TargetExt Condition="'$(OutputType)' == 'Netmodule'">.netmodule</TargetExt>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <ProjectDir Condition="'$(ProjectDir)' == ''">$(MSBuildProjectDirectory)\</ProjectDir>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <AssemblyName Condition="'$(AssemblyName)' == ''">$(MSBuildProjectName)</AssemblyName>
+ <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
+ <OutputPath Condition=" '$(Platform)'=='' and '$(Configuration)'=='' and '$(OutputPath)'=='' ">bin\Debug\</OutputPath>
+ <WarningLevel Condition="'$(WarningLevel)' == ''" >2</WarningLevel>
+
+ <TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier>
+ <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.0</TargetFrameworkVersion>
+
+ <TargetFrameworkMoniker Condition="'$(TargetFrameworkMoniker)' == '' and '$(TargetFrameworkProfile)' != ''">$(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion),Profile=$(TargetFrameworkProfile)</TargetFrameworkMoniker>
+ <TargetFrameworkMoniker Condition="'$(TargetFrameworkMoniker)' == ''">$(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion)</TargetFrameworkMoniker>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <OutDir Condition="'$(OutDir)' == ''">$(OutputPath)</OutDir>
+ <OutDir Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')">$(OutDir)\</OutDir>
+
+ <_OriginalConfiguration>$(Configuration)</_OriginalConfiguration>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <ConfigurationName Condition="'$(ConfigurationName)' == ''">$(Configuration)</ConfigurationName>
+
+ <_OriginalPlatform>$(Platform)</_OriginalPlatform>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName>
+
+ <AddAdditionalExplicitAssemblyReferences Condition="'$(AddAdditionalExplicitAssemblyReferences)' == ''">true</AddAdditionalExplicitAssemblyReferences>
+ <AdditionalExplicitAssemblyReferences Condition="'$(AddAdditionalExplicitAssemblyReferences)' == 'true' and '$(TargetFrameworkVersion)' != 'v2.0' and '$(TargetFrameworkVersion)' != 'v3.0'">System.Core;$(AdditionalExplicitAssemblyReferences)</AdditionalExplicitAssemblyReferences>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <SkipCopyUnchangedFiles Condition="'$(SkipCopyUnchangedFiles)' == ''">true</SkipCopyUnchangedFiles>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">obj\</BaseIntermediateOutputPath>
+ <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' != '' and !HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
+ <CleanFile Condition="'$(CleanFile)'==''">$(MSBuildProjectFile).FilesWrittenAbsolute.txt</CleanFile>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(IntermediateOutputPath)' == ''">
+ <IntermediateOutputPath Condition=" '$(PlatformName)' == 'AnyCPU'">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
+ <IntermediateOutputPath Condition=" '$(PlatformName)' != 'AnyCPU'">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <IntermediateOutputPath Condition="'$(IntermediateOutputPath)' != '' and !HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <IntermediateAssembly Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt)" />
+
+ <!-- creating this as a item to use FullPath on it, to build TargetPath -->
+ <_OutDirItem Include="$(OutDir)"/>
+ </ItemGroup>
+
+ <PropertyGroup>
+ <TargetName Condition="'$(TargetName)' == '' ">$(AssemblyName)</TargetName>
+ <TargetFileName Condition="'$(TargetFileName)' == '' ">$(TargetName)$(TargetExt)</TargetFileName>
+ <TargetDir Condition=" '$(TargetDir)' == '' ">@(_OutDirItem->'%(FullPath)')</TargetDir>
+ <TargetPath Condition=" '$(TargetPath)' == '' ">@(_OutDirItem->'%(FullPath)\$(TargetFileName)')</TargetPath>
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildProjectFullPath);$(MSBuildToolsPath)\Microsoft.Common.targets</MSBuildAllProjects>
+ <KeyOriginatorFile Condition=" '$(SignAssembly)' == 'true' ">$(AssemblyOriginatorKeyFile)</KeyOriginatorFile>
+ <TargetingClr2Framework Condition="('$(TargetFrameworkIdentifier)' == '.NETFramework') and ('$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5')">true</TargetingClr2Framework>
+ </PropertyGroup>
+
+ <Target Name="_ValidateEssentialProperties">
+ <Error Condition=" '$(OutputPath)' == '' and '$(SkipInvalidConfigurations)' != 'true'"
+ Text="'OutputPath' property is not set for this project. Usually this is caused by invalid Configuration/Platform combination. Original values: Configuration: $(_OriginalConfiguration) Platform: $(_OriginalPlatform)."/>
+
+ <Warning Condition=" '$(OutputPath)' == '' and '$(SkipInvalidConfigurations)' == 'true'"
+ Text="'OutputPath' property is not set for this project. Usually this is caused by invalid Configuration/Platform combination. Original values: Configuration: $(_OriginalConfiguration) Platform: $(_OriginalPlatform)."/>
+
+ <!-- If OutDir is specified via the command line, then the earlier check
+ to add a trailing slash won't have any affect, so error here. -->
+ <Error
+ Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')"
+ Text="OutDir property must end with a slash."/>
+ </Target>
+
+ <Target Name="PrepareForBuild">
+ <Message Importance="High" Text="Configuration: $(Configuration) Platform: $(Platform)"/>
+
+ <!-- Look for app.config, if $(AppConfig) is specified, then use that. Else look in
+ @(None) and @(Content) -->
+ <CreateItem Include="$(AppConfig)" Condition="'$(AppConfig)' != ''"
+ AdditionalMetadata="TargetPath=$(TargetFileName).config">
+ <Output TaskParameter="Include" ItemName="AppConfigWithTargetPath" />
+ </CreateItem>
+
+ <FindAppConfigFile PrimaryList="@(None)" SecondaryList="@(Content)" TargetPath="$(TargetFileName).config"
+ Condition="'$(AppConfig)' == ''">
+ <Output TaskParameter="AppConfigFile" ItemName="AppConfigWithTargetPath"/>
+ </FindAppConfigFile>
+
+ <MakeDir
+ Directories="$(OutDir);$(IntermediateOutputPath);@(DocFileItem->'%(RelativeDir)')"
+ />
+ </Target>
+
+ <PropertyGroup>
+ <GetFrameworkPathsDependsOn />
+ </PropertyGroup>
+ <Target Name="GetFrameworkPaths"
+ Condition="'$(TargetFrameworkIdentifier)' == '' or '$(TargetFrameworkIdentifier)' == '.NETFramework'"
+ DependsOnTargets="$(GetFrameworkPathsDependsOn)">
+ <GetFrameworkPath>
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v4.5'"
+ TaskParameter="FrameworkVersion45Path"
+ ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v4.0'"
+ TaskParameter="FrameworkVersion40Path"
+ ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v3.5'"
+ TaskParameter="FrameworkVersion35Path"
+ ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ TaskParameter="FrameworkVersion30Path"
+ ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
+ <Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
+ TaskParameter="FrameworkVersion20Path"
+ ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
+ </GetFrameworkPath>
+ <CreateProperty Value="@(_CombinedTargetFrameworkDirectoriesItem)">
+ <Output TaskParameter="Value" PropertyName="TargetFrameworkDirectory"/>
+ </CreateProperty>
+
+ <Warning Text="TargetFrameworkVersion '$(TargetFrameworkVersion)' not supported by this toolset (ToolsVersion: $(MSBuildToolsVersion))."
+ Condition="'$(TargetFrameworkVersion)' != 'v4.5' and '$(TargetFrameworkVersion)' != 'v4.0' and '$(TargetFrameworkVersion)' != 'v3.5' and '$(TargetFrameworkVersion)' != 'v3.0' and '$(TargetFrameworkVersion)' != 'v2.0'"/>
+ </Target>
+
+ <PropertyGroup>
+ <GetReferenceAssemblyPathsDependsOn />
+ </PropertyGroup>
+ <Target Name="GetReferenceAssemblyPaths" DependsOnTargets="$(GetReferenceAssemblyPathsDependsOn)">
+ <!-- in case of .NETFramework, $(TargetFrameworkDirectory) would have been set by
+ GetFrameworkPaths, if it hasn't been changed, then clear it, to avoid duplicates -->
+ <CreateProperty Value="" Condition="'@(_CombinedTargetFrameworkDirectoriesItem)' == '$(TargetFrameworkDirectory)'">
+ <Output TaskParameter="Value" PropertyName="TargetFrameworkDirectory"/>
+ </CreateProperty>
+
+ <GetReferenceAssemblyPaths
+ Condition="'$(TargetFrameworkMoniker)' != '' and '$(_TargetFrameworkDirectories)' == ''"
+ TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
+ RootPath="$(TargetFrameworkRootPath)">
+
+ <Output TaskParameter="ReferenceAssemblyPaths" PropertyName="_TargetFrameworkDirectories"/>
+ <Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="_FullFrameworkReferenceAssemblyPaths"/>
+ <Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName"/>
+ </GetReferenceAssemblyPaths>
+
+
+ <!-- Remove duplicates. -->
+ <ItemGroup>
+ <_TargetFrameworkDirectories Include="$(_TargetFrameworkDirectories);$(TargetFrameworkDirectory)" KeepDuplicates="false" />
+ </ItemGroup>
+ <PropertyGroup>
+ <TargetFrameworkDirectory>@(_TargetFrameworkDirectories)</TargetFrameworkDirectory>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(ImplicitlyExpandDesignTimeFacades)' == 'true'">
+ <DesignTimeFacadeDirectoryRoots Include="$(TargetFrameworkDirectory)" />
+ <DesignTimeFacadeDirectories Include="%(DesignTimeFacadeDirectoryRoots.Identity)\Facades\" Condition="Exists('%(DesignTimeFacadeDirectoryRoots.Identity)\Facades\')" />
+ <_DesignTimeFacadeAssemblies Include="%(DesignTimeFacadeDirectories.Identity)\*.dll"/>
+ </ItemGroup>
+
+ <PropertyGroup Condition="'@(DesignTimeFacadeDirectories)' != ''">
+ <TargetFrameworkDirectory>$(TargetFrameworkDirectory);@(DesignTimeFacadeDirectories)</TargetFrameworkDirectory>
+ </PropertyGroup>
+
+ </Target>
+
+ <PropertyGroup>
+ <AllowedReferenceAssemblyFileExtensions Condition=" '$(AllowedReferenceAssemblyFileExtensions)' == '' ">
+ .exe;
+ .dll
+ </AllowedReferenceAssemblyFileExtensions>
+
+ <AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' ">
+ .exe.mdb;
+ .dll.mdb;
+ .xml
+ </AllowedReferenceRelatedFileExtensions>
+
+ <AssemblySearchPaths Condition="'$(AssemblySearchPaths)' == ''">
+ {CandidateAssemblyFiles};
+ $(ReferencePath);
+ @(AdditionalReferencePath);
+ {HintPathFromItem};
+ {TargetFrameworkDirectory};
+ {PkgConfig};
+ {GAC};
+ {RawFileName};
+ $(OutDir)
+ </AssemblySearchPaths>
+
+ <ResolveReferencesDependsOn>
+ BeforeResolveReferences;
+ ResolveProjectReferences;
+ ResolveAssemblyReferences;
+ AfterResolveReferences
+ </ResolveReferencesDependsOn>
+
+ <ResolveAssemblyReferencesDependsOn>
+ GetFrameworkPaths;
+ GetReferenceAssemblyPaths;
+ PrepareForBuild
+ </ResolveAssemblyReferencesDependsOn>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(TargetFrameworkMoniker)' != ''">
+ <TargetFrameworkMonikerAssemblyAttributesPath Condition="'$(TargetFrameworkMonikerAssemblyAttributesPath)' == ''">$(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttribute$(DefaultLanguageSourceExtension)</TargetFrameworkMonikerAssemblyAttributesPath>
+ <GenerateTargetFrameworkAttribute Condition="'$(GenerateTargetFrameworkAttribute)' == '' and '$(TargetFrameworkMoniker)'
+ != '' and '$(TargetingClr2Framework)' != 'true'">true</GenerateTargetFrameworkAttribute>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(GenerateTargetFrameworkAttribute)' == 'true'">
+ <FileWrites Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
+ </ItemGroup>
+
+ <Target Name="GenerateTargetFrameworkMonikerAttribute"
+ DependsOnTargets="PrepareForBuild;GetReferenceAssemblyPaths"
+ Inputs="$(MSBuildToolsPath)\Microsoft.Common.targets"
+ Outputs="$(TargetFrameworkMonikerAssemblyAttributesPath)"
+ Condition="'$(GenerateTargetFrameworkAttribute)' == 'true'">
+
+ <WriteLinesToFile
+ File="$(TargetFrameworkMonikerAssemblyAttributesPath)"
+ Lines="$(TargetFrameworkMonikerAssemblyAttributeText)"
+ Overwrite="true"
+ ContinueOnError="true"
+ Condition="'@(Compile)' != '' and '$(TargetFrameworkMonikerAssemblyAttributeText)' != ''"
+ />
+
+ <ItemGroup Condition="'@(Compile)' != '' and '$(TargetFrameworkMonikerAssemblyAttributeText)' != ''">
+ <Compile Include="$(TargetFrameworkMonikerAssemblyAttributesPath)"/>
+ </ItemGroup>
+ </Target>
+
+ <Target Name="ResolveReferences" DependsOnTargets="$(ResolveReferencesDependsOn)"/>
+
+ <Target Name="BeforeResolveReferences" />
+ <Target Name="AfterResolveReferences" />
+
+ <Target Name="ResolveAssemblyReferences" DependsOnTargets="$(ResolveAssemblyReferencesDependsOn)">
+ <CreateItem Include="@(Reference)" Exclude="$(AdditionalExplicitAssemblyReferences)">
+ <Output TaskParameter="Include" ItemName="_Reference"/>
+ </CreateItem>
+
+ <CreateItem Include="$(AdditionalExplicitAssemblyReferences)">
+ <Output TaskParameter="Include" ItemName="_Reference"/>
+ </CreateItem>
+
+ <ResolveAssemblyReference
+ Assemblies="@(_Reference)"
+ AssemblyFiles="@(ChildProjectReferences)"
+ SearchPaths="$(AssemblySearchPaths)"
+ CandidateAssemblyFiles="@(Content);@(None)"
+ TargetFrameworkDirectories="$(TargetFrameworkDirectory)"
+ AllowedAssemblyExtensions="$(AllowedReferenceAssemblyFileExtensions)"
+ AllowedRelatedFileExtensions="$(AllowedReferenceRelatedFileExtensions)"
+ FindDependencies="true"
+ FindSatellites="true"
+ FindRelatedFiles="true"
+ TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
+ TargetFrameworkMonikerDisplayName="$(TargetFrameworkMonikerDisplayName)"
+ TargetFrameworkVersion="$(TargetFrameworkVersion)"
+ >
+ <Output TaskParameter="ResolvedFiles" ItemName="ResolvedFiles"/>
+ <Output TaskParameter="ResolvedFiles" ItemName="ReferencePath"/>
+ <Output TaskParameter="ResolvedDependencyFiles" ItemName="ReferenceDependencyPaths"/>
+ <Output TaskParameter="RelatedFiles" ItemName="_ReferenceRelatedPaths"/>
+ <Output TaskParameter="SatelliteFiles" ItemName="ReferenceSatellitePaths"/>
+ <Output TaskParameter="CopyLocalFiles" ItemName="ReferenceCopyLocalPaths"/>
+
+ <!-- FIXME: backwards compatibility -->
+ <Output TaskParameter="ResolvedDependencyFiles" ItemName="_ResolvedDependencyFiles"/>
+ </ResolveAssemblyReference>
+ </Target>
+
+ <Target
+ Name="AssignProjectConfiguration"
+ Condition="'@(ProjectReference)' != ''">
+
+ <!-- assign configs if building a solution file -->
+ <AssignProjectConfiguration
+ ProjectReferences = "@(ProjectReference)"
+ SolutionConfigurationContents = "$(CurrentSolutionConfigurationContents)"
+ Condition="'$(BuildingSolutionFile)' == 'true'">
+
+ <Output TaskParameter = "AssignedProjects" ItemName = "ProjectReferenceWithConfiguration"/>
+ </AssignProjectConfiguration>
+
+ <!-- Else, just -->
+ <CreateItem Include="@(ProjectReference)" Condition="'$(BuildingSolutionFile)' != 'true'">
+ <Output TaskParameter="Include" ItemName="ProjectReferenceWithConfiguration"/>
+ </CreateItem>
+
+ </Target>
+
+ <!-- Split projects into 2 lists
+ ProjectReferenceWithConfigurationExistent: Projects existent on disk
+ ProjectReferenceWithConfigurationNonExistent: Projects non-existent on disk -->
+
+ <Target Name="SplitProjectReferencesByExistent"
+ DependsOnTargets="AssignProjectConfiguration">
+
+ <CreateItem Include="@(ProjectReferenceWithConfiguration)" Condition="'@(ProjectReferenceWithConfiguration)' != ''">
+ <Output TaskParameter="Include" ItemName="ProjectReferenceWithConfigurationExistent"
+ Condition="Exists ('%(ProjectReferenceWithConfiguration.Identity)')"/>
+
+ <Output TaskParameter="Include" ItemName="ProjectReferenceWithConfigurationNonExistent"
+ Condition="!Exists ('%(ProjectReferenceWithConfiguration.Identity)')"/>
+ </CreateItem>
+ </Target>
+
+ <Target
+ Name="ResolveProjectReferences"
+ DependsOnTargets="SplitProjectReferencesByExistent"
+ >
+ <!-- If building from a .sln.proj or from IDE, then referenced projects have already
+ been built, so just get the target paths -->
+ <MSBuild
+ Projects="@(ProjectReferenceWithConfigurationExistent)"
+ Targets="GetTargetPath"
+ Properties="%(ProjectReferenceWithConfigurationExistent.SetConfiguration); %(ProjectReferenceWithConfigurationExistent.SetPlatform)"
+ Condition="'@(ProjectReferenceWithConfigurationExistent)' != '' and ('$(BuildingSolutionFile)' == 'true' or '$(BuildingInsideVisualStudio)' == 'true')">
+
+ <Output TaskParameter="TargetOutputs" ItemName="ChildProjectReferences" />
+ </MSBuild>
+
+ <!-- Building a project directly, build the referenced the projects also -->
+ <MSBuild
+ Projects="@(ProjectReferenceWithConfigurationExistent)"
+ Properties="%(ProjectReferenceWithConfigurationExistent.SetConfiguration); %(ProjectReferenceWithConfigurationExistent.SetPlatform)"
+ Condition="'@(ProjectReferenceWithConfigurationExistent)' != '' and '$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true' ">
+
+ <Output TaskParameter="TargetOutputs" ItemName="ChildProjectReferences" />
+ </MSBuild>
+
+ <Warning Text="Referenced Project %(ProjectReferenceWithConfigurationNonExistent.Identity) not found, ignoring."
+ Condition="'@(ProjectReferenceWithConfigurationNonExistent)' != ''"/>
+ </Target>
+
+ <Target Name = "CopyFilesMarkedCopyLocal">
+ <Copy
+ SourceFiles="@(ReferenceCopyLocalPaths)"
+ DestinationFiles="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')"
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ <Output TaskParameter = "DestinationFiles" ItemName = "FileWritesShareable"/>
+ </Copy>
+ </Target>
+
+ <Target Name="_ComputeNonExistentFileProperty" Condition='false'>
+ <CreateProperty Value="__NonExistentSubDir__\__NonExistentFile__">
+ <Output TaskParameter="Value" PropertyName="NonExistentFile"/>
+ </CreateProperty>
+ </Target>
+
+ <PropertyGroup>
+ <BuildDependsOn>
+ BuildOnlySettings;
+ BeforeBuild;
+ CoreBuild;
+ AfterBuild
+ </BuildDependsOn>
+ </PropertyGroup>
+
+ <Target Name="BuildOnlySettings"/>
+ <Target Name="BeforeBuild"/>
+ <Target Name="AfterBuild"/>
+
+ <Target Name="Build" DependsOnTargets="$(BuildDependsOn)" Outputs="$(TargetPath)"/>
+
+ <PropertyGroup>
+ <CoreBuildDependsOn>
+ PrepareForBuild;
+ GetFrameworkPaths;
+ GetReferenceAssemblyPaths;
+ PreBuildEvent;
+ ResolveReferences;
+ CopyFilesMarkedCopyLocal;
+ PrepareResources;
+ Compile;
+ PrepareForRun;
+ DeployOutputFiles;
+ _RecordCleanFile;
+ PostBuildEvent
+ </CoreBuildDependsOn>
+ </PropertyGroup>
+
+ <Target
+ Name="CoreBuild"
+ DependsOnTargets="$(CoreBuildDependsOn)"
+ Outputs="$(OutDir)$(AssemblyName)$(TargetExt)">
+
+ <OnError ExecuteTargets="_TimestampAfterCompile;PostBuildEvent"
+ Condition=" '$(RunPostBuildEvent)' == 'Always' or '$(RunPostBuildEvent)' == 'OnOutputUpdated'"/>
+
+ <OnError ExecuteTargets="_RecordCleanFile" />
+ </Target>
+
+ <PropertyGroup>
+ <CompileDependsOn>
+ ResolveReferences;
+ GenerateTargetFrameworkMonikerAttribute;
+ BeforeCompile;
+ _TimestampBeforeCompile;
+ CoreCompile;
+ _TimestampAfterCompile;
+ AfterCompile
+ </CompileDependsOn>
+ </PropertyGroup>
+
+ <Target Name="BeforeCompile" />
+ <Target Name="AfterCompile" />
+
+ <Target Name="Compile" DependsOnTargets="$(CompileDependsOn)"/>
+
+ <PropertyGroup>
+ <PrepareForRunDependsOn>
+ DeployOutputFiles
+ </PrepareForRunDependsOn>
+ </PropertyGroup>
+ <Target Name="PrepareForRun" DependsOnTargets="$(PrepareForRunDependsOn)"/>
+
+ <PropertyGroup>
+ <PrepareResourcesDependsOn>
+ AssignTargetPaths;
+ SplitResourcesByCulture;
+ CreateManifestResourceNames;
+ CopyNonResxEmbeddedResources;
+ GenerateResources;
+ GenerateSatelliteAssemblies;
+ CompileLicxFiles
+ </PrepareResourcesDependsOn>
+ </PropertyGroup>
+ <Target Name="PrepareResources" DependsOnTargets="$(PrepareResourcesDependsOn)" />
+
+ <Target Name="SplitResourcesByCulture" DependsOnTargets="AssignTargetPaths">
+ <!-- Extract .licx files into @(LicxFiles) -->
+ <CreateItem Include="@(EmbeddedResourceWithTargetPath)" Condition="'%(Extension)' == '.licx'">
+ <Output TaskParameter="Include" ItemName="LicxFiles"/>
+ </CreateItem>
+
+ <!-- Split *remaining* resource files into various groups.. -->
+ <AssignCulture Files="@(EmbeddedResourceWithTargetPath)" Condition="'%(Extension)' != '.licx'">
+ <Output TaskParameter="AssignedFilesWithNoCulture" ItemName="ResourcesWithNoCulture"/>
+ <Output TaskParameter="AssignedFilesWithCulture" ItemName="ResourcesWithCulture"/>
+ </AssignCulture>
+
+ <CreateItem Include="@(ResourcesWithNoCulture)" Condition="'%(Extension)' == '.resx'">
+ <Output TaskParameter="Include" ItemName="ResxWithNoCulture"/>
+ </CreateItem>
+
+ <CreateItem Include="@(ResourcesWithNoCulture)" Condition="'%(Extension)' != '.resx'">
+ <Output TaskParameter="Include" ItemName="NonResxWithNoCulture"/>
+ </CreateItem>
+
+ <CreateItem Include="@(ResourcesWithCulture)" Condition="'%(Extension)' == '.resx'">
+ <Output TaskParameter="Include" ItemName="ResxWithCulture"/>
+ </CreateItem>
+
+ <CreateItem Include="@(ResourcesWithCulture)" Condition="'%(Extension)' != '.resx'">
+ <Output TaskParameter="Include" ItemName="NonResxWithCulture"/>
+ </CreateItem>
+ </Target>
+
+ <!-- Copy non-resx resources to their manifest resource names, this is what the compiler expects -->
+ <Target Name = "CopyNonResxEmbeddedResources"
+ Condition = "'@(NonResxWithCulture)' != '' or '@(NonResxWithNoCulture)' != '' or '@(ManifestNonResxWithCulture)' != '' or '@(ManifestNonResxWithNoCulture)' != ''">
+
+ <MakeDir Directories="$(IntermediateOutputPath)%(ManifestNonResxWithCulture.Culture)"/>
+ <Copy SourceFiles = "@(NonResxWithCulture)"
+ DestinationFiles = "@(ManifestNonResxWithCulture->'$(IntermediateOutputPath)%(Identity)')"
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ <Output TaskParameter = "DestinationFiles" ItemName = "ManifestNonResxWithCultureOnDisk"/>
+ <Output TaskParameter = "DestinationFiles" ItemName = "FileWrites"/>
+ </Copy>
+
+ <Copy SourceFiles = "@(NonResxWithNoCulture)"
+ DestinationFiles = "@(ManifestNonResxWithNoCulture->'$(IntermediateOutputPath)%(Identity)')"
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ <Output TaskParameter = "DestinationFiles" ItemName = "ManifestNonResxWithNoCultureOnDisk"/>
+ <Output TaskParameter = "DestinationFiles" ItemName = "FileWrites"/>
+ </Copy>
+ </Target>
+
+ <Target Name = "GenerateResources">
+ <GenerateResource
+ Sources = "@(ResxWithNoCulture)"
+ UseSourcePath = "true"
+ OutputResources = "@(ManifestResourceWithNoCultureName->'$(IntermediateOutputPath)%(Identity).resources')"
+ Condition = "'@(ResxWithNoCulture)' != '' ">
+
+ <Output TaskParameter = "OutputResources" ItemName = "ManifestResourceWithNoCulture"/>
+ <Output TaskParameter = "FilesWritten" ItemName = "FileWrites"/>
+ </GenerateResource>
+
+ <GenerateResource
+ Sources = "@(ResxWithCulture)"
+ UseSourcePath = "true"
+ OutputResources = "@(ManifestResourceWithCultureName->'$(IntermediateOutputPath)%(Identity).resources')"
+ Condition = "'@(ResxWithCulture)' != '' ">
+
+ <Output TaskParameter = "OutputResources" ItemName = "ManifestResourceWithCulture"/>
+ <Output TaskParameter = "FilesWritten" ItemName = "FileWrites"/>
+ </GenerateResource>
+ </Target>
+
+ <Target Name="GenerateSatelliteAssemblies"
+ Inputs="@(ManifestResourceWithCulture);@(ManifestNonResxWithCultureOnDisk)"
+ Outputs="$(IntermediateOutputPath)%(Culture)\$(AssemblyName).resources.dll" >
+ <!-- @(NonResxWithCulture) - rename files to ManifestNon.. and then use for AL -->
+ <MakeDir Directories = "$(IntermediateOutputPath)%(ManifestResourceWithCulture.Culture)" Condition = "'@(ManifestResourceWithCulture)' != ''" />
+ <MakeDir Directories = "$(IntermediateOutputPath)%(ManifestNonResxWithCultureOnDisk.Culture)" Condition = "'@(ManifestNonResxWithCultureOnDisk)' != ''" />
+
+ <AL
+ Culture = "%(Culture)"
+ DelaySign="$(DelaySign)"
+ EmbedResources = "@(ManifestResourceWithCulture);@(ManifestNonResxWithCultureOnDisk)"
+ KeyFile="$(KeyOriginatorFile)"
+ ToolExe="$(AlToolExe)"
+ ToolPath="$(AlToolPath)"
+ OutputAssembly = "$(IntermediateOutputPath)%(Culture)\$(AssemblyName).resources.dll" >
+ <Output TaskParameter="OutputAssembly" ItemName="FileWrites"/>
+ </AL>
+
+
+ <CreateItem
+ Include = "$(IntermediateOutputPath)%(Culture)\$(AssemblyName).resources.dll"
+ AdditionalMetadata = "Culture=%(Culture)"
+ Condition = "'@(ManifestResourceWithCulture)' != '' or '@(ManifestNonResxWithCultureOnDisk)' != ''">
+ <Output TaskParameter = "Include" ItemName = "IntermediateSatelliteAssemblies" />
+ </CreateItem>
+ </Target>
+
+ <PropertyGroup>
+ <CompileLicxFilesDependsOn></CompileLicxFilesDependsOn>
+ </PropertyGroup>
+
+ <Target Name = "CompileLicxFiles"
+ Condition = "'@(LicxFiles)' != ''"
+ DependsOnTargets = "$(CompileLicxFilesDependsOn)"
+ Outputs = "$(IntermediateOutputPath)$(TargetFileName).licenses">
+ <LC
+ Sources = "@(LicxFiles)"
+ LicenseTarget = "$(TargetFileName)"
+ OutputDirectory = "$(IntermediateOutputPath)"
+ OutputLicense = "$(IntermediateOutputPath)$(TargetFileName).licenses"
+ ReferencedAssemblies = "@(ReferencePath);@(ReferenceDependencyPaths)"
+ ToolPath = "$(LCToolPath)"
+ ToolExe = "$(LCToolExe)">
+
+ <Output TaskParameter="OutputLicense" ItemName="CompiledLicenseFile"/>
+ <Output TaskParameter="OutputLicense" ItemName="FileWrites"/>
+ </LC>
+ </Target>
+
+ <!-- Assign target paths to files that will need to be copied along with the project -->
+ <Target Name = "AssignTargetPaths">
+ <AssignTargetPath Files="@(None)" RootFolder="$(MSBuildProjectDirectory)">
+ <Output TaskParameter="AssignedFiles" ItemName="NoneWithTargetPath"/>
+ </AssignTargetPath>
+
+ <AssignTargetPath Files="@(Content)" RootFolder="$(MSBuildProjectDirectory)">
+ <Output TaskParameter="AssignedFiles" ItemName="ContentWithTargetPath"/>
+ </AssignTargetPath>
+
+ <AssignTargetPath Files="@(EmbeddedResource)" RootFolder="$(MSBuildProjectDirectory)">
+ <Output TaskParameter="AssignedFiles" ItemName="EmbeddedResourceWithTargetPath"/>
+ </AssignTargetPath>
+ </Target>
+
+ <Target Name="DeployOutputFiles"
+ DependsOnTargets="PrepareResources;CoreCompile;_CopyDeployFilesToOutputDirectory;_CopyAppConfigFile">
+
+ <Copy
+ SourceFiles="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
+ Condition="'$(OutDir)' != '' and Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')"
+ DestinationFolder="$(OutDir)"
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)" >
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
+ </Copy>
+
+ <Copy SourceFiles="@(IntermediateAssembly)" Condition="'$(OutDir)' != '' and Exists ('@(IntermediateAssembly)')" DestinationFolder="$(OutDir)" SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
+ </Copy>
+
+ <Copy
+ SourceFiles = "@(IntermediateSatelliteAssemblies)"
+ DestinationFiles = "@(IntermediateSatelliteAssemblies->'$(OutDir)\%(Culture)\$(AssemblyName).resources.dll')"
+ Condition = "'@(IntermediateSatelliteAssemblies)' != ''"
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
+ </Copy>
+ </Target>
+
+ <Target Name="_CopyDeployFilesToOutputDirectory"
+ DependsOnTargets="GetCopyToOutputDirectoryItems;
+ _CopyDeployFilesToOutputDirectoryAlways;
+ _CopyDeployFilesToOutputDirectoryPreserveNewest"/>
+
+ <Target Name="_CopyDeployFilesToOutputDirectoryPreserveNewest"
+ Condition="'@(ItemsToCopyToOutputDirectoryPreserveNewest)' != ''"
+ Inputs="@(ItemsToCopyToOutputDirectoryPreserveNewest)"
+ Outputs="@(ItemsToCopyToOutputDirectoryPreserveNewest->'$(OutDir)%(TargetPath)')">
+
+ <Copy SourceFiles="@(ItemsToCopyToOutputDirectoryPreserveNewest)"
+ DestinationFiles="@(ItemsToCopyToOutputDirectoryPreserveNewest->'$(OutDir)%(TargetPath)')"
+ SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
+ </Copy>
+ </Target>
+
+ <!-- Copy if newer -->
+ <Target Name="_CopyDeployFilesToOutputDirectoryAlways"
+ Condition="'@(ItemsToCopyToOutputDirectoryAlways)' != ''">
+
+ <Copy SourceFiles="@(ItemsToCopyToOutputDirectoryAlways)"
+ DestinationFiles="@(ItemsToCopyToOutputDirectoryAlways->'$(OutDir)%(TargetPath)')">
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
+ </Copy>
+ </Target>
+
+
+ <Target Name="_CopyAppConfigFile" Condition="'@(AppConfigWithTargetPath)' != ''"
+ Inputs="@(AppConfigWithTargetPath)"
+ Outputs="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')">
+
+ <Copy SourceFiles="@(AppConfigWithTargetPath)"
+ DestinationFiles="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')">
+ <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
+ </Copy>
+ </Target>
+
+ <Target Name="GetTargetPath" Outputs="$(TargetPath)"/>
+
+ <Target Name="GetCopyToOutputDirectoryItems"
+ Outputs="@(AllItemsFullPathWithTargetPath)"
+ DependsOnTargets="AssignTargetPaths;SplitProjectReferencesByExistent">
+
+ <!-- FIXME: handle .vcproj
+ FIXME: Private ProjectReferences are honored only in 3.5
+ -->
+ <MSBuild
+ Projects="@(ProjectReferenceWithConfigurationExistent)"
+ Targets="GetCopyToOutputDirectoryItems"
+ Condition="'@(ProjectReferenceWithConfigurationExistent)' != '' and '%(ProjectReferenceWithConfigurationExistent.Private)' != 'false'">
+
+ <Output TaskParameter="TargetOutputs" ItemName="AllChildProjectItemsWithTargetPath"/>
+ </MSBuild>
+
+ <!-- Process items from child project. The outputs need to have full path
+ as they'll be used from other projects -->
+
+ <CreateItem
+ Include="@(AllChildProjectItemsWithTargetPath->'%(FullPath)')"
+ Condition="'%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
+
+ <Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
+ Condition="'%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
+ Condition="'%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
+
+ </CreateItem>
+
+ <!-- Process _this_ project's items -->
+
+ <CreateItem
+ Include="@(NoneWithTargetPath->'%(FullPath)')"
+ Condition="'%(NoneWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(NoneWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
+ <Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
+ Condition="'%(NoneWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
+ Condition="'%(NoneWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
+ </CreateItem>
+
+ <CreateItem
+ Include="@(ContentWithTargetPath->'%(FullPath)')"
+ Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(ContentWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
+ <Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
+ Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
+ Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
+ </CreateItem>
+
+ <CreateItem
+ Include="@(EmbeddedResourceWithTargetPath->'%(FullPath)')"
+ Condition="'%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
+ <Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
+ Condition="'%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
+ <Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
+ Condition="'%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
+ </CreateItem>
+
+ </Target>
+
+ <!-- Pre/Post BuildEvents -->
+ <PropertyGroup>
+ <PreBuildEventDependsOn />
+ </PropertyGroup>
+
+ <Target Name="PreBuildEvent"
+ Condition="'$(PreBuildEvent)' != ''"
+ DependsOnTargets="$(PreBuildEventDependsOn)">
+
+ <Exec WorkingDirectory="$(OutDir)" Command="$(PreBuildEvent)" />
+ </Target>
+
+ <!-- PostBuildEvent depends on $(RunPostBuildEvent)
+
+ Default: OnBuildSuccess
+ OnBuildSuccess: Run after a successful build
+ OnOutputUpdated: Run only if the output assembly got updates
+ Always: Run always
+ -->
+ <PropertyGroup>
+ <PostBuildEventDependsOn />
+ </PropertyGroup>
+
+ <!-- this gets invoked in two cases, from CoreBuildDependsOn, if the build completes
+ successfully, OR from OnError in CoreBuild, if the build failed and $(RunPostBuildEvent)
+ is 'Always' or 'OnOutputUpdated'. Invoke $(PostBuildEvent) if its either Empty (== OnBuildSuccess)
+ or OnBuildSuccess or Always OR (OnOutputUpdated and output assembly got updated) -->
+ <Target Name="PostBuildEvent"
+ Condition="'$(PostBuildEvent)' != '' and
+ ('$(RunPostBuildEvent)' != 'OnOutputUpdated' or
+ '$(_AssemblyModifiedTimeBeforeCompile)' != '$(_AssemblyModifiedTimeAfterCompile)')"
+ DependsOnTargets="$(PostBuildEventDependsOn)">
+
+ <Exec WorkingDirectory="$(OutDir)" Command="$(PostBuildEvent)" />
+ </Target>
+
+ <!-- Timestamp the output assemblies, required for PostBuildEvent -->
+ <Target Name="_TimestampBeforeCompile" Condition="'$(RunPostBuildEvent)' == 'OnOutputUpdated'">
+ <CreateItem Include="%(IntermediateAssembly.ModifiedTime)">
+ <Output TaskParameter="Include" PropertyName="_AssemblyModifiedTimeBeforeCompile" />
+ </CreateItem>
+ </Target>
+ <Target Name="_TimestampAfterCompile" Condition="'$(RunPostBuildEvent)' == 'OnOutputUpdated'">
+ <CreateItem Include="%(IntermediateAssembly.ModifiedTime)">
+ <Output TaskParameter="Include" PropertyName="_AssemblyModifiedTimeAfterCompile" />
+ </CreateItem>
+ </Target>
+
+ <!-- Rebuild -->
+ <PropertyGroup>
+ <RebuildDependsOn>
+ BeforeRebuild;
+ Clean;
+ $(MSBuildProjectDefaultTargets);
+ AfterRebuild;
+ </RebuildDependsOn>
+
+ <RebuildDependsOn Condition="'$(MSBuildProjectDefaultTargets)' == 'Rebuild'">
+ BeforeRebuild;
+ Clean;
+ Build;
+ AfterRebuild;
+ </RebuildDependsOn>
+ </PropertyGroup>
+
+ <Target Name="BeforeRebuild" />
+ <Target Name="AfterRebuild" />
+
+ <Target Name="Rebuild"
+ DependsOnTargets="$(RebuildDependsOn)"
+ Outputs="$(TargetPath)"/>
+
+ <!-- Clean -->
+ <Target Name="_RecordCleanFile"
+ DependsOnTargets="_GetCompileOutputsForClean">
+
+ <!-- add to list of previous writes for this platform/config -->
+
+ <ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
+ <Output TaskParameter="Lines" ItemName="PreviousFileWrites"/>
+ </ReadLinesFromFile>
+
+ <!-- CopyLocal files: In case all the projects build to common output
+ directory, then other projects might depend on some of these
+ CopyLocal files, so delete only the ones under *this* project
+ directory -->
+ <FindUnderPath Path="$(MSBuildProjectDirectory)" Files="@(FileWritesShareable)">
+ <Output TaskParameter="InPath" ItemName="FileWrites"/>
+ </FindUnderPath>
+
+ <RemoveDuplicates Inputs="@(PreviousFileWrites);@(FileWrites->'%(FullPath)')">
+ <Output TaskParameter="Filtered" ItemName="CombinedFileWrites"/>
+ </RemoveDuplicates>
+
+ <WriteLinesToFile
+ File="$(IntermediateOutputPath)$(CleanFile)"
+ Lines="@(CombinedFileWrites)"
+ Overwrite="true"/>
+ </Target>
+
+ <PropertyGroup>
+ <CleanDependsOn>
+ BeforeClean;
+ CleanReferencedProjects;
+ CoreClean;
+ AfterClean
+ </CleanDependsOn>
+ </PropertyGroup>
+
+ <Target Name="_GetCompileOutputsForClean">
+ <!-- assembly and debug file in the *intermediate output path* -->
+ <CreateItem Include="@(IntermediateAssembly)" Condition="Exists('@(IntermediateAssembly)')">
+ <Output TaskParameter="Include" ItemName="FileWrites"/>
+ </CreateItem>
+
+ <CreateItem Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
+ Condition="Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')">
+ <Output TaskParameter="Include" ItemName="FileWrites"/>
+ </CreateItem>
+ </Target>
+
+ <!-- Get the list of files written, for clean -->
+ <Target Name="_GetCleanFileWrites"
+ DependsOnTargets="_GetCompileOutputsForClean">
+ <ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
+ <Output TaskParameter="Lines" ItemName="PreviousFileWrites"/>
+ </ReadLinesFromFile>
+ </Target>
+
+ <Target Name="CleanReferencedProjects"
+ DependsOnTargets="AssignProjectConfiguration">
+
+ <!-- If building from .sln.proj or from IDE, clean will get handled by them,
+ else we are building a project directly, from the command line, so
+ clean the referenced projects -->
+ <MSBuild Projects="@(ProjectReferenceWithConfigurationExistent)"
+ Targets="Clean"
+ Condition=" '$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true' and '@(ProjectReferenceWithConfigurationExistent)' != ''" />
+
+ </Target>
+
+ <Target Name="Clean" DependsOnTargets="$(CleanDependsOn)"/>
+
+ <!-- Override in project to run before/after clean tasks -->
+ <Target Name="BeforeClean" />
+ <Target Name="AfterClean" />
+
+ <Target Name="CoreClean" DependsOnTargets="_GetCleanFileWrites">
+ <Delete Files="@(PreviousFileWrites);@(FileWrites)" TreatErrorsAsWarnings="true"/>
+
+ <!-- all previous files written for this platform/config have been deleted,
+ we can safely remove the file list now -->
+ <Delete Files="$(IntermediateOutputPath)$(CleanFile)" TreatErrorsAsWarnings="true" />
+ </Target>
+
+ <PropertyGroup>
+ <ImplicitlyExpandDesignTimeFacades>true</ImplicitlyExpandDesignTimeFacades>
+
+ <ResolveReferencesDependsOn>
+ $(ResolveReferencesDependsOn);
+ ImplicitlyExpandDesignTimeFacades
+ </ResolveReferencesDependsOn>
+
+ <ImplicitlyExpandDesignTimeFacadesDependsOn>
+ $(ImplicitlyExpandDesignTimeFacadesDependsOn);
+ GetReferenceAssemblyPaths
+ </ImplicitlyExpandDesignTimeFacadesDependsOn>
+ </PropertyGroup>
+
+ <Target Name="ImplicitlyExpandDesignTimeFacades" Condition="'$(ImplicitlyExpandDesignTimeFacades)' == 'true'" DependsOnTargets="$(ImplicitlyExpandDesignTimeFacadesDependsOn)">
+
+ <PropertyGroup>
+ <_HasReferenceToSystemRuntime Condition="'%(_ResolvedDependencyFiles.Filename)' == 'System.Runtime'">true</_HasReferenceToSystemRuntime>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(_HasReferenceToSystemRuntime)' == 'true'">
+ <!-- If the user has manually referenced these assemblies, remove them so we don't end up with duplicates -->
+ <ReferencePath Remove="@(_DesignTimeFacadeAssemblies)"/>
+ <ReferencePath Include="%(_DesignTimeFacadeAssemblies.Identity)">
+ <WinMDFile>false</WinMDFile>
+ <CopyLocal>false</CopyLocal>
+ <ResolvedFrom>ImplicitlyExpandDesignTimeFacades</ResolvedFrom>
+ </ReferencePath>
+ <_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" />
+ </ItemGroup>
+
+ <Message Importance="Low" Text="Including @(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" />
+
+ </Target>
+
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportAfter\*"
+ Condition="'$(ImportByWildcardAfterMicrosoftCommonTargets)' == 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportAfter')"/>
+</Project>
diff --git a/mcs/tools/xbuild/xbuild/4.0/Microsoft.Common.tasks b/mcs/tools/xbuild/data/4.0/Microsoft.Common.tasks
index d326aad014..d326aad014 100644
--- a/mcs/tools/xbuild/xbuild/4.0/Microsoft.Common.tasks
+++ b/mcs/tools/xbuild/data/4.0/Microsoft.Common.tasks
diff --git a/mcs/tools/xbuild/xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd b/mcs/tools/xbuild/data/MSBuild/Microsoft.Build.CommonTypes.xsd
index 390189b3ed..148f6bf4f3 100644
--- a/mcs/tools/xbuild/xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd
+++ b/mcs/tools/xbuild/data/MSBuild/Microsoft.Build.CommonTypes.xsd
@@ -4,7 +4,7 @@ elementFormDefault="qualified">
<!-- =================== INCLUDE COMMON SCHEMA =========================== -->
<xs:include schemaLocation="Microsoft.Build.Core.xsd"/>
-
+
<!-- ======================== ITEMS =====================================-->
<!-- Possible Types include SimpleItemType (no meta-data subelements), GenericItemType (any meta-data), or something more specific.-->
<xs:element name="Reference" substitutionGroup="msb:Item">
@@ -30,7 +30,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Fusion name of the assembly (optional)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="SpecificVersion">
<xs:annotation>
<xs:documentation>Whether only the version in the fusion name should be referenced (optional, boolean)</xs:documentation>
@@ -45,7 +45,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Whether the reference should be copied to the output folder (optional, boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
</xs:choice>
</xs:sequence>
<!-- redefine Include just to give a specific description -->
@@ -142,7 +142,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Path to native reference</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -165,7 +165,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Project GUID, in the form {00000000-0000-0000-0000-000000000000}</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Package"/>
</xs:choice>
</xs:sequence>
@@ -178,15 +178,15 @@ elementFormDefault="qualified">
</xs:extension>
</xs:complexContent>
</xs:complexType>
- </xs:element>
+ </xs:element>
<xs:element name="Compile" substitutionGroup="msb:Item">
<xs:annotation>
<xs:documentation>Source files for compiler</xs:documentation>
- </xs:annotation>
- <xs:complexType>
+ </xs:annotation>
+ <xs:complexType>
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="SubType"/>
<xs:element name="DependentUpon"/>
@@ -194,7 +194,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Whether file was generated from another file (boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="DesignTime"/>
<xs:element name="Link">
<xs:annotation>
@@ -206,7 +206,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Display in user interface (optional, boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
</xs:choice>
</xs:sequence>
<!-- redefine Include just to give a specific description -->
@@ -214,7 +214,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Semi-colon separated list of source files (wildcards are allowed)</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -222,7 +222,7 @@ elementFormDefault="qualified">
<xs:element name="EmbeddedResource" substitutionGroup="msb:Item">
<xs:annotation>
<xs:documentation>Resources to be embedded in the generated assembly</xs:documentation>
- </xs:annotation>
+ </xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
@@ -233,27 +233,27 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Name of any file generator that is run on this item</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="LastGenOutput">
<xs:annotation>
<xs:documentation>File that was created by any file generator that was run on this item</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="CustomToolNamespace">
<xs:annotation>
<xs:documentation>Namespace into which any file generator that is run on this item should create code</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Link">
<xs:annotation>
<xs:documentation>Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="InProject">
<xs:annotation>
<xs:documentation>Display in user interface (optional, boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="SubType"/>
</xs:choice>
</xs:sequence>
@@ -262,7 +262,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Semi-colon separated list of resource files (wildcards are allowed)</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -281,14 +281,14 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Name of any file generator that is run on this item</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="LastGenOutput"/>
<xs:element name="CustomToolNamespace"/>
<xs:element name="Link">
<xs:annotation>
<xs:documentation>Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Group"/>
<xs:element name="PublishState">
<xs:annotation>
@@ -306,7 +306,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Copy file to output directory (optional, boolean, default false)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
</xs:choice>
</xs:sequence>
<!-- redefine Include just to give a specific description -->
@@ -318,7 +318,7 @@ elementFormDefault="qualified">
</xs:extension>
</xs:complexContent>
</xs:complexType>
- </xs:element>
+ </xs:element>
<xs:element name="None" substitutionGroup="msb:Item">
<xs:annotation>
<xs:documentation>Files that should have no role in the build process</xs:documentation>
@@ -334,19 +334,19 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Name of any file generator that is run on this item</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="LastGenOutput"/>
<xs:element name="CustomToolNamespace"/>
<xs:element name="Link">
<xs:annotation>
<xs:documentation>Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="InProject">
<xs:annotation>
<xs:documentation>Display in user interface (optional, boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
</xs:choice>
</xs:sequence>
</xs:extension>
@@ -362,17 +362,17 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Assemblies whose namespaces should be imported by the Visual Basic compiler</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Service" type="msb:SimpleItemType" substitutionGroup="msb:Item"/>
<xs:element name="WebReferences" type="msb:SimpleItemType" substitutionGroup="msb:Item">
<xs:annotation>
<xs:documentation>Name of Web References folder to display in user interface</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="WebReferenceUrl" substitutionGroup="msb:Item">
<xs:annotation>
<xs:documentation>Represents a reference to a web service</xs:documentation>
- </xs:annotation>
+ </xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
@@ -392,7 +392,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>URL to web service</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -407,7 +407,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Display in user interface (optional, boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="ProductName"/>
<xs:element name="Install"/>
</xs:choice>
@@ -426,7 +426,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Display in user interface (optional, boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Group"/>
<xs:element name="IsAssembly">
<xs:annotation>
@@ -437,7 +437,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Default, Included, Excluded, DataFile, or Prerequisite</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
</xs:choice>
</xs:sequence>
</xs:extension>
@@ -469,7 +469,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Name of output assembly</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="AssemblyOriginatorKeyFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="AssemblyOriginatorKeyFileType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="AssemblyOriginatorKeyMode" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
@@ -478,13 +478,13 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="BaseAddress" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="BootstrapperComponentsLocation" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>HomeSite, Relative, or Absolute</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="BootstrapperComponentsUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="BootstrapperEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
@@ -505,26 +505,26 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Whether to emit symbols (boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
- <xs:element name="DebugType" type="msb:StringPropertyType" substitutionGroup="msb:Property">
+ </xs:element>
+ <xs:element name="DebugType" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>none, pdbonly, or full</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="DefaultClientScript" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="DefaultHTMLPageLayout" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="DefaultTargetSchema" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="DefineConstants" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
- <xs:element name="DefineDebug" type="msb:StringPropertyType" substitutionGroup="msb:Property">
+ <xs:element name="DefineDebug" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Whether DEBUG is defined (boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="DefineTrace" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Whether TRACE is defined (boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="DelaySign" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="DisableLangXtns" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="DisallowUrlActiviation" type="msb:StringPropertyType" substitutionGroup="msb:Property">
@@ -566,75 +566,75 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="MinimumRequiredVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Matches the expression "\d\.\d\.\d\.\d"</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="MyType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
- <xs:element name="NoConfig" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
+ <xs:element name="NoConfig" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="NoStandardLibraries" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="NoStdLib" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Whether standard libraries (such as mscorlib) should be referenced automatically (boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="NoWarn" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Comma separated list of disabled warnings</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="OpenBrowserOnPublish" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Optimize" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Should compiler optimize output (boolean)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="OptionCompare" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Option Compare setting (Text or Binary)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="OptionExplicit" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Should Option Explicit be set (On or Off)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="OptionStrict" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Should Option Strict be set (On or Off)</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="OSVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="OutputPath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Path to output folder, with trailing slash</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="OutputType" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Type of output to generate (WinExe, Exe, or Library)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Platform" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
- <xs:element name="PlatformFamilyName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
- <xs:element name="PlatformID" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
+ <xs:element name="PlatformFamilyName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
+ <xs:element name="PlatformID" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="PlatformTarget" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="PostBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Command line to be run at the end of build</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="PreBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Command line to be run at the start of build</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="ProductName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="ProductVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="ProjectGuid" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
@@ -647,7 +647,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Semi-colon separated list of folders to search during reference resolution</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="RegisterForComInterop" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="RemoteDebugEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="RemoteDebugMachine" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
@@ -671,7 +671,7 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>Type that contains the main entry point</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="SupportUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="TargetCulture" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="TargetZone" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
@@ -680,13 +680,13 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="TypeComplianceDiagnostics" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="UpdateEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="UpdateInterval" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="UpdateIntervalUnits" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
@@ -702,13 +702,13 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="UpdateRequired" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>boolean</xs:documentation>
</xs:annotation>
- </xs:element>
- <xs:element name="UpdateUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
+ </xs:element>
+ <xs:element name="UpdateUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="UTF8OutPut" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="UseVSHostingProcess" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="VSTO_TrustAssembliesLocation" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
@@ -716,12 +716,12 @@ elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>integer between 0 and 4 inclusive</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="WarningsAsErrors" type="msb:StringPropertyType" substitutionGroup="msb:Property">
<xs:annotation>
<xs:documentation>Comma separated list of warning numbers to treat as errors</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="WebPage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<xs:element name="Win32ResourceFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
<!-- ======================== TASKS =====================================-->
diff --git a/mcs/tools/xbuild/xbuild/MSBuild/Microsoft.Build.Core.xsd b/mcs/tools/xbuild/data/MSBuild/Microsoft.Build.Core.xsd
index 9ab9bda441..c8f2aacb1b 100644
--- a/mcs/tools/xbuild/xbuild/MSBuild/Microsoft.Build.Core.xsd
+++ b/mcs/tools/xbuild/data/MSBuild/Microsoft.Build.Core.xsd
@@ -37,7 +37,7 @@
<xs:element name="ProjectExtensions" type="msb:ProjectExtensionsType"/>
</xs:choice>
</xs:group>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:group name="ProjectLevelTagType">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
@@ -47,12 +47,12 @@
<xs:annotation>
<xs:documentation>Logs an Error event</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Warning" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs a Warning event</xs:documentation>
</xs:annotation>
- </xs:element>
+ </xs:element>
<xs:element name="Message" type="msb:MessageOutsideTargetType"/>
<xs:element name="UsingTask" type="msb:UsingTaskType"/>
<xs:element name="Target" type="msb:TargetType"/>
@@ -66,8 +66,8 @@
<xs:element name="Target" type="msb:TargetType"/>
<xs:element name="Import" type="msb:ImportType"/>
</xs:choice>
- </xs:group>
- <!-- ======================================================================================= -->
+ </xs:group>
+ <!-- ======================================================================================= -->
<xs:complexType name="TargetType">
<xs:annotation>
<xs:documentation>Groups tasks into a section of the build process</xs:documentation>
@@ -88,12 +88,12 @@
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of targets that should be run before this target</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Inputs" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of files that form inputs into this target. Their timestamps will be compared with the timestamps of files in Outputs to determine whether the Target is up to date</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Outputs" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of files that form outputs into this target. Their timestamps will be compared with the timestamps of files in Inputs to determine whether the Target is up to date</xs:documentation>
@@ -103,9 +103,9 @@
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the Target and the targets it depends on should be run</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="PropertyGroupType">
<xs:annotation>
<xs:documentation>Groups property definitions</xs:documentation>
@@ -117,13 +117,13 @@
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the PropertyGroup should be used</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="ItemGroupType">
<xs:annotation>
<xs:documentation>Groups item list definitions</xs:documentation>
- </xs:annotation>
+ </xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Item"/>
</xs:sequence>
@@ -131,7 +131,7 @@
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the ItemGroup should be used</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ChooseType">
@@ -165,7 +165,7 @@
<xs:complexType name="OtherwiseType">
<xs:annotation>
<xs:documentation>Groups PropertyGroup and/or ItemGroup elements that are used if no Conditions on sibling When elements evaluate to true</xs:documentation>
- </xs:annotation>
+ </xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
@@ -174,7 +174,7 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="OnErrorType">
<xs:annotation>
<xs:documentation>Specifies targets to execute in the event of a recoverable error</xs:documentation>
@@ -188,9 +188,9 @@
<xs:annotation>
<xs:documentation>Semi-colon separated list of targets to execute</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="MessageOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an informational Message event, with an optional Importance</xs:documentation>
@@ -199,41 +199,41 @@
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the Message should be logged</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Importance" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional priority level. Allowed values are Low, Normal (default), and High</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Text to log</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="WarningErrorOutsideTargetType">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the text should be logged</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Text to log</xs:documentation>
</xs:annotation>
- </xs:attribute>
- </xs:complexType>
- <!-- ======================================================================================= -->
+ </xs:attribute>
+ </xs:complexType>
+ <!-- ======================================================================================= -->
<xs:complexType name="UsingTaskType">
<xs:annotation>
<xs:documentation>Declares where to load a task that will be used in the project</xs:documentation>
- </xs:annotation>
+ </xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the declaration should be evaluated</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="AssemblyName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of assembly containing the task. Either AssemblyName or AssemblyFile must be used</xs:documentation>
@@ -243,30 +243,30 @@
<xs:annotation>
<xs:documentation>Optional path to assembly containing the task. Either AssemblyName or AssemblyFile must be used</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="TaskName" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Name of task class in the assembly</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="ImportType">
<xs:annotation>
<xs:documentation>Declares that the contents of another project file should be inserted at this location</xs:documentation>
- </xs:annotation>
+ </xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the import should occur</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Project" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Project file to import</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<xs:complexType name="ProjectExtensionsType" mixed="true">
<xs:annotation>
<xs:documentation>Optional section used by MSBuild hosts, that may contain arbitrary XML content that is ignored by MSBuild itself</xs:documentation>
@@ -274,43 +274,43 @@
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any processContents="skip"/>
</xs:sequence>
- </xs:complexType>
+ </xs:complexType>
<!-- ======================================================================================= -->
<xs:element name="Item" type="msb:SimpleItemType" abstract="true"/>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<!-- convenience type for items that have no meta-data-->
<xs:complexType name="SimpleItemType">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the items should be evaluated</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Include" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Semi-colon separated list of files (wildcards are allowed) or other item names to include in this item list</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<xs:attribute name="Exclude" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Semi-colon separated list of files (wildcards are allowed) or other item names to exclude from the Include list</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<!-- general utility type allowing an item type to be defined but not its child meta-data-->
<xs:complexType name="GenericItemType">
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:any namespace="##any" processContents="skip"/>
- </xs:sequence>
+ <xs:any namespace="##any" processContents="skip"/>
+ </xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<!-- no type declared on this abstract element, so either a simple or complex type can be substituted for it.-->
<xs:element name="Property" abstract="true"/>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<!-- convenience type for properties that just want to allow text and no elements in them-->
<xs:complexType name="StringPropertyType">
<xs:simpleContent>
@@ -323,7 +323,7 @@
</xs:extension>
</xs:simpleContent>
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<!-- general utility type allowing text and/or elements inside-->
<xs:complexType name="GenericPropertyType" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
@@ -377,10 +377,10 @@
<xs:annotation>
<xs:documentation>Optional boolean indicating whether a recoverable task error should be ignored. Default false</xs:documentation>
</xs:annotation>
- </xs:attribute>
+ </xs:attribute>
<!-- We don't need the anyAttribute here because other types deriving from this type will add the right attributes.-->
</xs:complexType>
- <!-- ======================================================================================= -->
+ <!-- ======================================================================================= -->
<!-- XSD considers an empty-valued attribute to satisfy use="required", but we want it to have a non-empty value in most cases, hence this utility type. -->
<xs:simpleType name="non_empty_string">
<xs:restriction base="xs:string">
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.Build.xsd b/mcs/tools/xbuild/data/Microsoft.Build.xsd
index 1cd971c61e..e88f00f0f5 100644
--- a/mcs/tools/xbuild/xbuild/Microsoft.Build.xsd
+++ b/mcs/tools/xbuild/data/Microsoft.Build.xsd
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003"
+<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003"
elementFormDefault="qualified">
@@ -9,9 +9,9 @@ elementFormDefault="qualified">
<!-- ========= ADD CUSTOM ITEMS, PROPERTIES, AND TASKS BELOW ======= -->
<!-- Note that these will be in the msbuild namespace. A future version of
- msbuild may require that custom itemtypes, properties, and tasks be in a
+ msbuild may require that custom itemtypes, properties, and tasks be in a
custom namespace, but currently msbuild only supports the msbuild namespace. -->
-
+
<!-- example custom itemtype with particular meta-data required-->
<!--<xs:element name="MyItem" substitutionGroup="msb:Item">
<xs:complexType>
@@ -26,10 +26,10 @@ elementFormDefault="qualified">
</xs:complexContent>
</xs:complexType>
</xs:element>-->
-
+
<!-- Example custom itemtype with NO meta-data -->
<!--<xs:element name="MySimpleItem" type="msb:SimpleItemType" substitutionGroup="msb:Item"/>-->
-
+
<!-- Example custom itemtype with ANY meta-data -->
<!--<xs:element name="MyFlexibleItem" type="msb:GenericItemType" substitutionGroup="msb:Item"/>-->
@@ -46,5 +46,5 @@ elementFormDefault="qualified">
</xs:complexContent>
</xs:complexType>
</xs:element>-->
-
+
</xs:schema>
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.CSharp.targets b/mcs/tools/xbuild/data/Microsoft.CSharp.targets
index 3c378252a4..c23b8ae26d 100644
--- a/mcs/tools/xbuild/xbuild/Microsoft.CSharp.targets
+++ b/mcs/tools/xbuild/data/Microsoft.CSharp.targets
@@ -53,7 +53,7 @@
NoStandardLib="$(NoStdLib)"
Optimize="$(Optimize)"
OutputAssembly="@(IntermediateAssembly)"
- PdbFile="$(PdbFile)"
+ PdbFile="$(PdbFile)"
Platform="$(PlatformTarget)"
References="@(ReferencePath)"
ResponseFiles="$(CompilerResponseFile)"
@@ -103,11 +103,11 @@
<CscToolExe Condition="'$(CscToolExe)' == '' and '$(TargetFrameworkVersion)' == 'v4.5' and '$(OS)' != 'Windows_NT'">mcs</CscToolExe>
<CscToolExe Condition="'$(CscToolExe)' == '' and '$(TargetFrameworkVersion)' == 'v4.5' and '$(OS)' == 'Windows_NT'">mcs.bat</CscToolExe>
-
+
<CscToolExe Condition="'$(CscToolExe)' == '' and '$(TargetFrameworkVersion)' == 'v4.0' and '$(OS)' != 'Windows_NT'">dmcs</CscToolExe>
<CscToolExe Condition="'$(CscToolExe)' == '' and '$(TargetFrameworkVersion)' == 'v4.0' and '$(OS)' == 'Windows_NT'">dmcs.bat</CscToolExe>
</PropertyGroup>
-
+
<PropertyGroup>
<TargetFrameworkMonikerAssemblyAttributeText Condition="'$(TargetFrameworkMoniker)' != '' and '$(TargetingClr2Framework)' != 'true'">
// &lt;autogenerated /&gt;
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.VisualBasic.targets b/mcs/tools/xbuild/data/Microsoft.VisualBasic.targets
index 4b89dfafb9..aba4cfa286 100644
--- a/mcs/tools/xbuild/xbuild/Microsoft.VisualBasic.targets
+++ b/mcs/tools/xbuild/data/Microsoft.VisualBasic.targets
@@ -64,7 +64,7 @@
OptionCompare="$(OptionCompare)"
OptionExplicit="$(OptionExplicit)"
OptionStrict="$(OptionStrict)"
- OptionStrictType="$(OptionStrictType)"
+ OptionStrictType="$(OptionStrictType)"
OutputAssembly="@(IntermediateAssembly)"
Platform="$(PlatformTarget)"
References="@(ResolvedFiles)"
diff --git a/mcs/tools/xbuild/data/xbuild.exe.config.in b/mcs/tools/xbuild/data/xbuild.exe.config.in
new file mode 100644
index 0000000000..8127938d39
--- /dev/null
+++ b/mcs/tools/xbuild/data/xbuild.exe.config.in
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <generatePublisherEvidence enabled="false" />
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-100.0.0.0" newVersion="@ASM_VERSION@" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Microsoft.Build.Engine" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-100.0.0.0" newVersion="@ASM_VERSION@" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
diff --git a/mcs/tools/xbuild/xbuild/xbuild.rsp b/mcs/tools/xbuild/data/xbuild.rsp
index 9b9ce70870..9b9ce70870 100644
--- a/mcs/tools/xbuild/xbuild/xbuild.rsp
+++ b/mcs/tools/xbuild/data/xbuild.rsp
diff --git a/mcs/tools/xbuild/xbuild/2.0/FrameworkList.xml b/mcs/tools/xbuild/frameworks/net_2.0.xml
index 2b8bd9b1df..2b8bd9b1df 100644
--- a/mcs/tools/xbuild/xbuild/2.0/FrameworkList.xml
+++ b/mcs/tools/xbuild/frameworks/net_2.0.xml
diff --git a/mcs/tools/xbuild/xbuild/FrameworkList-3.0.xml b/mcs/tools/xbuild/frameworks/net_3.0.xml
index ae06c8818c..ae06c8818c 100644
--- a/mcs/tools/xbuild/xbuild/FrameworkList-3.0.xml
+++ b/mcs/tools/xbuild/frameworks/net_3.0.xml
diff --git a/mcs/tools/xbuild/xbuild/3.5/FrameworkList.xml b/mcs/tools/xbuild/frameworks/net_3.5.xml
index 122584299a..122584299a 100644
--- a/mcs/tools/xbuild/xbuild/3.5/FrameworkList.xml
+++ b/mcs/tools/xbuild/frameworks/net_3.5.xml
diff --git a/mcs/tools/xbuild/xbuild/4.0/FrameworkList.xml b/mcs/tools/xbuild/frameworks/net_4.0.xml
index 701279497f..701279497f 100644
--- a/mcs/tools/xbuild/xbuild/4.0/FrameworkList.xml
+++ b/mcs/tools/xbuild/frameworks/net_4.0.xml
diff --git a/mcs/tools/xbuild/frameworks/net_4.0_client.xml b/mcs/tools/xbuild/frameworks/net_4.0_client.xml
new file mode 100644
index 0000000000..951933a2f9
--- /dev/null
+++ b/mcs/tools/xbuild/frameworks/net_4.0_client.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FileList Name=".NET Framework 4 Client Profile" TargetFrameworkDirectory="..\..\..\..\..\..\4.0">
+ <File AssemblyName="System" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Activities" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Dynamic" Version="4.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" />
+ <File AssemblyName="System.ServiceModel.Activities" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.ServiceModel.Channels" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.ServiceModel.Discovery" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.ServiceModel.Routing" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Windows.Forms.DataVisualization" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Xaml" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Core" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.AddIn" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.ComponentModel.Composition" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.ComponentModel.DataAnnotations" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Data.DataSetExtensions" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Data.Entity" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Data.Linq" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Data.Services.Client" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.DirectoryServices.AccountManagement" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Management.Instrumentation" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Net" Version="4.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" />
+ <File AssemblyName="System.Numerics" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Web.ApplicationServices" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Windows.Presentation" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Xml.Linq" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="PresentationCore" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="PresentationFramework.Aero" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="PresentationFramework.Classic" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="PresentationFramework" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="PresentationFramework.Luna" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="PresentationFramework.Royale" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="ReachFramework" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.IdentityModel" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.IdentityModel.Selectors" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.IO.Log" Version="4.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" />
+ <File AssemblyName="System.Printing" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Runtime.Serialization" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Runtime.DurableInstancing" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.ServiceModel" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="UIAutomationClient" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="UIAutomationClientsideProviders" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="UIAutomationProvider" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="UIAutomationTypes" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="WindowsBase" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="WindowsFormsIntegration" Version="4.0.0.0" PublicKeyToken="31bf3856ad364e35" />
+ <File AssemblyName="System.Configuration" Version="4.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" />
+ <File AssemblyName="System.Data.SqlXml" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="System.Deployment" Version="4.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" />
+ <File AssemblyName="System.DirectoryServices.Protocols" Version="4.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" />
+ <File AssemblyName="System.Transactions" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+ <File AssemblyName="mscorlib" Version="4.0.0.0" PublicKeyToken="b77a5c561934e089" />
+</FileList>
diff --git a/mcs/tools/xbuild/xbuild/4.5/FrameworkList.xml b/mcs/tools/xbuild/frameworks/net_4.5.xml
index 2fa28c496f..2fa28c496f 100644
--- a/mcs/tools/xbuild/xbuild/4.5/FrameworkList.xml
+++ b/mcs/tools/xbuild/frameworks/net_4.5.xml
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.CSharp.targets b/mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.0.targets
index 7aff37df59..36bc56e631 100644
--- a/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.CSharp.targets
+++ b/mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.0.targets
@@ -1,4 +1,5 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\Microsoft.Portable.Core.props" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <Import Project="Microsoft.Silverlight.Common.targets"/>
+ <Import Project="..\Microsoft.Portable.Core.targets" />
</Project>
diff --git a/mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.5.targets b/mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.5.targets
new file mode 100644
index 0000000000..36bc56e631
--- /dev/null
+++ b/mcs/tools/xbuild/targets/Microsoft.Portable.CSharp_4.5.targets
@@ -0,0 +1,5 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\Microsoft.Portable.Core.props" />
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <Import Project="..\Microsoft.Portable.Core.targets" />
+</Project>
diff --git a/mcs/tools/xbuild/targets/Microsoft.Portable.Core.props b/mcs/tools/xbuild/targets/Microsoft.Portable.Core.props
new file mode 100644
index 0000000000..4bf2d9ca52
--- /dev/null
+++ b/mcs/tools/xbuild/targets/Microsoft.Portable.Core.props
@@ -0,0 +1,14 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <AvailablePlatforms>Any CPU</AvailablePlatforms>
+
+ <TargetPlatformIdentifier>Portable</TargetPlatformIdentifier>
+ <TargetFrameworkIdentifier>.NETPortable</TargetFrameworkIdentifier>
+ <TargetFrameworkMonikerDisplayName>.NET Portable Subset</TargetFrameworkMonikerDisplayName>
+
+ <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+ <NoStdLib>true</NoStdLib>
+
+ <ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
+ </PropertyGroup>
+</Project>
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.Portable.CSharp.targets b/mcs/tools/xbuild/targets/Microsoft.Portable.Core.targets
index 72c20ef5c2..0bd565669e 100644
--- a/mcs/tools/xbuild/xbuild/Microsoft.Portable.CSharp.targets
+++ b/mcs/tools/xbuild/targets/Microsoft.Portable.Core.targets
@@ -1,32 +1,16 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-
- <PropertyGroup>
- <AvailablePlatforms>Any CPU</AvailablePlatforms>
-
- <TargetPlatformIdentifier>Portable</TargetPlatformIdentifier>
- <TargetFrameworkIdentifier>.NETPortable</TargetFrameworkIdentifier>
- <TargetFrameworkMonikerDisplayName>.NET Portable Subset</TargetFrameworkMonikerDisplayName>
-
- <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
- <NoStdLib>true</NoStdLib>
-
- <ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
- </PropertyGroup>
-
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.Targets" />
-
<PropertyGroup>
<ResolveReferencesDependsOn>
$(ResolveReferencesDependsOn);
ImplicitlyExpandTargetFramework;
</ResolveReferencesDependsOn>
-
+
<ImplicitlyExpandTargetFrameworkDependsOn>
$(ImplicitlyExpandTargetFrameworkDependsOn);
GetReferenceAssemblyPaths
</ImplicitlyExpandTargetFrameworkDependsOn>
</PropertyGroup>
-
+
<Target Name="ImplicitlyExpandTargetFramework"
DependsOnTargets="$(ImplicitlyExpandTargetFrameworkDependsOn)">
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.WebApplication.targets b/mcs/tools/xbuild/targets/Microsoft.WebApplication.targets
index 0f61904250..0f61904250 100644
--- a/mcs/tools/xbuild/xbuild/Microsoft.WebApplication.targets
+++ b/mcs/tools/xbuild/targets/Microsoft.WebApplication.targets
diff --git a/mcs/tools/xbuild/xbuild.exe.sources b/mcs/tools/xbuild/xbuild.exe.sources
index bfb3919751..8401c09aae 100644
--- a/mcs/tools/xbuild/xbuild.exe.sources
+++ b/mcs/tools/xbuild/xbuild.exe.sources
@@ -1,6 +1,7 @@
../../build/common/Consts.cs
../../class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/UnknownToolsVersionException.cs
../../class/Microsoft.Build.Framework/Mono.XBuild.Framework/AssemblyLoadInfo.cs
+XBuildConsts.cs
AssemblyInfo.cs
CommandLineException.cs
ErrorUtilities.cs
diff --git a/mcs/tools/xbuild/xbuild.make b/mcs/tools/xbuild/xbuild.make
new file mode 100644
index 0000000000..7cb5065f2d
--- /dev/null
+++ b/mcs/tools/xbuild/xbuild.make
@@ -0,0 +1,25 @@
+ifneq (2.0, $(XBUILD_VERSION))
+NAME_SUFFIX = .v$(XBUILD_VERSION)
+endif
+
+XBUILD_FRAMEWORK := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Framework.dll
+XBUILD_ENGINE := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Engine.dll
+XBUILD_UTILITIES := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Utilities$(NAME_SUFFIX).dll
+XBUILD_TASKS := $(topdir)/class/lib/$(PROFILE)/Mono.XBuild.Tasks.dll
+
+XBUILD_ASSEMBLY_VERSION = $(XBUILD_VERSION).0.0
+
+XBUILD_BIN_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
+
+ifneq (2.0, $(XBUILD_VERSION))
+ifneq (3.5, $(XBUILD_VERSION))
+ifneq (4.0, $(XBUILD_VERSION))
+
+XBUILD_BIN_DIR = $(mono_libdir)/mono/xbuild/$(XBUILD_VERSION)/bin
+
+PROGRAM_INSTALL_DIR = $(XBUILD_BIN_DIR)
+LIBRARY_PACKAGE = xbuild/$(XBUILD_VERSION)/bin
+
+endif
+endif
+endif
diff --git a/mcs/tools/xbuild/xbuild/4.0/Microsoft.Portable.CSharp.targets b/mcs/tools/xbuild/xbuild/4.0/Microsoft.Portable.CSharp.targets
deleted file mode 100644
index d80a9f5dfc..0000000000
--- a/mcs/tools/xbuild/xbuild/4.0/Microsoft.Portable.CSharp.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildToolsPath)\Microsoft.Portable.CSharp.Targets" />
-</Project>
diff --git a/mcs/tools/xbuild/xbuild/4.5/Microsoft.Portable.CSharp.targets b/mcs/tools/xbuild/xbuild/4.5/Microsoft.Portable.CSharp.targets
deleted file mode 100644
index d80a9f5dfc..0000000000
--- a/mcs/tools/xbuild/xbuild/4.5/Microsoft.Portable.CSharp.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildToolsPath)\Microsoft.Portable.CSharp.Targets" />
-</Project>
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.Common.targets b/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.Common.targets
deleted file mode 100644
index 55eacf1568..0000000000
--- a/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.Common.targets
+++ /dev/null
@@ -1,159 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <UsingTask TaskName="Moonlight.Build.Tasks.CreateTestPage" AssemblyFile="Moonlight.Build.Tasks.dll" />
- <UsingTask TaskName="Moonlight.Build.Tasks.GenerateMoonlightManifest" AssemblyFile="Moonlight.Build.Tasks.dll"/>
- <UsingTask TaskName="Moonlight.Build.Tasks.GenerateXap" AssemblyFile="Moonlight.Build.Tasks.dll" />
- <UsingTask TaskName="Moonlight.Build.Tasks.GetMoonlightFrameworkPath" AssemblyFile="Moonlight.Build.Tasks.dll"/>
- <UsingTask TaskName="Moonlight.Build.Tasks.Respack" AssemblyFile="Moonlight.Build.Tasks.dll" />
- <UsingTask TaskName="Moonlight.Build.Tasks.XamlG" AssemblyFile="Moonlight.Build.Tasks.dll"/>
-
- <PropertyGroup>
- <PrepareResourcesDependsOn>
- GenerateXamlG;
- Respack;
- $(PrepareResourcesDependsOn)
- </PrepareResourcesDependsOn>
-
- <PrepareForRunDependsOn>
- GenerateMoonlightManifest;
- GenerateXap;
- CreateTestPage;
- $(PrepareForRunDependsOn)
- </PrepareForRunDependsOn>
-
- <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' == 'Windows_NT'">smcs.bat</CscToolExe>
- <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' != 'Windows_NT'">smcs</CscToolExe>
-
- <XapFileName Condition="'$(XapFileName)' == ''">$(AssemblyName).xap</XapFileName>
- <TestPageFileName Condition="'$(TestPageFileName)' == ''">TestPage.html</TestPageFileName>
- <SilverlightVersion Condition="'$(SilverlightVersion)' == ''">@SILVERLIGHT_VERSION@</SilverlightVersion>
- <RuntimeVersion Condition="'$(RuntimeVersion)' == '' and '$(SilverlightVersion)' == '2.0'">2.0.31005.0</RuntimeVersion>
- <RuntimeVersion Condition="'$(RuntimeVersion)' == '' and '$(SilverlightVersion)' == '3.0'">3.0.40624.0</RuntimeVersion>
-
- <AssemblySearchPaths>
- {CandidateAssemblyFiles};
- $(ReferencePath);
- {HintPathFromItem};
- {TargetFrameworkDirectory};
- {RawFileName};
- $(OutDir)
- </AssemblySearchPaths>
- </PropertyGroup>
-
- <ItemGroup>
- <MoonlightManifestFile Include="$(OutDir)AppManifest.xaml">
- <TargetPath>AppManifest.xaml</TargetPath>
- </MoonlightManifestFile>
- </ItemGroup>
-
- <!-- Override 'GetFrameworkPaths' -->
- <Target Name="GetFrameworkPaths">
- <GetMoonlightFrameworkPath
- SilverlightVersion="$(SilverlightVersion)">
- <Output TaskParameter="FrameworkPath" PropertyName="TargetFrameworkDirectory"/>
- <Output TaskParameter="FrameworkPath" ItemName="_FrameworkPath"/>
- </GetMoonlightFrameworkPath>
-
- <Error Text="Moonlight framework v$(SilverlightVersion) doesn't seem to be installed. Expected framework directory could not be found (@(_FrameworkPath)). To force a particular silverlight version, try: xbuild $(MSBuildProjectFile) /p:SilverlightVersion=2.0"
- Condition="!Exists('@(_FrameworkPath)')" />
-
- <CreateProperty Value="$(AssemblySearchPaths);@(_FrameworkPath->'%(Identity)-redist')"
- Condition="Exists('@(_FrameworkPath->'%(Identity)-redist')')">
- <Output TaskParameter="Value" PropertyName="AssemblySearchPaths"/>
- </CreateProperty>
- </Target>
-
- <Target Name="Respack">
- <Respack
- Resources="@(Resource);@(Page);@(ApplicationDefinition)"
- OutputFile="$(IntermediateOutputPath)$(AssemblyName).g.resources">
- <Output TaskParameter="OutputFile" ItemName="FileWrites"/>
- <Output TaskParameter="OutputFile" ItemName="ManifestResourceWithNoCulture"/>
- </Respack>
- </Target>
-
- <Target Name="GenerateXamlG">
- <CreateItem Include="@(Compile)" Condition="'%(Compile.Extension)' == '.xaml' and '%(Compile.Generator)' == 'MSBuild:MarkupCompilePass1'">
- <Output TaskParameter="Include" ItemName="XamlFiles"/>
- </CreateItem>
- <CreateItem Include="@(ApplicationDefinition)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
- <Output TaskParameter="Include" ItemName="XamlFiles"/>
- </CreateItem>
- <CreateItem Include="@(Page)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
- <Output TaskParameter="Include" ItemName="XamlFiles"/>
- </CreateItem>
-
- <XamlG
- Sources="@(XamlFiles)"
- Language = "$(Language)"
- AssemblyName = "$(AssemblyName)"
- OutputFiles = "@(XamlFiles->'$(IntermediateOutputPath)%(Filename).g$(DefaultLanguageSourceExtension)')"
- >
- <Output TaskParameter="OutputFiles" ItemName="Compile"/>
- <Output TaskParameter="OutputFiles" ItemName="FileWrites"/>
- </XamlG>
- </Target>
-
- <Target Name="GenerateMoonlightManifest"
- Inputs="$(MSBuildAllProjects);$(SilverlightManifestTemplate)"
- Outputs="@(MoonlightManifestFile->'%(Identity)')">
- <GenerateMoonlightManifest
- ManifestFile="@(MoonlightManifestFile->'%(Identity)')"
- EntryPointAssembly="$(AssemblyName)$(TargetExt)"
- References="@(ReferenceCopyLocalPaths)"
- SilverlightManifestTemplate="$(SilverlightManifestTemplate)"
- SilverlightAppEntry="$(SilverlightAppEntry)"
- RuntimeVersion="$(RuntimeVersion)"
-
- Condition = "'$(GenerateSilverlightManifest)' == 'true'"
- >
- <Output TaskParameter="ManifestFile" ItemName="FileWrites"/>
- </GenerateMoonlightManifest>
- </Target>
-
- <PropertyGroup>
- <GenerateXapDependsOn>
- GenerateXamlG;
- GenerateMoonlightManifest;
- GetXapInputFiles
- </GenerateXapDependsOn>
- </PropertyGroup>
- <Target Name="GenerateXap" DependsOnTargets="$(GenerateXapDependsOn)" Condition="'$(XapOutputs)' == 'true'"
- Inputs="@(XapInputFiles)" Outputs="$(OutDir)$(XapFilename)">
- <!-- Looks for %(DestinationSubdirectory) in LocalCopyReferences -->
- <GenerateXap
- InputFiles="@(XapInputFiles)"
- LocalCopyReferences="@(ReferenceCopyLocalPaths)"
- XapFilename="$(OutDir)$(XapFilename)"
- >
- <Output TaskParameter="XapFilename" ItemName="FileWrites"/>
- </GenerateXap>
- </Target>
-
- <Target Name="CreateTestPage" Condition="'$(CreateTestPage)' == 'true' and '$(XapOutputs)' == 'true'">
- <CreateTestPage
- XapFileName="$(XapFileName)"
- Title="$(AssemblyName)"
- TestPageFilename="$(OutDir)$(TestPageFilename)">
- <Output TaskParameter="TestPageFilename" ItemName="FileWrites"/>
- </CreateTestPage>
- </Target>
-
- <Target Name="GetXapInputFiles">
- <CreateItem Include="@(IntermediateAssembly)" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt)">
- <Output TaskParameter="Include" ItemName="XapInputFiles"/>
- </CreateItem>
-
- <CreateItem Include="@(ContentWithTargetPath)">
- <Output TaskParameter="Include" ItemName="XapInputFiles"/>
- </CreateItem>
-
- <CreateItem Include="@(MoonlightManifestFile)" Condition="'$(GenerateSilverlightManifest)' == 'true'">
- <Output TaskParameter="Include" ItemName="XapInputFiles"/>
- </CreateItem>
-
- <CreateItem Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt).mdb"
- Condition="Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')">
- <Output TaskParameter="Include" ItemName="XapInputFiles"/>
- </CreateItem>
- </Target>
-</Project>
diff --git a/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.VisualBasic.targets b/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.VisualBasic.targets
deleted file mode 100644
index 262754f9e2..0000000000
--- a/mcs/tools/xbuild/xbuild/Microsoft.Silverlight.VisualBasic.targets
+++ /dev/null
@@ -1,4 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
- <Import Project="Microsoft.Silverlight.Common.targets"/>
-</Project>
diff --git a/mcs/tools/xbuild/xbuild_targets.make b/mcs/tools/xbuild/xbuild_targets.make
deleted file mode 100644
index 8c3c9981cc..0000000000
--- a/mcs/tools/xbuild/xbuild_targets.make
+++ /dev/null
@@ -1,22 +0,0 @@
-test-local: copy-targets
-
-copy-targets:
- for p in net_2_0 net_3_5 net_4_0; do \
- cp $(XBUILD_DIR)/xbuild/Microsoft.CSharp.targets $(topdir)/class/lib/$$p; \
- cp $(XBUILD_DIR)/xbuild/Microsoft.VisualBasic.targets $(topdir)/class/lib/$$p; \
- cp $(XBUILD_DIR)/xbuild/Microsoft.Silverlight*.targets $(topdir)/class/lib/$$p; \
- done
- cp $(XBUILD_DIR)/xbuild/2.0/Microsoft.Common.* $(topdir)/class/lib/net_2_0
- cp $(XBUILD_DIR)/xbuild/3.5/Microsoft.Common.* $(topdir)/class/lib/net_3_5
- cp $(XBUILD_DIR)/xbuild/4.0/Microsoft.Common.* $(topdir)/class/lib/net_4_0
-
-clean-local: clean-target-files
-
-clean-target-files:
- for p in net_2_0 net_3_5 net_4_0; do \
- rm -f $(topdir)/class/lib/$$p/Microsoft.Common.targets; \
- rm -f $(topdir)/class/lib/$$p/Microsoft.CSharp.targets; \
- rm -f $(topdir)/class/lib/$$p/Microsoft.VisualBasic.targets; \
- rm -f $(topdir)/class/lib/$$p/Microsoft.Silverlight*.targets; \
- rm -f $(topdir)/class/lib/$$p/Microsoft.Common.tasks; \
- done
diff --git a/mcs/tools/xbuild/xbuild_test.make b/mcs/tools/xbuild/xbuild_test.make
new file mode 100644
index 0000000000..52c402ba4b
--- /dev/null
+++ b/mcs/tools/xbuild/xbuild_test.make
@@ -0,0 +1,96 @@
+XBUILD_DATA_DIR=$(topdir)/tools/xbuild/data
+XBUILD_PROFILE_DIR=$(topdir)/class/lib/$(PROFILE)
+
+# makes xbuild look in the class/lib/$PROFILE build directories for targets etc
+export TESTING_MONO=a
+
+ifeq (4.0, $(FRAMEWORK_VERSION))
+NO_TEST=true
+else
+test-local: copy-targets $(test_lib).config
+clean-local: clean-targets clean-test-config
+endif
+
+xbuild-net4-fail:
+ @echo "The net_4_0 profile contains reference assemblies only and cannot be installed/tested as an xbuild toolset"
+ @exit 1
+
+$(test_lib).config: $(XBUILD_DATA_DIR)/xbuild.exe.config.in
+ sed -e 's/@ASM_VERSION@/$(XBUILD_ASSEMBLY_VERSION)/g' $(XBUILD_DATA_DIR)/xbuild.exe.config.in > $(test_lib).config
+
+clean-test-config:
+ rm -f $(test_lib).config
+
+copy-targets: copy-targets-$(XBUILD_VERSION)
+
+clean-targets: clean-targets-$(XBUILD_VERSION)
+
+XBUILD_2_0_PROFILE_DIR=$(topdir)/class/lib/net_2_0
+XBUILD_3_5_PROFILE_DIR=$(topdir)/class/lib/net_3_5
+XBUILD_4_0_PROFILE_DIR=$(topdir)/class/lib/net_4_5
+XBUILD_12_0_PROFILE_DIR=$(topdir)/class/lib/xbuild_12
+
+copy-targets-2.0:
+ cp $(XBUILD_DATA_DIR)/2.0/Microsoft.Common.targets $(XBUILD_2_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/2.0/Microsoft.Common.tasks $(XBUILD_2_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.CSharp.targets $(XBUILD_2_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.VisualBasic.targets $(XBUILD_2_0_PROFILE_DIR)
+
+copy-targets-3.5:
+ cp $(XBUILD_DATA_DIR)/3.5/Microsoft.Common.targets $(XBUILD_3_5_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/3.5/Microsoft.Common.tasks $(XBUILD_3_5_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.CSharp.targets $(XBUILD_3_5_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.VisualBasic.targets $(XBUILD_3_5_PROFILE_DIR)
+
+copy-targets-4.0:
+ cp $(XBUILD_DATA_DIR)/4.0/Microsoft.Common.targets $(XBUILD_4_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/4.0/Microsoft.Common.tasks $(XBUILD_4_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.CSharp.targets $(XBUILD_4_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.VisualBasic.targets $(XBUILD_4_0_PROFILE_DIR)
+
+copy-targets-12.0:
+ cp $(XBUILD_DATA_DIR)/12.0/Microsoft.Common.targets $(XBUILD_12_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/12.0/Microsoft.Common.tasks $(XBUILD_12_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.CSharp.targets $(XBUILD_12_0_PROFILE_DIR)
+ cp $(XBUILD_DATA_DIR)/Microsoft.VisualBasic.targets $(XBUILD_12_0_PROFILE_DIR)
+
+clean-targets-2.0:
+ rm -f $(XBUILD_2_0_PROFILE_DIR)/Microsoft.Common.targets
+ rm -f $(XBUILD_2_0_PROFILE_DIR)/Microsoft.Common.tasks
+ rm -f $(XBUILD_2_0_PROFILE_DIR)/Microsoft.CSharp.targets
+ rm -f $(XBUILD_2_0_PROFILE_DIR)/Microsoft.VisualBasic.targets
+
+clean-targets-3.5:
+ rm -f $(XBUILD_3_5_PROFILE_DIR)/Microsoft.Common.targets
+ rm -f $(XBUILD_3_5_PROFILE_DIR)/Microsoft.Common.tasks
+ rm -f $(XBUILD_3_5_PROFILE_DIR)/Microsoft.CSharp.targets
+ rm -f $(XBUILD_3_5_PROFILE_DIR)/Microsoft.VisualBasic.targets
+
+clean-targets-4.0:
+ rm -f $(XBUILD_4_0_PROFILE_DIR)/Microsoft.Common.targets
+ rm -f $(XBUILD_4_0_PROFILE_DIR)/Microsoft.Common.tasks
+ rm -f $(XBUILD_4_0_PROFILE_DIR)/Microsoft.CSharp.targets
+ rm -f $(XBUILD_4_0_PROFILE_DIR)/Microsoft.VisualBasic.targets
+
+clean-targets-12.0:
+ rm -f $(XBUILD_12_0_PROFILE_DIR)/Microsoft.Common.targets
+ rm -f $(XBUILD_12_0_PROFILE_DIR)/Microsoft.Common.tasks
+ rm -f $(XBUILD_12_0_PROFILE_DIR)/Microsoft.CSharp.targets
+ rm -f $(XBUILD_12_0_PROFILE_DIR)/Microsoft.VisualBasic.targets
+
+#allow tests to find older versions of libs and targets
+ifneq (2.0, $(XBUILD_VERSION))
+TEST_MONO_PATH := $(topdir)/class/lib/net_2_0
+copy-targets: copy-targets-2.0
+clean-targets: clean-targets-2.0
+ifneq (3.5, $(XBUILD_VERSION))
+TEST_MONO_PATH := $(topdir)/class/lib/net_3_5$(PLATFORM_PATH_SEPARATOR)$(TEST_MONO_PATH)
+copy-targets: copy-targets-3.5
+clean-targets: clean-targets-3.5
+ifneq (4.0, $(XBUILD_VERSION))
+TEST_MONO_PATH := $(topdir)/class/lib/net_4_5$(PLATFORM_PATH_SEPARATOR)$(TEST_MONO_PATH)
+copy-targets: copy-targets-4.0
+clean-targets: clean-targets-4.0
+endif
+endif
+endif