Files
UnrealEngineUWP/Engine/Source/Programs/Enterprise/Datasmith/DatasmithSDK/DatasmithSDK.Target.cs
Johan Duparc f56b84ef72 DatasmithSDK: Enable directlink for Shipping target configuration
#rb JeanLuc.Corenthin
#preflight none

[CL 20164415 by Johan Duparc in ue5-main branch]
2022-05-12 10:43:57 -04:00

111 lines
3.3 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class DatasmithSDKTarget : TargetRules
{
public DatasmithSDKTarget(TargetInfo Target)
: base(Target)
{
Type = TargetType.Program;
IncludeOrderVersion = EngineIncludeOrderVersion.Latest;
DefaultBuildSettings = BuildSettingsVersion.Latest;
SolutionDirectory = "Programs/Datasmith";
bBuildInSolutionByDefault = false;
LaunchModuleName = "DatasmithSDK";
ExeBinariesSubFolder = "DatasmithSDK";
ExtraModuleNames.AddRange( new string[] { "DatasmithCore", "DatasmithExporter" } );
LinkType = TargetLinkType.Monolithic;
bShouldCompileAsDLL = true;
bBuildDeveloperTools = false;
bUseMallocProfiler = false;
bBuildWithEditorOnlyData = true;
bCompileAgainstEngine = false;
bCompileAgainstCoreUObject = true;
bCompileICU = false;
bUsesSlate = false;
bDisableDebugInfo = false;
bUsePDBFiles = true;
bHasExports = true;
bIsBuildingConsoleApplication = true;
if (Platform == UnrealTargetPlatform.Win64)
{
AddWindowsPostBuildSteps();
}
// Enable UDP in shipping (used by DirectLink)
if (BuildEnvironment == TargetBuildEnvironment.Unique)
{
GlobalDefinitions.Add("ALLOW_UDP_MESSAGING_SHIPPING=1"); // bypasses the 'if shipping' of UdpMessagingModule.cpp
GlobalDefinitions.Add("PLATFORM_SUPPORTS_MESSAGEBUS=1"); // required to enable the default MessageBus in MessagingModule.cpp
}
}
public void PostBuildCopy(string SrcPath, string DestPath)
{
PostBuildSteps.Add(string.Format("echo Copying {0} to {1}", SrcPath, DestPath));
PostBuildSteps.Add(string.Format("xcopy \"{0}\" \"{1}\" /R /Y /S /Q", SrcPath, DestPath));
}
public void AddWindowsPostBuildSteps()
{
// Copy the documentation
PostBuildCopy(
@"$(EngineDir)\Source\Programs\Enterprise\Datasmith\DatasmithSDK\Documentation\*.*",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Documentation\"
);
// Package our public headers
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\Datasmith\DatasmithCore\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Public\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\Datasmith\DirectLink\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Public\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Developer\Datasmith\DatasmithExporter\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Public\"
);
// Other headers we depend on, but that are not part of our public API:
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\TraceLog\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Private\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\TraceLog\Public\*.inl",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Private\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\Messaging\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Private\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\Core\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Private\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\Core\Public\*.inl",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Private\"
);
PostBuildCopy(
@"$(EngineDir)\Source\Runtime\CoreUObject\Public\*.h",
@"$(EngineDir)\Binaries\$(TargetPlatform)\DatasmithSDK\Private\"
);
}
}