string GetTargetPathForGeneratedPath(string path) { var subpath = (InstallDir.Contains("Xamarin.iOS.framework")) ? "native" : "full"; var pos = path.IndexOf(subpath, StringComparison.InvariantCulture); if (pos >= 0) { var relativePath = path.Remove(0, pos + subpath.Length + 1); return(Path.Combine(DestinationDir, "src", FrameworkPath.Remove(FrameworkPath.IndexOf(".framework", StringComparison.InvariantCulture)), relativePath)); } return(null); }
public string GetTargetPath(string path) { var relativePath = path.Substring(OpenTKSourcePath.Length); if (relativePath.StartsWith("/", StringComparison.Ordinal)) { relativePath = relativePath.Remove(0, 1); } var target = Path.Combine(DestinationDir, "src", (InstallDir.Contains("Xamarin.iOS") ? "Xamarin.iOS" : "Xamarin.Mac"), relativePath); return(target); }
public bool IsMonoPath(string path) { // remove the intall dir and append the mono source path if (path.StartsWith(InstallDir, StringComparison.Ordinal)) { // dealing with the jenkins paths if (Verbose) { Console.WriteLine($"Install dir is {InstallDir}"); Console.WriteLine($"Original path os {path}"); } var srcDir = Path.Combine(InstallDir, srcSubPath, (InstallDir.Contains(xamariniOSDir) ? xamariniOSDir : xamarinMacDir)); if (Verbose) { Console.WriteLine($"Src path to remove {srcDir}"); } var relative = path.Remove(0, srcDir.Length); if (Verbose) { Console.WriteLine($"Relative path is {relative}"); } if (relative.StartsWith("/", StringComparison.Ordinal)) { relative = relative.Remove(0, 1); } var monoPath = Path.Combine(MonoSourcePath, relative); if (Verbose) { Console.WriteLine($"Mono path is {monoPath}"); } return(File.Exists(monoPath)); } if (path.StartsWith(XamarinSourcePath, StringComparison.Ordinal)) { return(false); } var xamarinRuntimePath = XamarinSourcePath.Replace($"/{srcSubPath}/", $"/{runtimeSubPath}/"); if (path.StartsWith(xamarinRuntimePath, StringComparison.Ordinal)) { return(false); } return(path.StartsWith(MonoSourcePath, StringComparison.Ordinal)); }
public bool IsOpenTKPath(string path) { if (path.StartsWith(InstallDir, StringComparison.Ordinal)) { // dealing with the jenkins paths var srcDir = Path.Combine(InstallDir, srcSubPath, (InstallDir.Contains(xamariniOSDir) ? xamariniOSDir : xamarinMacDir)); var relative = path.Remove(0, srcDir.Length); if (relative.StartsWith("/", StringComparison.Ordinal)) { relative = relative.Remove(0, 1); } var openTKPath = Path.Combine(OpenTKSourcePath, relative); return(File.Exists(openTKPath)); } else { return(path.Contains(OpenTKSourcePath)); } }
/// <summary> /// Returns the source path for a generated file. /// </summary> /// <returns>The source path for native type.</returns> /// <param name="path">Path.</param> string GetSourcePathForGeneratedPath(string path) { var frameworkPrefix = FrameworkPath.Remove(FrameworkPath.IndexOf(".framework", StringComparison.Ordinal)); var installPath = Path.Combine(InstallDir, "src", frameworkPrefix); // we might be looking at a mdb that was already gone thorugh mdb rebase, if that is the case, do find the path for the final target if (path.StartsWith(InstallDir, StringComparison.InvariantCulture)) { var src = path.Substring(installPath.Length + 1); if (src.StartsWith("/", StringComparison.Ordinal)) { src = src.Remove(0, 1); } src = Path.Combine(XamarinSourcePath, (InstallDir.Contains("Xamarin.iOS.framework")) ? "build/ios/native/" : "build/mac/full/", src); return(src); } else { var pos = path.IndexOf($"/{frameworkPrefix}/", StringComparison.InvariantCulture); var src = path.Remove(0, pos + $"/{frameworkPrefix}/".Length); // 3 for src and 1 for / src = Path.Combine(XamarinSourcePath, src); return(src); } }