Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions Editor/Build/BuildProject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,34 @@ public static void ConfigureEditor(string configKey, BuildOptions options = Buil
);
}

/// <summary>
/// Ignore the Editor configuration steps and only generate the BuildConstants.cs file,
/// to avoid dealing with platform and scene list switching
/// </summary>
/// <param name="configKey"></param>
/// <param name="options"></param>
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)
{
Expand Down Expand Up @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions Editor/Build/Settings/UI/ProjectConfigurationsDrawer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down