Files
UnrealEngineUWP/Engine/Source/Developer/DeveloperToolSettings/Classes/Settings/PlatformsMenuSettings.h
josh adams 263cc27ae0 - Moved per-user-facing in ProjectPackagingSettings into a new class, UPlaformsMenuSettings, so that we don't sometimes write to DefaultGame.ini and sometimes Saved/Game.ini for the same class, which can cause issues where the editor has one value that doesn't match a target platform
- StagingDirectory, which was the user's location to store archived builds, not the actual StagingDirectory, is no longer exposed in settings
#rb david.harvey,zack.neyland
#preflight 6421ed2f803cb466e80d0ad4
#jira UE-176847

[CL 24811601 by josh adams in ue5-main branch]
2023-03-27 18:49:39 -04:00

61 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#include "ProjectPackagingSettings.h"
#include "PlatformsMenuSettings.generated.h"
UCLASS(config=Game)
class DEVELOPERTOOLSETTINGS_API UPlatformsMenuSettings
: public UObject
{
GENERATED_UCLASS_BODY()
/** The directory to which the packaged project will be copied. */
UPROPERTY(config, EditAnywhere, Category=Project)
FDirectoryPath StagingDirectory;
/** Name of the target to use for LaunchOn (only Game/Client targets) */
UPROPERTY(config)
FString LaunchOnTarget;
/** Gets the current launch on target, checking that it's valid, and the default build target if it is not */
const FTargetInfo* GetLaunchOnTargetInfo() const;
/**
* Get and set the per-platform build config and targetplatform settings for the Turnkey/Launch on menu
*/
EProjectPackagingBuildConfigurations GetBuildConfigurationForPlatform(FName PlatformName) const;
void SetBuildConfigurationForPlatform(FName PlatformName, EProjectPackagingBuildConfigurations Configuration);
FName GetTargetFlavorForPlatform(FName PlatformName) const;
void SetTargetFlavorForPlatform(FName PlatformName, FName TargetFlavorName);
FString GetBuildTargetForPlatform(FName PlatformName) const;
void SetBuildTargetForPlatform(FName PlatformName, FString BuildTargetName);
const FTargetInfo* GetBuildTargetInfoForPlatform(FName PlatformName, bool& bOutIsProjectTarget) const;
private:
/** Per platform build configuration */
UPROPERTY(config)
TMap<FName, EProjectPackagingBuildConfigurations> PerPlatformBuildConfig;
/** Per platform flavor cooking target */
UPROPERTY(config)
TMap<FName, FName> PerPlatformTargetFlavorName;
/** Per platform build target */
UPROPERTY(config, EditAnywhere, Category=Project)
TMap<FName, FString> PerPlatformBuildTarget;
};