Files
UnrealEngineUWP/Engine/Source/Programs/Enterprise/Datasmith/DatasmithSDK/DatasmithSDK.Target.cs
JeanLuc Corenthin 33689a5341 Fixed crash on sync on all exporters.
- Root cause: In cl 17646035, the value of bBuildWithEditorOnlyData in the different Target.cs failes was changed from true to false. Doing so implies the use of the wrong BulkData on which the Datasmith mesh serialization is relying on and generates the crash.
  - Solution: Move bBuildWithEditorOnlyData  back to true.
Note the reason why the change was made in the first place has not been found yet.

#jira UE-145285
#rb none
#preflight 6228d36e0d5a90e98ec5719b

[CL 19322125 by JeanLuc Corenthin in ue5-main branch]
2022-03-09 12:23:38 -05:00

102 lines
2.9 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;
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();
}
}
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", 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\"
);
}
}