Merge pull request #5668 from kumpera/wasm-work-p4
[mono.git] / mcs / class / Microsoft.Build.Utilities / Microsoft.Build.Utilities / ToolLocationHelper.cs
index 8f040e404ebb8ca8d9673b3865f9690d752dc1c4..42b7da6f23177cb6f4276d3d487fea0908339828 100644 (file)
@@ -61,38 +61,47 @@ namespace Microsoft.Build.Utilities
                        runningOnDotNet = !string.IsNullOrEmpty (windowsPath) && lib_mono_dir.StartsWith (windowsPath);
 
                        if (Environment.GetEnvironmentVariable ("TESTING_MONO") != null) {
-                               mono_dir = new string [] {
-                                       Path.Combine (lib_mono_dir, "net_1_0"),
-                                       Path.Combine (lib_mono_dir, "net_2_0"),
-                                       Path.Combine (lib_mono_dir, "net_2_0"),
-                                       Path.Combine (lib_mono_dir, "net_3_5"),
+                               mono_dir = new string [] {                   // TargetDotNetFrameworkVersion:
+                                       Path.Combine (lib_mono_dir, "net_1_0"),  // Version11
+                                       Path.Combine (lib_mono_dir, "net_2_0"),  // Version20
+                                       Path.Combine (lib_mono_dir, "net_2_0"),  // Version30
+                                       Path.Combine (lib_mono_dir, "net_3_5"),  // Version35
                                        // mono's 4.0 is not an actual framework directory with all tools etc
                                        // it's simply reference assemblies. So like .NET we consider 4.5 to
                                        // be a complete replacement for 4.0.
-                                       Path.Combine (lib_mono_dir, "net_4_x"),
-                                       Path.Combine (lib_mono_dir, "net_4_x"),
-                                       Path.Combine (lib_mono_dir, "net_4_x")
+                                       Path.Combine (lib_mono_dir, "net_4_x"),  // Version40
+                                       Path.Combine (lib_mono_dir, "net_4_x"),  // Version45
+                                       Path.Combine (lib_mono_dir, "net_4_x"),  // Version451
+                                       Path.Combine (lib_mono_dir, "net_4_x"),  // Version46
+                                       Path.Combine (lib_mono_dir, "net_4_x"),  // Version461
+                                       Path.Combine (lib_mono_dir, "net_4_x"),  // Version462
                                };      
                        } else if (runningOnDotNet) {
                                mono_dir = new string [] {
-                                       Path.Combine (lib_mono_dir, "v1.0.3705"),
-                                       Path.Combine (lib_mono_dir, "v2.0.50727"),
-                                       Path.Combine (lib_mono_dir, "v2.0.50727"),
-                                       Path.Combine (lib_mono_dir, "v3.5"),
-                                       Path.Combine (lib_mono_dir, "v4.0.30319"),
-                                       Path.Combine (lib_mono_dir, "v4.0.30319"),
-                                       Path.Combine (lib_mono_dir, "v4.0.30319")
+                                       Path.Combine (lib_mono_dir, "v1.0.3705"),   // Version11
+                                       Path.Combine (lib_mono_dir, "v2.0.50727"),  // Version20
+                                       Path.Combine (lib_mono_dir, "v2.0.50727"),  // Version30
+                                       Path.Combine (lib_mono_dir, "v3.5"),        // Version35
+                                       Path.Combine (lib_mono_dir, "v4.0.30319"),  // Version40
+                                       Path.Combine (lib_mono_dir, "v4.0.30319"),  // Version45
+                                       Path.Combine (lib_mono_dir, "v4.0.30319"),  // Version451
+                                       Path.Combine (lib_mono_dir, "v4.0.30319"),  // Version46
+                                       Path.Combine (lib_mono_dir, "v4.0.30319"),  // Version461
+                                       Path.Combine (lib_mono_dir, "v4.0.30319"),  // Version462
                                };
                        } else {
                                mono_dir = new string [] {
-                                       Path.Combine (lib_mono_dir, "1.0"),
-                                       Path.Combine (lib_mono_dir, "2.0"),
-                                       Path.Combine (lib_mono_dir, "2.0"),
-                                       Path.Combine (lib_mono_dir, "3.5"),
+                                       Path.Combine (lib_mono_dir, "1.0"),  // Version11
+                                       Path.Combine (lib_mono_dir, "2.0"),  // Version20
+                                       Path.Combine (lib_mono_dir, "2.0"),  // Version30
+                                       Path.Combine (lib_mono_dir, "3.5"),  // Version35
                                        // see comment above regarding 4.0/4.5
-                                       Path.Combine (lib_mono_dir, "4.5"),
-                                       Path.Combine (lib_mono_dir, "4.5"),
-                                       Path.Combine (lib_mono_dir, "4.5"),
+                                       Path.Combine (lib_mono_dir, "4.5"),  // Version40
+                                       Path.Combine (lib_mono_dir, "4.5"),  // Version45
+                                       Path.Combine (lib_mono_dir, "4.5"),  // Version451
+                                       Path.Combine (lib_mono_dir, "4.5"),  // Version46
+                                       Path.Combine (lib_mono_dir, "4.5"),  // Version461
+                                       Path.Combine (lib_mono_dir, "4.5"),  // Version462
                                };
                        }
 
@@ -142,6 +151,16 @@ namespace Microsoft.Build.Utilities
                        return null;
                }
 
+               public static string GetPathToDotNetFrameworkBinFile (string fileName)
+               {
+                       string dir = Path.Combine(Directory.GetParent(Directory.GetParent(lib_mono_dir).FullName).FullName, "bin");
+                       string file = Path.Combine (dir, fileName);
+                       if (File.Exists (file))
+                               return file;
+
+                       return null;
+               }
+
                public static string GetPathToDotNetFrameworkSdk (TargetDotNetFrameworkVersion version)
                {
                        return GetPathToDotNetFramework (version);