Files
UnrealEngineUWP/Engine/Source/Developer/Windows/LiveCodingServer/LiveCodingServer.Build.cs
Ben Marsh 7ad04edd54 Live Coding: Fix crashes when patching adaptive non-unity files in game modules containing static global variables.
Live++ reads object files at startup for game modules, and assigns unique ids to each compiland (used to disambiguate static variables). When compiling the patch, these compilands are modified to reference a unique id for the unity blob, causing the variables to be reconstructed.

Solution is to generate a JSON file to each output directory containing object files containing the mapping, and to use that to assign compiland ids at startup.

#rb none
#jira UE-74036

[CL 6455253 by Ben Marsh in 4.22 branch]
2019-05-14 18:11:40 -04:00

39 lines
1.3 KiB
C#

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.IO;
public class LiveCodingServer : ModuleRules
{
public LiveCodingServer(ReadOnlyTargetRules Target) : base(Target)
{
PrivateDependencyModuleNames.Add("Core");
PrivateDependencyModuleNames.Add("Json");
PrivateDependencyModuleNames.Add("LiveCoding");
AddEngineThirdPartyPrivateStaticDependencies(Target, "Distorm");
if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
{
PrivateIncludePaths.Add("Developer/Windows/LiveCoding/Private");
PrivateIncludePaths.Add("Developer/Windows/LiveCoding/Private/External");
string DiaSdkDir = Target.WindowsPlatform.DiaSdkDir;
if(DiaSdkDir == null)
{
throw new System.Exception("Unable to find DIA SDK directory");
}
PrivateIncludePaths.Add(Path.Combine(DiaSdkDir, "include"));
PublicAdditionalLibraries.Add(Path.Combine(DiaSdkDir, "lib", "amd64", "diaguids.lib"));
RuntimeDependencies.Add("$(TargetOutputDir)/msdia140.dll", Path.Combine(DiaSdkDir, "bin", "amd64", "msdia140.dll"));
}
// Allow precompiling when generating project files so we can get intellisense
if(!Target.bGenerateProjectFiles)
{
PrecompileForTargets = PrecompileTargetsType.None;
}
}
}