using XGame.Editor.Compiler; using System.IO; using XGame.Framework.Json; namespace XGame.Editor.Build { /// /// 命令行打包 /// public class CommandLineBuild { public static void BuildApp() { var configPath = BuildUtils.GetCommandLineArgs(); //var configPath = PathDefine.ExtAssetsPath + "/Editor/BuildConfig.json"; if (string.IsNullOrEmpty(configPath) || !File.Exists(configPath)) { BuildLog.Error($"Can't Find BuildConfig.json. Path:{configPath}"); UnityEditor.EditorApplication.Exit((int)BuildErrorCode.ConfigFileMissing); return; } var configStr = File.ReadAllText(configPath); var config = XJson.ToObject(configStr); BuildApp(config); } public static void BuildApp(BuildConfig config) { BuildLog.Log($"CommandLineBuild BuildApp Start. Target:{config.target} publish:{config.publishType} isSetScriptDefine:{config.isSetScriptDefine}" + $" ignoreGenIlrt:{config.project.isIgnoreGenIlrt}"); var builder = new ContextBuilder(config, true); if (builder.Build()) { var context = builder.GetProduct(); CompileScriptsHandle.Clear(); var cmd = CmdFactory.Create(context); cmd.Start(); } } } }