ManifestDependencies

ManifestDependencies

#Overview

name: ManifestDependencies

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

It is referenced in 5 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ManifestDependencies is to specify additional manifest files that should be considered as dependencies when generating or processing localization data in Unreal Engine 5. It is primarily used in the localization and text gathering systems.

This setting variable is relied upon by several Unreal Engine subsystems and modules related to localization and text gathering, including:

  1. The Localization Configuration system
  2. GatherTextFromAssets commandlet
  3. GatherTextFromMetaData commandlet
  4. GatherTextFromSource commandlet
  5. GenerateGatherManifest commandlet

The value of this variable is typically set in configuration files or scripts used for localization tasks. It can be set multiple times to specify multiple manifest dependencies.

ManifestDependencies interacts with other localization-related variables and systems, such as localization targets, gather text configurations, and manifest generation processes.

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

  1. The paths specified should be relative to the project or engine root, depending on the context.
  2. The manifest files referenced must have valid file extensions.
  3. It’s used in various commandlets, so changes may affect multiple localization processes.

Best practices when using this variable include:

  1. Ensure all specified manifest dependencies exist and are accessible.
  2. Use relative paths to maintain portability across different development environments.
  3. Only include necessary dependencies to avoid bloating the localization process.
  4. Regularly review and update the dependencies list to ensure it remains relevant and optimized.
  5. Be consistent in how you specify the paths across different configuration files and scripts.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/Localization/Category.ini:2, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/Editor.ini:2, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/EditorTutorials.ini:2, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/EditorTutorials.ini:3, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/EditorTutorials.ini:4, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/EditorTutorials.ini:5, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/EditorTutorials.ini:6, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/EditorTutorials.ini:7, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/PropertyNames.ini:2, section: [CommonSettings]

Location: <Workspace>/Engine/Config/Localization/ToolTips.ini:2, section: [CommonSettings]

Location: <Workspace>/Projects/Lyra/Config/Localization/Game_Gather.ini:4, section: [CommonSettings]

Location: <Workspace>/Projects/Lyra/Config/Localization/Game_Gather.ini:5, section: [CommonSettings]

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Source/Developer/Localization/Private/LocalizationConfigurationScript.cpp:290

Scope (from outer to inner):

file
namespace    LocalizationConfigurationScript
function     FLocalizationConfigurationScript GenerateGatherTextConfigFile

Source code excerpt:

				if (OtherTarget && Target != *OtherTarget)
				{
					ConfigSection.Add( TEXT("ManifestDependencies"), MakePathRelativeForCommandletProcess(GetManifestPath(*OtherTarget), !bIsEngineTarget) );
				}
			}

			for (const FFilePath& Path : Target->Settings.AdditionalManifestDependencies)
			{
				ConfigSection.Add( TEXT("ManifestDependencies"), MakePathRelativeForCommandletProcess(Path.FilePath, !bIsEngineTarget) );
			}

			for (const FString& ModuleName : Target->Settings.RequiredModuleNames)
			{
				ConfigSection.Add( TEXT("ModulesToPreload"), ModuleName );
			}

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Commandlets/GatherTextFromAssetsCommandlet.cpp:1545

Scope (from outer to inner):

file
function     bool UGatherTextFromAssetsCommandlet::ConfigureFromScript

Source code excerpt:

	GetStringArrayFromConfig(*SectionName, TEXT("ExcludeClasses"), ExcludeClassNames, GatherTextConfigPath);

	GetPathArrayFromConfig(*SectionName, TEXT("ManifestDependencies"), ManifestDependenciesList, GatherTextConfigPath);

	// Get whether we should gather editor-only data. Typically only useful for the localization of UE itself.
	if (!GetBoolFromConfig(*SectionName, TEXT("ShouldGatherFromEditorOnlyData"), bShouldGatherFromEditorOnlyData, GatherTextConfigPath))
	{
		bShouldGatherFromEditorOnlyData = false;
	}

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Commandlets/GatherTextFromMetadataCommandlet.cpp:271

Scope (from outer to inner):

file
function     int32 UGatherTextFromMetaDataCommandlet::Main

Source code excerpt:

	// Add any manifest dependencies if they were provided
	TArray<FString> ManifestDependenciesList;
	GetPathArrayFromConfig(*SectionName, TEXT("ManifestDependencies"), ManifestDependenciesList, GatherTextConfigPath);

	for (const FString& ManifestDependency : ManifestDependenciesList)
	{
		FText OutError;
		if (!GatherManifestHelper->AddDependency(ManifestDependency, &OutError))
		{

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Commandlets/GatherTextFromSourceCommandlet.cpp:240

Scope (from outer to inner):

file
function     int32 UGatherTextFromSourceCommandlet::Main

Source code excerpt:

	// Add any manifest dependencies if they were provided
	TArray<FString> ManifestDependenciesList;
	GetPathArrayFromConfig(*SectionName, TEXT("ManifestDependencies"), ManifestDependenciesList, GatherTextConfigPath);
	
	for (const FString& ManifestDependency : ManifestDependenciesList)
	{
		FText OutError;
		if (!GatherManifestHelper->AddDependency(ManifestDependency, &OutError))
		{

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Commandlets/GenerateGatherManifestCommandlet.cpp:142

Scope (from outer to inner):

file
function     int32 UGenerateGatherManifestCommandlet::Main

Source code excerpt:

	//Grab any manifest dependencies
	TArray<FString> ManifestDependenciesList;
	GetPathArrayFromConfig(*SectionName, TEXT("ManifestDependencies"), ManifestDependenciesList, GatherTextConfigPath);

	// Check that all the dependent manifest files have valid file extensions
	for (const FString& ManifestDependency : ManifestDependenciesList)
	{
		if (!GenerateManifestHelper::IsManifestFileExtensionValid(ManifestDependency))
		{