public static void WeaveAssembliesInFolder(string folder, string playerPackage) { ICompilationExtension compilationExtension = Weaver.GetCompilationExtension(); string unityEngine = Path.Combine(folder, "UnityEngine.dll"); foreach (string current in from f in Directory.GetFiles(folder) where Weaver.ShouldWeave(Path.GetFileName(f)) select f) { string[] extraAssemblyPaths; IAssemblyResolver assemblyResolver; Weaver.QueryAssemblyPathsAndResolver(compilationExtension, current, false, out extraAssemblyPaths, out assemblyResolver); Weaver.WeaveInto(current, current, unityEngine, playerPackage, extraAssemblyPaths, assemblyResolver); } }
public static bool WeaveUnetFromEditor(ScriptAssembly assembly, string assemblyDirectory, string outputDirectory, string unityEngine, string unityUNet, bool buildingForEditor) { if ((assembly.Flags & AssemblyFlags.EditorOnly) == AssemblyFlags.EditorOnly) { return(true); } var assemblyPath = Path.Combine(assemblyDirectory, assembly.Filename); ICompilationExtension compilationExtension = GetCompilationExtension(); IAssemblyResolver assemblyResolver; string[] assemblyPaths; QueryAssemblyPathsAndResolver(compilationExtension, assemblyPath, buildingForEditor, out assemblyPaths, out assemblyResolver); return(WeaveInto(assembly, assemblyPath, outputDirectory, unityEngine, unityUNet, assemblyPaths, assemblyResolver)); }
private void FillCompilerOptions(List <string> arguments, out string argsPrefix) { argsPrefix = "/noconfig "; arguments.Add("/nostdlib+"); arguments.Add("/preferreduilang:en-US"); IPlatformSupportModule platformSupportModule = ModuleManager.FindPlatformSupportModule(ModuleManager.GetTargetStringFromBuildTarget(this.BuildTarget)); ICompilationExtension compilationExtension = platformSupportModule.CreateCompilationExtension(); arguments.AddRange(from r in this.GetClassLibraries() select "/reference:\"" + r + "\""); arguments.AddRange(from r in compilationExtension.GetAdditionalAssemblyReferences() select "/reference:\"" + r + "\""); arguments.AddRange(from r in compilationExtension.GetWindowsMetadataReferences() select "/reference:\"" + r + "\""); arguments.AddRange(from d in compilationExtension.GetAdditionalDefines() select "/define:" + d); arguments.AddRange(compilationExtension.GetAdditionalSourceFiles()); }
public static bool WeaveUnetFromEditor(ScriptAssembly assembly, string assemblyDirectory, string outputDirectory, string unityEngine, string unityUNet, bool buildingForEditor) { bool result; if ((assembly.Flags & AssemblyFlags.EditorOnly) == AssemblyFlags.EditorOnly) { result = true; } else { string text = Path.Combine(assemblyDirectory, assembly.Filename); ICompilationExtension compilationExtension = Weaver.GetCompilationExtension(); string[] extraAssemblyPaths; IAssemblyResolver assemblyResolver; Weaver.QueryAssemblyPathsAndResolver(compilationExtension, text, buildingForEditor, out extraAssemblyPaths, out assemblyResolver); result = Weaver.WeaveInto(assembly, text, outputDirectory, unityEngine, unityUNet, extraAssemblyPaths, assemblyResolver); } return(result); }
public static AssemblyTypeInfoGenerator.ClassInfo[] ExtractAssemblyTypeInfo(BuildTarget targetPlatform, bool isEditor, string assemblyPathName, string[] searchDirs) { try { ICompilationExtension compilationExtension = ModuleManager.GetCompilationExtension(ModuleManager.GetTargetStringFromBuildTarget(targetPlatform)); string[] extraAssemblyPaths = compilationExtension.GetCompilerExtraAssemblyPaths(isEditor, assemblyPathName); if (extraAssemblyPaths != null && extraAssemblyPaths.Length > 0) { List <string> stringList = new List <string>((IEnumerable <string>)searchDirs); stringList.AddRange((IEnumerable <string>)extraAssemblyPaths); searchDirs = stringList.ToArray(); } IAssemblyResolver assemblyResolver = compilationExtension.GetAssemblyResolver(isEditor, assemblyPathName, searchDirs); return((assemblyResolver != null ? new AssemblyTypeInfoGenerator(assemblyPathName, assemblyResolver) : new AssemblyTypeInfoGenerator(assemblyPathName, searchDirs)).GatherClassInfo()); } catch (Exception ex) { throw new Exception("ExtractAssemblyTypeInfo: Failed to process " + assemblyPathName + ", " + (object)ex); } }
public static AssemblyTypeInfoGenerator.ClassInfo[] ExtractAssemblyTypeInfo(BuildTarget targetPlatform, bool isEditor, string assemblyPathName, string[] searchDirs) { AssemblyTypeInfoGenerator.ClassInfo[] result; try { string targetStringFromBuildTarget = ModuleManager.GetTargetStringFromBuildTarget(targetPlatform); ICompilationExtension compilationExtension = ModuleManager.GetCompilationExtension(targetStringFromBuildTarget); string[] compilerExtraAssemblyPaths = compilationExtension.GetCompilerExtraAssemblyPaths(isEditor, assemblyPathName); if (compilerExtraAssemblyPaths != null && compilerExtraAssemblyPaths.Length > 0) { List <string> list = new List <string>(searchDirs); list.AddRange(compilerExtraAssemblyPaths); searchDirs = list.ToArray(); } IAssemblyResolver assemblyResolver = compilationExtension.GetAssemblyResolver(isEditor, assemblyPathName, searchDirs); AssemblyTypeInfoGenerator assemblyTypeInfoGenerator; if (assemblyResolver == null) { assemblyTypeInfoGenerator = new AssemblyTypeInfoGenerator(assemblyPathName, searchDirs); } else { assemblyTypeInfoGenerator = new AssemblyTypeInfoGenerator(assemblyPathName, assemblyResolver); } result = assemblyTypeInfoGenerator.GatherClassInfo(); } catch (Exception ex) { throw new Exception(string.Concat(new object[] { "ExtractAssemblyTypeInfo: Failed to process ", assemblyPathName, ", ", ex })); } return(result); }
public virtual ICompilationExtension CreateCompilationExtension() { return ((this.compilationExtension == null) ? (this.compilationExtension = new DefaultCompilationExtension()) : this.compilationExtension); }
private static void QueryAssemblyPathsAndResolver(ICompilationExtension compilationExtension, string file, bool editor, out string[] assemblyPaths, out IAssemblyResolver assemblyResolver) { assemblyResolver = compilationExtension.GetAssemblyResolver(editor, file, null); assemblyPaths = compilationExtension.GetCompilerExtraAssemblyPaths(editor, file).ToArray <string>(); }
public virtual ICompilationExtension CreateCompilationExtension() { if (this.compilationExtension != null) return this.compilationExtension; return this.compilationExtension = (ICompilationExtension) new DefaultCompilationExtension(); }
private static void QueryAssemblyPathsAndResolver(ICompilationExtension compilationExtension, string file, bool editor, out string[] assemblyPaths, out IAssemblyResolver assemblyResolver) { assemblyResolver = compilationExtension.GetAssemblyResolver(editor, file, (string[]) null); assemblyPaths = ((IEnumerable<string>) compilationExtension.GetCompilerExtraAssemblyPaths(editor, file)).ToArray<string>(); }
public virtual ICompilationExtension CreateCompilationExtension() => ((this.compilationExtension == null) ? (this.compilationExtension = new DefaultCompilationExtension()) : this.compilationExtension);
public virtual ICompilationExtension CreateCompilationExtension() { return(compilationExtension != null ? compilationExtension : compilationExtension = new DefaultCompilationExtension()); }