Files
UnrealEngine/Engine/Source/Editor/UnrealEd/UnrealEd.Build.cs
2025-05-18 13:04:45 +08:00

392 lines
8.3 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.IO;
public class UnrealEd : ModuleRules
{
public UnrealEd(ReadOnlyTargetRules Target) : base(Target)
{
if(!Target.bCompileAgainstEditor)
{
throw new BuildException("Unable to instantiate UnrealEd module for non-editor targets.");
}
bEnableExceptions = !Target.bUseAutoRTFMCompiler;
PrivatePCHHeaderFile = "Private/UnrealEdPrivatePCH.h";
SharedPCHHeaderFile = "Public/UnrealEdSharedPCH.h";
PrivateIncludePathModuleNames.AddRange(
new string[]
{
"StructViewer",
"MainFrame",
"TurnkeySupport",
"MessagingCommon",
"MovieSceneCapture",
"PlacementMode",
"Settings",
"SettingsEditor",
"ViewportSnapping",
"SourceCodeAccess",
"OutputLog",
"PortalServices",
"PhysicsAssetEditor",
"Media",
"VirtualTexturingEditor",
"HotReload",
"StaticMeshEditor",
"WorkspaceMenuStructure",
"LandscapeEditor",
"Blutility",
"SlateReflector",
"PackagesDialog",
"GraphEditor",
"SourceControlWindows",
}
);
PublicDependencyModuleNames.AddRange(
new string[]
{
"AssetDefinition",
"Core",
"CoreUObject",
"ApplicationCore",
"DirectoryWatcher",
"Documentation",
"Engine",
"Json",
"Projects",
"SandboxFile",
"Slate",
"SlateCore",
"EditorFramework",
"SourceControl",
"UncontrolledChangelists",
"UnrealEdMessages",
"BlueprintGraph",
"HTTP",
"FunctionalTesting",
"AutomationController",
"Localization",
"AudioEditor",
"NetworkFileSystem",
"UMG",
"NavigationSystem",
"MeshDescription",
"StaticMeshDescription",
"MeshBuilder",
"MaterialShaderQualitySettings",
"EditorSubsystem",
"InteractiveToolsFramework",
"TypedElementFramework",
"TypedElementRuntime",
"ToolMenusEditor",
"StatusBar",
"InterchangeCore",
"InterchangeEngine",
"DeveloperToolSettings",
"SubobjectDataInterface",
"SubobjectEditor",
"PhysicsUtilities",
"ToolWidgets",
"AssetTools",
"WidgetRegistration",
"GameplayTasks",
"TargetPlatform",
"CommonMenuExtensions",
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
"ImageCore",
"AssetRegistry",
"AssetTagsEditor",
"BSPUtils",
"LevelSequence",
"AnimGraph",
"AppFramework",
"CinematicCamera",
"CookMetadata",
"CurveEditor",
"DataLayerEditor",
"DerivedDataCache",
"Zen",
"DesktopPlatform",
"LauncherPlatform",
"EngineSettings",
"IESFile",
"ImageWrapper",
"ImageWriteQueue",
"InputCore",
"JsonObjectGraph",
"LauncherServices",
"MaterialEditor",
"MessageLog",
"PakFile",
"PropertyEditor",
"RawMesh",
"MeshUtilitiesCommon",
"SkeletalMeshUtilitiesCommon",
"TextureUtilitiesCommon",
"RenderCore",
"RHI",
"Sockets",
"StatsViewer",
"SwarmInterface",
"TargetPlatform",
"TargetDeviceServices",
"EditorWidgets",
"GraphEditor",
"Kismet",
"JsonUtilities",
"Landscape",
"MeshPaint",
"Foliage",
"FoliageEdit",
"MaterialUtilities",
"LocalizationService",
"LevelEditor",
"AddContentDialog",
"GameProjectGeneration",
"HierarchicalLODUtilities",
"Analytics",
"AnalyticsET",
"PixelInspectorModule",
"MovieScene",
"MovieSceneTracks",
"ViewportInteraction",
"VREditor",
"ClothingSystemEditor",
"ClothingSystemRuntimeInterface",
"ClothingSystemRuntimeCommon",
"PIEPreviewDeviceProfileSelector",
"PakFileUtilities",
"TimeManagement",
"ScriptDisassembler",
"ToolMenus",
"FreeImage",
"UATHelper",
"IoStoreUtilities",
"EditorInteractiveToolsFramework",
"TraceLog",
"TraceAnalysis",
"TraceServices",
"DeveloperSettings",
"AnimationBlueprintLibrary",
"MaterialBaking",
"CookOnTheFly",
"CookOnTheFlyNetServer",
"Zen",
"BuildSettings",
"SubobjectEditor",
"HeadMountedDisplay",
"FieldNotification",
"VirtualizationEditor",
"GeometryCore",
"UniversalObjectLocatorEditor",
"Renderer",
}
);
DynamicallyLoadedModuleNames.AddRange(
new string[]
{
"FontEditor",
"StaticMeshEditor",
"TextureEditor",
"UMGEditor",
"ClassViewer",
"StructViewer",
"CollectionManager",
"ContentBrowser",
"CurveTableEditor",
"DataTableEditor",
"EditorSettingsViewer",
"LandscapeEditor",
"KismetCompiler",
"DetailCustomizations",
"ComponentVisualizers",
"MainFrame",
"TurnkeySupport",
"PackagesDialog",
"Persona",
"PhysicsAssetEditor",
"SettingsEditor",
"StringTableEditor",
"Blutility",
"ScriptableEditorWidgets",
"WorkspaceMenuStructure",
"PlacementMode",
"MeshUtilities",
"MergeActors",
"RenderResourceViewer",
"ProjectSettingsViewer",
"BehaviorTreeEditor",
"ViewportSnapping",
"GameplayTasksEditor",
"UndoHistory",
"SourceCodeAccess",
"HotReload",
"PortalProxies",
"PortalServices",
"OverlayEditor",
"ClothPainter",
"Media",
"VirtualTexturingEditor",
"WorldBookmark",
"WorldPartitionEditor",
"CSVtoSVG",
"SourceControlWindowExtender",
"AnimationSettings",
"GameplayDebuggerEditor",
"StructUtilsTestSuite"
}
);
if (Target.bBuildTargetDeveloperTools)
{
PrivateIncludePathModuleNames.AddRange(
new string[] {
"ProjectTargetPlatformEditor",
}
);
DynamicallyLoadedModuleNames.AddRange(
new string[] {
"SessionFrontend",
"LegacyProjectLauncher",
"DeviceManager",
"ProjectTargetPlatformEditor",
"PListEditor",
"TraceInsights",
}
);
}
CircularlyReferencedDependentModules.AddRange(
new string[] {
"Documentation",
"GraphEditor",
"Kismet",
"AudioEditor",
"LocalizationService",
"ViewportInteraction",
"VREditor",
"MeshPaint",
"PropertyEditor",
"ToolMenusEditor",
"ClothingSystemEditor",
"MaterialShaderQualitySettings",
"EditorInteractiveToolsFramework",
"AddContentDialog",
"AnimationBlueprintLibrary",
"AutomationController",
"CommonMenuExtensions",
"CurveEditor",
"HierarchicalLODUtilities",
"MaterialUtilities",
"StatsViewer",
"SubobjectDataInterface",
"LevelEditor",
"LevelSequence",
"MaterialEditor",
"GameProjectGeneration",
"DataLayerEditor",
"VirtualizationEditor",
"EditorWidgets",
"WidgetRegistration",
"StatusBar",
"MeshBuilder",
"UATHelper",
"UncontrolledChangelists",
"SubobjectEditor",
"FoliageEdit",
"UniversalObjectLocatorEditor",
"MaterialBaking",
"MovieSceneTracks",
}
);
// Add include directory for Lightmass
PublicIncludePaths.Add("Programs/UnrealLightmass/Public");
PublicIncludePathModuleNames.AddRange(
new string[] {
"AssetRegistry",
"AssetTagsEditor",
"CollectionManager",
"ContentBrowser",
"MeshUtilities",
"KismetCompiler",
"GameplayTasks",
"PropertyEditor",
"ClassViewer",
}
);
if (Target.Platform == UnrealTargetPlatform.Win64)
{
PublicDependencyModuleNames.Add("AudioMixerXAudio2");
PrivateDependencyModuleNames.Add("WindowsPlatformFeatures");
PrivateDependencyModuleNames.Add("GameplayMediaEncoder");
AddEngineThirdPartyPrivateStaticDependencies(Target,
"UEOgg",
"Vorbis",
"VorbisFile",
"DX11Audio"
);
}
AddEngineThirdPartyPrivateStaticDependencies(Target,
"FBX",
"FreeType2"
);
SetupModulePhysicsSupport(Target);
if (Target.bCompileRecast)
{
PrivateDependencyModuleNames.Add("Navmesh");
PublicDefinitions.Add("WITH_RECAST=1");
if (Target.bCompileNavmeshSegmentLinks)
{
PublicDefinitions.Add("WITH_NAVMESH_SEGMENT_LINKS=1");
}
else
{
PublicDefinitions.Add("WITH_NAVMESH_SEGMENT_LINKS=0");
}
if (Target.bCompileNavmeshClusterLinks)
{
PublicDefinitions.Add("WITH_NAVMESH_CLUSTER_LINKS=1");
}
else
{
PublicDefinitions.Add("WITH_NAVMESH_CLUSTER_LINKS=0");
}
}
else
{
PublicDefinitions.Add("WITH_RECAST=0");
PublicDefinitions.Add("WITH_NAVMESH_CLUSTER_LINKS=0");
PublicDefinitions.Add("WITH_NAVMESH_SEGMENT_LINKS=0");
}
if (Target.bWithLiveCoding)
{
PrivateIncludePathModuleNames.Add("LiveCoding");
}
}
}