diff --git a/Editor/Build/BuildProject.cs b/Editor/Build/BuildProject.cs
index e2e8c05..c4af464 100644
--- a/Editor/Build/BuildProject.cs
+++ b/Editor/Build/BuildProject.cs
@@ -78,6 +78,34 @@ public static void ConfigureEditor(string configKey, BuildOptions options = Buil
);
}
+ ///
+ /// Ignore the Editor configuration steps and only generate the BuildConstants.cs file,
+ /// to avoid dealing with platform and scene list switching
+ ///
+ ///
+ ///
+ public static void GenerateBuildConstantsOnlyButton(string configKey, BuildOptions options = BuildOptions.None)
+ {
+ DateTime configureTime = DateTime.Now;
+
+ // Clear any old notifications
+ BuildNotificationList.instance.RefreshAll();
+
+ // Report Build Constants generation
+ BuildNotificationList.instance.AddNotification(new BuildNotification(
+ BuildNotification.Category.Notification,
+ "Generating BuildConstants for: ", configKey,
+ true, null));
+
+ // Parse build config
+ BuildSettings.projectConfigurations.ParseKeychain(configKey, out BuildReleaseType releaseType, out BuildPlatform platform, out BuildArchitecture architecture,
+ out BuildScriptingBackend scriptingBackend, out BuildDistribution distribution);
+ string constantsFileLocation = BuildSettings.basicSettings.constantsFileLocation;
+
+ GenerateBuildConstants(releaseType, platform, architecture, scriptingBackend, distribution, configureTime, constantsFileLocation);
+
+ }
+
public static string GenerateDefaultDefines(BuildReleaseType releaseType, BuildPlatform platform, BuildArchitecture arch,
BuildScriptingBackend scriptingBackend, BuildDistribution dist)
{
@@ -265,6 +293,14 @@ private static void ConfigureEnvironment(BuildReleaseType releaseType, BuildPlat
releaseType.sceneList.Refresh();
}
+ ///Create the buildConstants.cs file
+ private static void GenerateBuildConstants(BuildReleaseType releaseType, BuildPlatform platform, BuildArchitecture architecture,
+ BuildScriptingBackend scriptingBackend, BuildDistribution distribution, DateTime buildTime, string constantsFileLocation)
+ {
+ BuildConstantsGenerator.Generate(buildTime, constantsFileLocation, BuildSettings.productParameters.buildVersion,
+ releaseType, platform, scriptingBackend, architecture, distribution);
+ }
+
private static void ReplaceFromFile(StringBuilder sb, string keyString, string filename)
{
if (sb.ToString().IndexOf(keyString) > -1)
diff --git a/Editor/Build/Settings/UI/ProjectConfigurationsDrawer.cs b/Editor/Build/Settings/UI/ProjectConfigurationsDrawer.cs
index 49099f5..4848f96 100644
--- a/Editor/Build/Settings/UI/ProjectConfigurationsDrawer.cs
+++ b/Editor/Build/Settings/UI/ProjectConfigurationsDrawer.cs
@@ -182,6 +182,12 @@ public override void OnGUI(Rect position, SerializedProperty property, GUIConten
}
EditorGUI.EndDisabledGroup();
+ if (GUILayout.Button(new GUIContent("Generate Build Constants", "Only generate the BuildConstants.cs file without changing platform."), GUILayout.ExpandWidth(true)))
+ {
+ // Generate the Build Constants File
+ BuildProject.GenerateBuildConstantsOnlyButton(selectedKeyChain.stringValue, buildOptions);
+ }
+
if (GUILayout.Button(new GUIContent("Configure Editor Environment", "Switches platform, refreshes BuildConstants, applies scripting defines and variant settings and sets Build Settings scene list to match the selected build configuration"), GUILayout.ExpandWidth(true)))
{
// Update Editor environment settings to match selected build configuration