Files
FLESH/Source/FLESH/FLESH.Build.cs
2025-04-21 08:17:52 +08:00

116 lines
3.2 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.IO;
using System;
public class FLESH : ModuleRules
{
public FLESH(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
// Check if GeometryScripting plugin is available
bool bGeometryScriptingAvailable = false;
string GeometryScriptingPath = Path.Combine(EngineDirectory, "Plugins", "Experimental", "GeometryScripting");
string GeometryProcessingPath = Path.Combine(EngineDirectory, "Plugins", "Runtime", "GeometryProcessing");
if (Directory.Exists(GeometryScriptingPath) && Directory.Exists(GeometryProcessingPath))
{
bGeometryScriptingAvailable = true;
PublicDefinitions.Add("WITH_GEOMETRY_SCRIPTING=1");
Console.WriteLine("FLESH: GeometryScripting plugin is available, enabling advanced boolean cutting feature");
}
else
{
PublicDefinitions.Add("WITH_GEOMETRY_SCRIPTING=0");
Console.WriteLine("FLESH: GeometryScripting plugin is not available, disabling advanced boolean cutting feature");
}
// Add include paths
PublicIncludePaths.AddRange(
new string[] {
// ... add public include paths required here ...
}
);
// If GeometryScripting is available, add its include paths
if (bGeometryScriptingAvailable)
{
PublicIncludePaths.AddRange(
new string[] {
"$(EngineDir)/Plugins/Experimental/GeometryScripting/Source/GeometryScriptingCore/Public",
"$(EngineDir)/Plugins/Experimental/GeometryScripting/Source/GeometryScriptingEditor/Public",
"$(EngineDir)/Plugins/Runtime/GeometryProcessing/Source/GeometryAlgorithms/Public",
"$(EngineDir)/Plugins/Runtime/GeometryProcessing/Source/GeometryCore/Public",
"$(EngineDir)/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public"
}
);
}
PrivateIncludePaths.AddRange(
new string[] {
// ... add other private include paths required here ...
}
);
// Add basic module dependencies
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"CoreUObject",
"Engine",
"InputCore",
"Niagara",
"ProceduralMeshComponent",
"PhysicsCore",
"ChaosCloth",
"ChaosNiagara",
"PhysicsControl",
"MeshDescription",
"StaticMeshDescription",
// ... add other public dependencies that you statically link with here ...
}
);
// If GeometryScripting is available, add its module dependencies
if (bGeometryScriptingAvailable)
{
PublicDependencyModuleNames.AddRange(
new string[]
{
"GeometryCore",
"GeometryFramework",
"GeometryScriptingCore",
"GeometryScriptingEditor",
"DynamicMesh",
"GeometryAlgorithms",
"ModelingComponents",
"ModelingOperators",
"MeshConversion",
"MeshModelingToolsEditorOnly"
}
);
}
PrivateDependencyModuleNames.AddRange(
new string[]
{
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
// ... add private dependencies that you statically link with here ...
}
);
DynamicallyLoadedModuleNames.AddRange(
new string[]
{
// ... add any modules that your module loads dynamically here ...
}
);
}
}