public static IEnumerable<string> AddBuilderArguments(Il2CppNativeCodeBuilder builder, string outputRelativePath, IEnumerable<string> includeRelativePaths) { List<string> list = new List<string> { "--compile-cpp", "--libil2cpp-static", FormatArgument("platform", builder.CompilerPlatform), FormatArgument("architecture", builder.CompilerArchitecture), FormatArgument("configuration", "Release"), FormatArgument("outputpath", builder.ConvertOutputFileToFullPath(outputRelativePath)) }; if (!string.IsNullOrEmpty(builder.CacheDirectory)) { list.Add(FormatArgument("cachedirectory", CacheDirectoryPathFor(builder.CacheDirectory))); } if (!string.IsNullOrEmpty(builder.CompilerFlags)) { list.Add(FormatArgument("compiler-flags", builder.CompilerFlags)); } if (!string.IsNullOrEmpty(builder.LinkerFlags)) { list.Add(FormatArgument("linker-flags", builder.LinkerFlags)); } if (!string.IsNullOrEmpty(builder.PluginPath)) { list.Add(FormatArgument("plugin", builder.PluginPath)); } foreach (string str in builder.ConvertIncludesToFullPaths(includeRelativePaths)) { list.Add(FormatArgument("additional-include-directories", str)); } list.AddRange(builder.AdditionalIl2CPPArguments); return list; }
public static void ClearCacheIfEditorVersionDiffers(Il2CppNativeCodeBuilder builder, string currentEditorVersion) { string path = CacheDirectoryPathFor(builder.CacheDirectory); if (Directory.Exists(path) && !File.Exists(Path.Combine(builder.CacheDirectory, EditorVersionFilenameFor(currentEditorVersion)))) { Directory.Delete(path, true); } }
public static void PrepareCacheDirectory(Il2CppNativeCodeBuilder builder, string currentEditorVersion) { Directory.CreateDirectory(CacheDirectoryPathFor(builder.CacheDirectory)); string path = Path.Combine(builder.CacheDirectory, EditorVersionFilenameFor(currentEditorVersion)); if (!File.Exists(path)) { File.Create(path).Dispose(); } }
public static void ClearAndPrepareCacheDirectory(Il2CppNativeCodeBuilder builder) { string fullUnityVersion = InternalEditorUtility.GetFullUnityVersion(); ClearCacheIfEditorVersionDiffers(builder, fullUnityVersion); PrepareCacheDirectory(builder, fullUnityVersion); }