// Copyright Codemongous LLC. All Rights Reserved.

using UnrealBuildTool;

public class Sourcify : ModuleRules
{
	public Sourcify(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
        CppStandard = CppStandardVersion.Cpp20;

        // Enable RTTI because it is required by SourcifyCoreUEWrapper's interfaces
        bUseRTTI = true;

        PublicIncludePaths.AddRange(
			new string[] {
				// ... add public include paths required here ...
			}
			);
				
		
		PrivateIncludePaths.AddRange(
			new string[] {
				// ... add other private include paths required here ...
			}
			);
			
		
		PublicDependencyModuleNames.AddRange(
			new string[]
			{
				"Core"
				// ... add other public dependencies that you statically link with here ...
			}
			);
		
		PrivateDependencyModuleNames.AddRange(
			new string[]
			{
                "ApplicationCore",
				"AssetRegistry",
                "AssetTools",
				"BlueprintEditorLibrary",
                "BlueprintGraph",
                "CoreUObject",
				"DesktopWidgets",
				"DeveloperSettings",
                "EditorFramework",
                "EditorStyle",
                "EditorWidgets",
                "Engine",
                "GraphEditor",
				"GameProjectGeneration",
				"HTTP",
                "InputCore",
                "KismetCompiler",
				"LiveCoding",
				"MessageLog",
                "Projects",
                "PropertyEditor",
                "Slate",
                "SlateCore",
				"SourceControl",
                "SourcifyCore",
                "SourcifyCoreUEWrapper",
                "ToolMenus",
                "ToolWidgets",
                "TreeMap",
                "UnrealEd",
                "WorkspaceMenuStructure"
            }
            );

		bool DevMode = false;
		if (DevMode)
        {
            PrivateDependencyModuleNames.AddRange(
            new string[]
            {
                "SourcifyDevOnly"
            }
            );
        }
		else
		{
        }

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