Beispiel #1
0
        string [] GenerateCommandLineCommands()
        {
            var args = new List <string> ();

            if (RootDescriptorFiles != null)
            {
                foreach (var rootFile in RootDescriptorFiles)
                {
                    args.Add("-x");
                    args.Add(rootFile.ItemSpec);
                }
            }

            foreach (var assemblyItem in RootAssemblyNames)
            {
                args.Add("-a");
                args.Add(assemblyItem.ItemSpec);
            }

            HashSet <string> directories = new HashSet <string> ();

            foreach (var assembly in AssemblyPaths)
            {
                var assemblyPath = assembly.ItemSpec;
                var dir          = Path.GetDirectoryName(assemblyPath);
                if (!directories.Contains(dir))
                {
                    directories.Add(dir);
                    args.Add("-d");
                    args.Add(dir);
                }

                string action = assembly.GetMetadata("action");
                if ((action != null) && (action.Length > 0))
                {
                    args.Add("-p");
                    args.Add(action);
                    args.Add(Path.GetFileNameWithoutExtension(assemblyPath));
                }
            }

            if (OutputDirectory != null)
            {
                args.Add("-out");
                args.Add(OutputDirectory.ItemSpec);
            }

            if (ExtraArgs != null)
            {
                args.AddRange(ExtraArgs.Split(' '));
            }

            if (DumpDependencies)
            {
                args.Add("--dump-dependencies");
            }

            return(args.ToArray());
        }
Beispiel #2
0
        private string[] GenerateCommandLineCommands()
        {
            var args = new List <string>();

            if (RootDescriptorFiles != null)
            {
                foreach (var rootFile in RootDescriptorFiles)
                {
                    args.Add("-x");
                    args.Add(rootFile.ItemSpec);
                }
            }

            foreach (var assemblyItem in RootAssemblyNames)
            {
                args.Add("-a");
                args.Add(assemblyItem.ItemSpec);
            }

            var assemblyDirs = AssemblyPaths.Select(p => Path.GetDirectoryName(p.ItemSpec))
                               .GroupBy(d => d).Select(ds => ds.First());

            foreach (var dir in assemblyDirs)
            {
                args.Add("-d");
                args.Add(dir);
            }

            if (OutputDirectory != null)
            {
                args.Add("-out");
                args.Add(OutputDirectory.ItemSpec);
            }

            if (ExtraArgs != null)
            {
                args.AddRange(ExtraArgs.Split(' '));
            }

            if (DumpDependencies)
            {
                args.Add("--dump-dependencies");
            }

            return(args.ToArray());
        }
Beispiel #3
0
        string [] GenerateCommandLineCommands()
        {
            var args = new List <string> ();

            if (RootDescriptorFiles != null)
            {
                foreach (var rootFile in RootDescriptorFiles)
                {
                    args.Add("-x");
                    args.Add(rootFile.ItemSpec);
                }
            }

            foreach (var assemblyItem in RootAssemblyNames)
            {
                args.Add("-a");
                args.Add(assemblyItem.ItemSpec);
            }

            HashSet <string> directories = new HashSet <string> ();

            foreach (var assembly in AssemblyPaths)
            {
                var assemblyPath = assembly.ItemSpec;
                var dir          = Path.GetDirectoryName(assemblyPath);
                if (!directories.Contains(dir))
                {
                    directories.Add(dir);
                    args.Add("-d");
                    args.Add(dir);
                }

                string action = assembly.GetMetadata("action");
                if ((action != null) && (action.Length > 0))
                {
                    args.Add("-p");
                    args.Add(action);
                    args.Add(Path.GetFileNameWithoutExtension(assemblyPath));
                }
            }

            if (OutputDirectory != null)
            {
                args.Add("-out");
                args.Add(OutputDirectory.ItemSpec);
            }

            if (ClearInitLocals)
            {
                args.Add("-s");
                // Version of ILLink.CustomSteps is passed as a workaround for msbuild issue #3016
                args.Add("ILLink.CustomSteps.ClearInitLocalsStep,ILLink.CustomSteps,Version=0.0.0.0:OutputStep");
                if ((ClearInitLocalsAssemblies != null) && (ClearInitLocalsAssemblies.Length > 0))
                {
                    args.Add("-m");
                    args.Add("ClearInitLocalsAssemblies");
                    args.Add(ClearInitLocalsAssemblies);
                }
            }

            if (ExtraArgs != null)
            {
                args.AddRange(ExtraArgs.Split(' '));
            }

            if (DumpDependencies)
            {
                args.Add("--dump-dependencies");
            }

            return(args.ToArray());
        }