// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;

public class VR_CAVE : ModuleRules
{
	public VR_CAVE(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
        bUsePrecompiled = true;
        // 添加这一行禁用 IWYU 检查
        bEnforceIWYU = false;
        bEnableExceptions = true;
        RuntimeDependencies.Add("$(PluginDir)/Content/Datas/...", StagedFileType.NonUFS);
        PublicIncludePaths.AddRange(
			new string[] {
				// ... add public include paths required here ...
			}
			);


        PrivateIncludePaths.AddRange(
            new string[] {
        // Renderer私有路径 - 用于SceneViewExtension (UE 5.5及更早)
        System.IO.Path.Combine(EngineDirectory, "Source/Runtime/Renderer/Private"),
        // UE 5.6+ 新增的 Internal 路径
        System.IO.Path.Combine(GetModuleDirectory("Renderer"), "Internal"),
            }
        );


        PublicDependencyModuleNames.AddRange(
			new string[]
			{
				"Core",
				"CoreUObject",
				"Engine",
                "InputCore",
				"RenderCore",
				"Projects",
				"RHI",
				"Renderer",
                "DeveloperSettings"
                //"ShaderCore",
				// ... add other public dependencies that you statically link with here ...
			}
			);
			
		
		PrivateDependencyModuleNames.AddRange(
			new string[]
			{
				"CoreUObject",
				"Engine",
				"Slate",
				"SlateCore",
                "Projects",
                "AssetRegistry",
				// ... add private dependencies that you statically link with here ...	
			}
			);

        // 只在编辑器模式下包含这些依赖
        if (Target.bBuildEditor)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[]
                {
                    "UnrealEd",
                    "ContentBrowser",
                    "PropertyEditor",
                    "ToolWidgets",
                    "DetailCustomizations",
                    "EditorSubsystem",
                    "LevelEditor",
                    "MaterialBaking",
                    "MovieSceneCapture"
                }
            );
        }

        DynamicallyLoadedModuleNames.AddRange(
			new string[]
			{
				// ... add any modules that your module loads dynamically here ...
			}
			);
	}
}
