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()); }
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()); }
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()); }