API/Autodoc/Files/RuStoreAppUpdate.Build.cs.md


Namespaces

Name

Classes

Name
class RuStoreAppUpdate

Source code

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

using UnrealBuildTool;
using System.IO;

public class RuStoreAppUpdate : ModuleRules
{
    public RuStoreAppUpdate(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

        string publicPath = Path.Combine(ModuleDirectory, "Public");
        string privatePath = Path.Combine(ModuleDirectory, "Private");

        PublicIncludePaths.AddRange(
            new string[]
            {
                publicPath,
                Path.Combine(publicPath, "AsyncNodes"),
            }
        );

        PrivateIncludePaths.AddRange(
            new string[]
            {
                privatePath,
                Path.Combine(privatePath, "AsyncNodes"),
            }
        );

        PublicDependencyModuleNames.AddRange(
            new string[]
            {
                "Core",
                "RuStoreCore",
            }
        );
        
        PrivateDependencyModuleNames.AddRange(
            new string[]
            {
                "CoreUObject",
                "Engine",
                "Slate",
                "SlateCore",
            }
        );

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PrivateDependencyModuleNames.AddRange(new string[] { "Launch" });

            string[] uplFiles =
            {
                "RuStoreAppUpdate_Copies_UPL.xml",
                "RuStoreAppUpdate_Gradle_UPL.xml",
            };

            string pluginUplDir = Path.GetFullPath(ModuleDirectory);
            string projectUplDir = GetProjectUplDir(Target);

            foreach (string uplFile in uplFiles)
            {
                string pluginUplPath = Path.GetFullPath(Path.Combine(pluginUplDir, uplFile));
                string projectUplPath = !string.IsNullOrEmpty(projectUplDir) ? Path.GetFullPath(Path.Combine(projectUplDir, uplFile)) : null;
                
                if (!string.IsNullOrEmpty(projectUplPath) && File.Exists(projectUplPath))
                {
                    AdditionalPropertiesForReceipt.Add("AndroidPlugin", projectUplPath);
                }
                else
                {
                    AdditionalPropertiesForReceipt.Add("AndroidPlugin", pluginUplPath);
                }
            }
        }
    }

    private string GetProjectUplDir(ReadOnlyTargetRules Target)
    {
        // Target.ProjectFile can be null for some build scenarios (e.g. building plugin without a .uproject)
        if (Target.ProjectFile == null)
        {
            return null;
        }

        string projectRoot = Target.ProjectFile.Directory.FullName;
        return Path.Combine(projectRoot, "Source", "RuStoreUPL");
    }
}

Назад