bMakeBinaryConfig

bMakeBinaryConfig

#Overview

name: bMakeBinaryConfig

The value of this variable can be defined or overridden in .ini config files. 1 .ini config file referencing this setting variable.

It is referenced in 8 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of bMakeBinaryConfig is to control whether a binary configuration file is generated during the packaging process of an Unreal Engine project. This setting is primarily used in the project packaging and deployment workflow.

This setting variable is relied upon by the following Unreal Engine subsystems and modules:

  1. DeveloperToolSettings: It’s defined in the UProjectPackagingSettings class, which is part of the project configuration settings.
  2. LauncherServices: It’s used in the FLauncherProfile class, which is responsible for managing launch profiles for deployed projects.

The value of this variable is set in multiple places:

  1. It can be configured through the project settings in the Unreal Editor, as it’s exposed as an UPROPERTY in the UProjectPackagingSettings class.
  2. It’s serialized and deserialized in the FLauncherProfile class, indicating that it can be saved and loaded as part of a launcher profile.
  3. It can be set programmatically using the SetMakeBinaryConfig method in the ILauncherProfile interface.

This variable doesn’t appear to directly interact with other variables, but it’s part of a larger set of packaging and deployment settings.

Developers should be aware of the following when using this variable:

  1. Enabling this option (setting it to true) will generate a binary config file during the packaging process, which can lead to faster loading times for the packaged project.
  2. This setting is specific to the packaging process and doesn’t affect the development environment.

Best practices when using this variable include:

  1. Consider enabling it for release builds to potentially improve loading times.
  2. Be aware that using binary config files may make it more difficult to manually edit configuration settings post-packaging.
  3. Test the performance impact of enabling this option in your specific project to ensure it provides the desired benefits.
  4. Keep this setting consistent across different build configurations to maintain predictable behavior.

#Setting Variables

#References In INI files

Location: <Workspace>/Projects/Lyra/Config/DefaultGame.ini:96, section: [/Script/UnrealEd.ProjectPackagingSettings]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Developer/DeveloperToolSettings/Classes/Settings/ProjectPackagingSettings.h:271

Scope (from outer to inner):

file
class        class UProjectPackagingSettings : public UObject

Source code excerpt:

	/** If enabled, staging will make a binary config file for faster loading. */
	UPROPERTY(config, EditAnywhere, Category = Packaging)
	bool bMakeBinaryConfig;

	/**
	 * If enabled, will generate pak file chunks.  Assets can be assigned to chunks in the editor or via a delegate (See ShooterGameDelegates.cpp). 
	 * Can be used for streaming installs (PS4 Playgo, XboxOne Streaming Install, etc)
	 */
	UPROPERTY(config, EditAnywhere, Category=Packaging)

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Private/Profiles/LauncherProfile.h:1080

Scope (from outer to inner):

file
class        class FLauncherProfile final : public ILauncherProfile
function     virtual bool Serialize

Source code excerpt:

		if (Version >= LAUNCHERSERVICES_ADDEDMAKEBINARYCONFIG)
		{
			Archive << bMakeBinaryConfig;
		}

		if (Version >= LAUNCHERSERVICES_ADDEDREFERENCECONTAINERS)
		{
			Archive << ReferenceContainerGlobalFileName;
			Archive << ReferenceContainerCryptoKeysFileName;

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Private/Profiles/LauncherProfile.h:1247

Scope (from outer to inner):

file
class        class FLauncherProfile final : public ILauncherProfile
function     virtual void Save

Source code excerpt:

		Writer.WriteValue("IncludePrerequisites", IncludePrerequisites);
		Writer.WriteValue("UseIoStore", bUseIoStore);
		Writer.WriteValue("MakeBinaryConfig", bMakeBinaryConfig);
		Writer.WriteValue("BuildTargetSpecified", BuildTargetSpecified);
		Writer.WriteValue("BuildTargetName", BuildTargetName);

		// serialize the default launch role
		DefaultLaunchRole->Save(Writer, TEXT("DefaultRole"));

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Private/Profiles/LauncherProfile.h:1944

Scope (from outer to inner):

file
class        class FLauncherProfile final : public ILauncherProfile
function     virtual bool Load

Source code excerpt:

		if (Version >= LAUNCHERSERVICES_ADDEDMAKEBINARYCONFIG)
		{
			bMakeBinaryConfig = Object.GetBoolField(TEXT("MakeBinaryConfig"));
		}

		if (Version >= LAUNCHERSERVICES_ADDBUILDTARGETNAME)
		{
			BuildTargetSpecified = Object.GetBoolField(TEXT("BuildTargetSpecified"));
			BuildTargetName = Object.GetStringField(TEXT("BuildTargetName"));

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Private/Profiles/LauncherProfile.h:2102

Scope (from outer to inner):

file
class        class FLauncherProfile final : public ILauncherProfile
function     virtual void SetDefaults

Source code excerpt:

		bShouldUpdateFlash = false;
		bIsDeviceASimulator = false;
		bMakeBinaryConfig = false;

		RefreshValidBuildTargets();
		Validate();
	}

	virtual void SetBuildMode(ELauncherProfileBuildModes::Type Mode) override

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Private/Profiles/LauncherProfile.h:2648

Scope (from outer to inner):

file
class        class FLauncherProfile final : public ILauncherProfile
function     virtual void SetMakeBinaryConfig

Source code excerpt:

	virtual void SetMakeBinaryConfig(bool bInMakeBinaryConfig) override
	{
		bMakeBinaryConfig = bInMakeBinaryConfig;
	}

	virtual bool MakeBinaryConfig() const override
	{
		return bMakeBinaryConfig;
	}

	virtual TArray<FString> GetExplicitBuildTargetNames() const override
	{
		return ExplictBuildTargetNames;
	}

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Private/Profiles/LauncherProfile.h:3262

Scope (from outer to inner):

file
class        class FLauncherProfile final : public ILauncherProfile

Source code excerpt:


	// Make binary config.
	bool bMakeBinaryConfig;

	// Update flash on device before running
	bool bShouldUpdateFlash;

	// Is the launch device actually a Simulator
	bool bIsDeviceASimulator;

#Loc: <Workspace>/Engine/Source/Developer/LauncherServices/Public/ILauncherProfile.h:1370

Scope (from outer to inner):

file
class        class ILauncherProfile

Source code excerpt:

	/**
	 * Sets whether to make a binary config file during packaging
	 * @param bMakeBinaryConfig Whether to make a binary config file during staging
	 */
	virtual void SetMakeBinaryConfig(bool bMakeBinaryConfig) = 0;
	/**
	 * Make binary config file during staging or not.
	 *
	 * @return true to make binary config file
	 */
	virtual bool MakeBinaryConfig() const = 0;