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);
        }
Exemple #2
0
        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));
        }
Exemple #4
0
 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);
            }
        }