You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- The MacToolChain will emit dSYMs and strip executables when the UBT configuration enables bGeneratedSYMFile, just like iOS. - Symbol stripping requires generating dSYMs to prevent creation of non-debuggable builds whose crash reports would be unresolvable. - To avoid a dependency on the Private framework CoreSymbolication all symbols from that framework are loaded dynamically & can only be used within programs, not the game or the editor, as CoreSymbolication is incompatible with non-ANSI malloc implementations. - Added an initial platform-agnostic API for querying debug symbol info, including a generic database format that can be queried on otherwise incompatible platforms. - Added UnrealAtoS that emulates Apple's atos to resolve symbols using the generic database or the platform API (CoreSymbolication on OS X) which on OS X is used by the editor to gather symbol info for CodeView. - Added DSymExporter which will export Apple debug symbol data from Mach-O binaries, including the payload within a .dSYM bundle, to the generic format so that the crash report server may one day read the data without needing a Mac to symbolicate reports. - Initial SymbolDebugger & MinidumpDiagnostics support on OS X. #codereview michael.trepka, Jaroslaw.Surowiec, lee.clark, peter.sauerbrei [CL 2466299 by Mark Satterthwaite in Main branch]
69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
|
|
using UnrealBuildTool;
|
|
using System.Collections.Generic;
|
|
|
|
public class SymbolDebuggerTarget : TargetRules
|
|
{
|
|
public SymbolDebuggerTarget(TargetInfo Target)
|
|
{
|
|
Type = TargetType.Program;
|
|
}
|
|
|
|
//
|
|
// TargetRules interface.
|
|
//
|
|
public override bool GetSupportedPlatforms(ref List<UnrealTargetPlatform> OutPlatforms)
|
|
{
|
|
OutPlatforms.Add(UnrealTargetPlatform.Win64);
|
|
OutPlatforms.Add(UnrealTargetPlatform.Mac);
|
|
return true;
|
|
}
|
|
|
|
public override void SetupBinaries(
|
|
TargetInfo Target,
|
|
ref List<UEBuildBinaryConfiguration> OutBuildBinaryConfigurations,
|
|
ref List<string> OutExtraModuleNames
|
|
)
|
|
{
|
|
OutBuildBinaryConfigurations.Add(
|
|
new UEBuildBinaryConfiguration( InType: UEBuildBinaryType.Executable,
|
|
InModuleNames: new List<string>() { "SymbolDebugger" })
|
|
);
|
|
|
|
OutExtraModuleNames.Add("EditorStyle");
|
|
}
|
|
|
|
public override bool ShouldCompileMonolithic(UnrealTargetPlatform InPlatform, UnrealTargetConfiguration InConfiguration)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public override void SetupGlobalEnvironment(
|
|
TargetInfo Target,
|
|
ref LinkEnvironmentConfiguration OutLinkEnvironmentConfiguration,
|
|
ref CPPEnvironmentConfiguration OutCPPEnvironmentConfiguration
|
|
)
|
|
{
|
|
OutCPPEnvironmentConfiguration.Definitions.Add("WITH_DATABASE_SUPPORT=1");
|
|
|
|
UEBuildConfiguration.bCompileLeanAndMeanUE = true;
|
|
|
|
// Don't need editor
|
|
UEBuildConfiguration.bBuildEditor = false;
|
|
|
|
// SymbolDebugger doesn't ever compile with the engine linked in
|
|
UEBuildConfiguration.bCompileAgainstEngine = false;
|
|
UEBuildConfiguration.bCompileAgainstCoreUObject = true;
|
|
|
|
UEBuildConfiguration.bIncludeADO = true;
|
|
|
|
// SymbolDebugger.exe has no exports, so no need to verify that a .lib and .exp file was emitted by
|
|
// the linker.
|
|
OutLinkEnvironmentConfiguration.bHasExports = false;
|
|
|
|
// Do NOT produce additional console app exe
|
|
OutLinkEnvironmentConfiguration.bBuildAdditionalConsoleApplication = false;
|
|
}
|
|
}
|