2019-12-26 23:01:54 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
using System ;
using System.Collections.Generic ;
using System.Diagnostics ;
using System.Text ;
using System.Text.RegularExpressions ;
using System.IO ;
2020-12-21 23:07:37 -04:00
using EpicGames.Core ;
2021-06-08 19:05:33 -04:00
using UnrealBuildBase ;
2014-03-14 14:13:41 -04:00
namespace UnrealBuildTool
{
2015-09-24 13:47:13 -04:00
/// <summary>
2016-11-23 15:34:07 -05:00
/// Compiler configuration. This controls whether to use define debug macros and other compiler settings. Note that optimization level should be based on the bOptimizeCode variable rather than
/// this setting, so it can be modified on a per-module basis without introducing an incompatibility between object files or PCHs.
2015-09-24 13:47:13 -04:00
/// </summary>
2017-01-30 16:52:08 -05:00
enum CppConfiguration
2014-03-14 14:13:41 -04:00
{
Debug ,
Development ,
Shipping
}
2019-01-04 10:13:55 -05:00
/// <summary>
/// Specifies which language standard to use. This enum should be kept in order, so that toolchains can check whether the requested setting is >= values that they support.
/// </summary>
public enum CppStandardVersion
{
/// <summary>
/// Supports C++14
/// </summary>
Cpp14 ,
/// <summary>
/// Supports C++17
/// </summary>
Cpp17 ,
2020-09-20 15:04:30 -04:00
/// <summary>
/// Supports C++20
/// </summary>
Cpp20 ,
2021-03-24 12:27:44 -04:00
2019-01-04 10:13:55 -05:00
/// <summary>
/// Latest standard supported by the compiler
/// </summary>
Latest ,
2021-03-24 12:27:44 -04:00
/// <summary>
/// Use the default standard version
/// </summary>
2021-03-30 19:01:25 -04:00
Default = Cpp17 ,
2019-01-04 10:13:55 -05:00
}
2015-09-24 13:47:13 -04:00
/// <summary>
/// The optimization level that may be compilation targets for C# files.
/// </summary>
2017-01-30 16:52:08 -05:00
enum CSharpTargetConfiguration
2014-03-14 14:13:41 -04:00
{
Debug ,
Development ,
}
2015-09-24 13:47:13 -04:00
/// <summary>
/// The possible interactions between a precompiled header and a C++ file being compiled.
/// </summary>
2017-01-30 16:52:08 -05:00
enum PrecompiledHeaderAction
2014-03-14 14:13:41 -04:00
{
None ,
Include ,
Create
}
2015-09-24 13:47:13 -04:00
/// <summary>
/// Encapsulates the compilation output of compiling a set of C++ files.
/// </summary>
2017-01-30 16:52:08 -05:00
class CPPOutput
2014-03-14 14:13:41 -04:00
{
public List < FileItem > ObjectFiles = new List < FileItem > ( ) ;
2020-09-20 15:04:30 -04:00
public List < FileItem > CompiledModuleInterfaces = new List < FileItem > ( ) ;
2019-06-10 19:47:29 -04:00
public List < FileItem > GeneratedHeaderFiles = new List < FileItem > ( ) ;
2020-12-20 18:47:42 -04:00
public FileItem ? PrecompiledHeaderFile = null ;
2014-03-14 14:13:41 -04:00
}
2015-09-24 13:47:13 -04:00
/// <summary>
2017-01-30 16:52:08 -05:00
/// Encapsulates the environment that a C++ file is compiled in.
2015-09-24 13:47:13 -04:00
/// </summary>
2017-01-30 16:52:08 -05:00
class CppCompileEnvironment
2014-03-14 14:13:41 -04:00
{
2016-11-23 15:34:07 -05:00
/// <summary>
/// The platform to be compiled/linked for.
/// </summary>
2019-05-03 08:03:23 -04:00
public readonly UnrealTargetPlatform Platform ;
2016-11-23 15:34:07 -05:00
/// <summary>
/// The configuration to be compiled/linked for.
/// </summary>
2017-01-30 16:52:08 -05:00
public readonly CppConfiguration Configuration ;
2016-11-23 15:34:07 -05:00
/// <summary>
/// The architecture that is being compiled/linked (empty string by default)
/// </summary>
2017-01-30 16:52:08 -05:00
public readonly string Architecture ;
2016-11-23 15:34:07 -05:00
2018-12-18 10:21:34 -05:00
/// <summary>
/// Cache of source file metadata
/// </summary>
public readonly SourceFileMetadataCache MetadataCache ;
2018-12-20 17:29:52 -05:00
/// <summary>
/// Templates for shared precompiled headers
/// </summary>
public readonly List < PrecompiledHeaderTemplate > SharedPCHs ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// The name of the header file which is precompiled.
/// </summary>
2020-12-20 18:47:42 -04:00
public FileReference ? PrecompiledHeaderIncludeFilename = null ;
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
/// Whether the compilation should create, use, or do nothing with the precompiled header.
/// </summary>
2014-03-14 14:13:41 -04:00
public PrecompiledHeaderAction PrecompiledHeaderAction = PrecompiledHeaderAction . None ;
2018-12-12 12:54:14 -05:00
/// <summary>
/// Whether artifacts from this compile are shared with other targets. If so, we should not apply any target-wide modifications to the compile environment.
/// </summary>
public bool bUseSharedBuildEnvironment ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// Use run time type information
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bUseRTTI = false ;
2017-12-12 18:32:45 -05:00
/// <summary>
/// Enable inlining.
/// </summary>
public bool bUseInlining = false ;
2019-12-13 23:35:01 -05:00
/// <summary>
/// Whether to compile ISPC files.
/// </summary>
public bool bCompileISPC = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
2020-01-10 11:58:11 -05:00
/// Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used.
/// Note that by enabling this you are changing the minspec for the PC platform, and the resultant executable will crash on machines without AVX support.
2015-09-24 13:47:13 -04:00
/// </summary>
2015-06-29 12:24:33 -04:00
public bool bUseAVX = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// Enable buffer security checks. This should usually be enabled as it prevents severe security risks.
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bEnableBufferSecurityChecks = true ;
2015-09-24 13:47:13 -04:00
/// <summary>
2019-06-20 03:53:43 -04:00
/// If unity builds are enabled this can be used to override if this specific module will build using Unity.
/// This is set using the per module configurations in BuildConfiguration.
2015-09-24 13:47:13 -04:00
/// </summary>
2019-06-20 03:53:43 -04:00
public bool bUseUnity = false ;
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
/// The number of source files in this module before unity build will be activated for that module. If set to
/// anything besides -1, will override the default setting which is controlled by MinGameModuleSourceFilesForUnityBuild
/// </summary>
2015-08-07 13:58:49 -04:00
public int MinSourceFilesForUnityBuildOverride = 0 ;
2015-09-24 13:47:13 -04:00
/// <summary>
2017-01-30 16:52:08 -05:00
/// The minimum number of files that must use a pre-compiled header before it will be created and used.
2015-09-24 13:47:13 -04:00
/// </summary>
2015-08-07 13:58:49 -04:00
public int MinFilesUsingPrecompiledHeaderOverride = 0 ;
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
/// Module uses a #import so must be built locally when compiling with SN-DBS
/// </summary>
2015-07-03 05:23:01 -04:00
public bool bBuildLocallyWithSNDBS = false ;
2020-11-24 18:42:39 -04:00
/// <summary>
/// Whether to retain frame pointers
/// </summary>
2021-01-21 16:22:06 -04:00
public bool bRetainFramePointers = true ;
2020-11-24 18:42:39 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
/// Enable exception handling
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bEnableExceptions = false ;
2017-08-15 16:16:21 -04:00
/// <summary>
/// Enable objective C exception handling
/// </summary>
public bool bEnableObjCExceptions = false ;
2021-04-29 19:32:06 -04:00
/// <summary>
/// How to treat any warnings in the code
/// </summary>
public WarningLevel DefaultWarningLevel = WarningLevel . Warning ;
/// <summary>
/// Whether to warn about deprecated variables
/// </summary>
public WarningLevel DeprecationWarningLevel = WarningLevel . Warning ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// Whether to warn about the use of shadow variables
/// </summary>
2019-10-25 10:39:37 -04:00
public WarningLevel ShadowVariableWarningLevel = WarningLevel . Warning ;
2017-01-30 16:52:08 -05:00
2020-01-17 13:27:48 -05:00
/// <summary>
/// How to treat unsafe implicit type cast warnings (e.g., double->float or int64->int32)
/// </summary>
public WarningLevel UnsafeTypeCastWarningLevel = WarningLevel . Off ;
2016-12-13 11:58:16 -05:00
/// <summary>
/// Whether to warn about the use of undefined identifiers in #if expressions
/// </summary>
2019-03-06 18:15:50 -05:00
public bool bEnableUndefinedIdentifierWarnings = true ;
2015-05-12 08:03:21 -04:00
2017-01-30 16:52:08 -05:00
/// <summary>
/// Whether to treat undefined identifier warnings as errors.
/// </summary>
public bool bUndefinedIdentifierWarningsAsErrors = false ;
2020-10-09 14:25:24 -04:00
/// <summary>
/// Whether to treat all warnings as errors
/// </summary>
public bool bWarningsAsErrors = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
2016-11-23 15:34:07 -05:00
/// True if compiler optimizations should be enabled. This setting is distinct from the configuration (see CPPTargetConfiguration).
2015-09-24 13:47:13 -04:00
/// </summary>
2016-11-23 15:34:07 -05:00
public bool bOptimizeCode = false ;
2014-03-14 14:13:41 -04:00
2017-01-30 16:52:08 -05:00
/// <summary>
/// Whether to optimize for minimal code size
/// </summary>
public bool bOptimizeForSize = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// True if debug info should be created.
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bCreateDebugInfo = true ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// True if we're compiling .cpp files that will go into a library (.lib file)
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bIsBuildingLibrary = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// True if we're compiling a DLL
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bIsBuildingDLL = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// Whether we should compile using the statically-linked CRT. This is not widely supported for the whole engine, but is required for programs that need to run without dependencies.
/// </summary>
2014-09-23 13:55:06 -04:00
public bool bUseStaticCRT = false ;
2017-01-30 16:52:08 -05:00
/// <summary>
/// Whether to use the debug CRT in debug configurations
/// </summary>
public bool bUseDebugCRT = false ;
/// <summary>
/// Whether to omit frame pointers or not. Disabling is useful for e.g. memory profiling on the PC
/// </summary>
public bool bOmitFramePointers = true ;
2016-02-11 09:44:56 -05:00
/// <summary>
/// Whether we should compile with support for OS X 10.9 Mavericks. Used for some tools that we need to be compatible with this version of OS X.
/// </summary>
public bool bEnableOSX109Support = false ;
2017-01-30 16:52:08 -05:00
/// <summary>
/// Whether PDB files should be used for Visual C++ builds.
/// </summary>
public bool bUsePDBFiles = false ;
2019-09-23 15:26:04 -04:00
/// <summary>
/// Whether to just preprocess source files
/// </summary>
public bool bPreprocessOnly = false ;
2017-01-30 16:52:08 -05:00
/// <summary>
/// Whether to support edit and continue. Only works on Microsoft compilers in 32-bit compiles.
/// </summary>
public bool bSupportEditAndContinue ;
/// <summary>
/// Whether to use incremental linking or not.
/// </summary>
public bool bUseIncrementalLinking ;
/// <summary>
/// Whether to allow the use of LTCG (link time code generation)
/// </summary>
public bool bAllowLTCG ;
2017-12-05 21:57:41 -05:00
/// <summary>
/// Whether to enable Profile Guided Optimization (PGO) instrumentation in this build.
/// </summary>
public bool bPGOProfile ;
/// <summary>
/// Whether to optimize this build with Profile Guided Optimization (PGO).
/// </summary>
public bool bPGOOptimize ;
/// <summary>
/// Platform specific directory where PGO profiling data is stored.
/// </summary>
2020-12-20 18:47:42 -04:00
public string? PGODirectory ;
2017-12-05 21:57:41 -05:00
/// <summary>
/// Platform specific filename where PGO profiling data is saved.
/// </summary>
2020-12-20 18:47:42 -04:00
public string? PGOFilenamePrefix ;
2017-12-05 21:57:41 -05:00
2017-01-30 16:52:08 -05:00
/// <summary>
/// Whether to log detailed timing info from the compiler
/// </summary>
public bool bPrintTimingInfo ;
2018-12-16 14:22:47 -05:00
/// <summary>
/// Whether to output a dependencies file along with the output build products
/// </summary>
public bool bGenerateDependenciesFile = true ;
2017-01-30 16:52:08 -05:00
/// <summary>
/// When enabled, allows XGE to compile pre-compiled header files on remote machines. Otherwise, PCHs are always generated locally.
/// </summary>
public bool bAllowRemotelyCompiledPCHs = false ;
2015-09-24 13:47:13 -04:00
/// <summary>
2018-12-18 10:21:34 -05:00
/// Ordered list of include paths for the module
2015-09-24 13:47:13 -04:00
/// </summary>
2018-12-18 10:21:34 -05:00
public HashSet < DirectoryReference > UserIncludePaths ;
/// <summary>
/// The include paths where changes to contained files won't cause dependent C++ source files to
/// be recompiled, unless BuildConfiguration.bCheckSystemHeadersForModification==true.
/// </summary>
public HashSet < DirectoryReference > SystemIncludePaths ;
2020-09-20 15:04:30 -04:00
/// <summary>
/// List of paths to search for compiled module interface (*.ifc) files
/// </summary>
public HashSet < DirectoryReference > ModuleInterfacePaths ;
2018-12-18 10:21:34 -05:00
/// <summary>
/// Whether headers in system paths should be checked for modification when determining outdated actions.
/// </summary>
public bool bCheckSystemHeadersForModification ;
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
2016-11-23 15:34:07 -05:00
/// List of header files to force include
2015-09-24 13:47:13 -04:00
/// </summary>
2018-03-05 08:05:27 -05:00
public List < FileItem > ForceIncludeFiles = new List < FileItem > ( ) ;
2014-03-14 14:13:41 -04:00
2019-06-10 19:47:29 -04:00
/// <summary>
/// List of files that need to be up to date before compile can proceed
/// </summary>
public List < FileItem > AdditionalPrerequisites = new List < FileItem > ( ) ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// The C++ preprocessor definitions to use.
/// </summary>
2014-03-14 14:13:41 -04:00
public List < string > Definitions = new List < string > ( ) ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// Additional arguments to pass to the compiler.
/// </summary>
2014-03-14 14:13:41 -04:00
public string AdditionalArguments = "" ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// A list of additional frameworks whose include paths are needed.
/// </summary>
2014-07-01 11:28:39 -04:00
public List < UEBuildFramework > AdditionalFrameworks = new List < UEBuildFramework > ( ) ;
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
/// The file containing the precompiled header data.
/// </summary>
2020-12-20 18:47:42 -04:00
public FileItem ? PrecompiledHeaderFile = null ;
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
2016-11-23 15:34:07 -05:00
/// Whether or not UHT is being built
2015-09-24 13:47:13 -04:00
/// </summary>
2014-03-14 14:13:41 -04:00
public bool bHackHeaderGenerator ;
2017-12-05 21:57:41 -05:00
/// <summary>
/// Whether to hide symbols by default
/// </summary>
2019-06-07 05:27:42 -04:00
public bool bHideSymbolsByDefault = true ;
2017-12-05 21:57:41 -05:00
2019-01-04 10:13:55 -05:00
/// <summary>
/// Which C++ standard to support. May not be compatible with all platforms.
/// </summary>
public CppStandardVersion CppStandard = CppStandardVersion . Default ;
2021-06-14 11:58:20 -04:00
/// <summary>
/// The amount of the stack usage to report static analysis warnings.
/// </summary>
public int AnalyzeStackSizeWarning = 300000 ;
2022-01-19 15:08:30 -05:00
/// <summary>
/// Enable C++ coroutine support.
/// For MSVC, adds "/await:strict" to the command line. Program should #include <coroutine>
/// For Clang, adds "-fcoroutines-ts" to the command line. Program should #include <experimental/coroutine> (not supported in every clang toolchain)
/// </summary>
public bool bEnableCoroutines = false ;
2022-03-25 16:16:30 -04:00
/// <summary>
/// What version of include order specified by the module rules. Used to determine shared PCH variants.
/// </summary>
public EngineIncludeOrderVersion IncludeOrderVersion = EngineIncludeOrderVersion . Latest ;
2022-03-30 14:42:23 -04:00
/// <summary>
/// Directory where to put crash report files for platforms that support it
/// </summary>
public string? CrashDiagnosticDirectory ;
2015-09-24 13:47:13 -04:00
/// <summary>
/// Default constructor.
/// </summary>
2019-05-03 08:03:23 -04:00
public CppCompileEnvironment ( UnrealTargetPlatform Platform , CppConfiguration Configuration , string Architecture , SourceFileMetadataCache MetadataCache )
2016-11-23 15:34:07 -05:00
{
2017-01-30 16:52:08 -05:00
this . Platform = Platform ;
this . Configuration = Configuration ;
this . Architecture = Architecture ;
2018-12-18 10:21:34 -05:00
this . MetadataCache = MetadataCache ;
2018-12-20 17:29:52 -05:00
this . SharedPCHs = new List < PrecompiledHeaderTemplate > ( ) ;
2018-12-18 10:21:34 -05:00
this . UserIncludePaths = new HashSet < DirectoryReference > ( ) ;
this . SystemIncludePaths = new HashSet < DirectoryReference > ( ) ;
2020-09-20 15:04:30 -04:00
this . ModuleInterfacePaths = new HashSet < DirectoryReference > ( ) ;
2016-11-23 15:34:07 -05:00
}
2014-03-14 14:13:41 -04:00
2015-09-24 13:47:13 -04:00
/// <summary>
/// Copy constructor.
/// </summary>
2017-01-30 16:52:08 -05:00
/// <param name="Other">Environment to copy settings from</param>
public CppCompileEnvironment ( CppCompileEnvironment Other )
2014-03-14 14:13:41 -04:00
{
2017-01-30 16:52:08 -05:00
Platform = Other . Platform ;
Configuration = Other . Configuration ;
Architecture = Other . Architecture ;
2018-12-18 10:21:34 -05:00
MetadataCache = Other . MetadataCache ;
2018-12-20 17:29:52 -05:00
SharedPCHs = Other . SharedPCHs ;
2017-01-30 16:52:08 -05:00
PrecompiledHeaderIncludeFilename = Other . PrecompiledHeaderIncludeFilename ;
PrecompiledHeaderAction = Other . PrecompiledHeaderAction ;
2018-12-12 12:54:14 -05:00
bUseSharedBuildEnvironment = Other . bUseSharedBuildEnvironment ;
2017-01-30 16:52:08 -05:00
bUseRTTI = Other . bUseRTTI ;
2017-12-12 18:32:45 -05:00
bUseInlining = Other . bUseInlining ;
2019-12-13 23:35:01 -05:00
bCompileISPC = Other . bCompileISPC ;
2017-01-30 16:52:08 -05:00
bUseAVX = Other . bUseAVX ;
2019-06-20 03:53:43 -04:00
bUseUnity = Other . bUseUnity ;
2017-01-30 16:52:08 -05:00
MinSourceFilesForUnityBuildOverride = Other . MinSourceFilesForUnityBuildOverride ;
MinFilesUsingPrecompiledHeaderOverride = Other . MinFilesUsingPrecompiledHeaderOverride ;
bBuildLocallyWithSNDBS = Other . bBuildLocallyWithSNDBS ;
2020-11-24 18:42:39 -04:00
bRetainFramePointers = Other . bRetainFramePointers ;
2017-01-30 16:52:08 -05:00
bEnableExceptions = Other . bEnableExceptions ;
2017-08-15 16:16:21 -04:00
bEnableObjCExceptions = Other . bEnableObjCExceptions ;
2021-04-29 19:32:06 -04:00
DefaultWarningLevel = Other . DefaultWarningLevel ;
DeprecationWarningLevel = Other . DeprecationWarningLevel ;
2019-10-25 10:39:37 -04:00
ShadowVariableWarningLevel = Other . ShadowVariableWarningLevel ;
2020-01-17 13:27:48 -05:00
UnsafeTypeCastWarningLevel = Other . UnsafeTypeCastWarningLevel ;
2017-01-30 16:52:08 -05:00
bUndefinedIdentifierWarningsAsErrors = Other . bUndefinedIdentifierWarningsAsErrors ;
bEnableUndefinedIdentifierWarnings = Other . bEnableUndefinedIdentifierWarnings ;
2020-10-09 14:25:24 -04:00
bWarningsAsErrors = Other . bWarningsAsErrors ;
2017-01-30 16:52:08 -05:00
bOptimizeCode = Other . bOptimizeCode ;
bOptimizeForSize = Other . bOptimizeForSize ;
bCreateDebugInfo = Other . bCreateDebugInfo ;
bIsBuildingLibrary = Other . bIsBuildingLibrary ;
bIsBuildingDLL = Other . bIsBuildingDLL ;
bUseStaticCRT = Other . bUseStaticCRT ;
bUseDebugCRT = Other . bUseDebugCRT ;
bOmitFramePointers = Other . bOmitFramePointers ;
bEnableOSX109Support = Other . bEnableOSX109Support ;
bUsePDBFiles = Other . bUsePDBFiles ;
2019-09-23 15:26:04 -04:00
bPreprocessOnly = Other . bPreprocessOnly ;
2017-01-30 16:52:08 -05:00
bSupportEditAndContinue = Other . bSupportEditAndContinue ;
bUseIncrementalLinking = Other . bUseIncrementalLinking ;
bAllowLTCG = Other . bAllowLTCG ;
2017-12-05 21:57:41 -05:00
bPGOOptimize = Other . bPGOOptimize ;
bPGOProfile = Other . bPGOProfile ;
PGOFilenamePrefix = Other . PGOFilenamePrefix ;
PGODirectory = Other . PGODirectory ;
2017-01-30 16:52:08 -05:00
bPrintTimingInfo = Other . bPrintTimingInfo ;
2018-12-16 14:22:47 -05:00
bGenerateDependenciesFile = Other . bGenerateDependenciesFile ;
2017-01-30 16:52:08 -05:00
bAllowRemotelyCompiledPCHs = Other . bAllowRemotelyCompiledPCHs ;
2018-12-18 10:21:34 -05:00
UserIncludePaths = new HashSet < DirectoryReference > ( Other . UserIncludePaths ) ;
SystemIncludePaths = new HashSet < DirectoryReference > ( Other . SystemIncludePaths ) ;
2020-09-20 15:04:30 -04:00
ModuleInterfacePaths = new HashSet < DirectoryReference > ( Other . ModuleInterfacePaths ) ;
2018-12-18 10:21:34 -05:00
bCheckSystemHeadersForModification = Other . bCheckSystemHeadersForModification ;
2017-01-30 16:52:08 -05:00
ForceIncludeFiles . AddRange ( Other . ForceIncludeFiles ) ;
2019-06-10 19:47:29 -04:00
AdditionalPrerequisites . AddRange ( Other . AdditionalPrerequisites ) ;
2017-01-30 16:52:08 -05:00
Definitions . AddRange ( Other . Definitions ) ;
AdditionalArguments = Other . AdditionalArguments ;
AdditionalFrameworks . AddRange ( Other . AdditionalFrameworks ) ;
PrecompiledHeaderFile = Other . PrecompiledHeaderFile ;
bHackHeaderGenerator = Other . bHackHeaderGenerator ;
2017-12-05 21:57:41 -05:00
bHideSymbolsByDefault = Other . bHideSymbolsByDefault ;
2019-01-04 10:13:55 -05:00
CppStandard = Other . CppStandard ;
2022-01-19 15:08:30 -05:00
bEnableCoroutines = Other . bEnableCoroutines ;
2022-03-25 16:16:30 -04:00
IncludeOrderVersion = Other . IncludeOrderVersion ;
2022-03-30 14:42:23 -04:00
CrashDiagnosticDirectory = Other . CrashDiagnosticDirectory ;
2014-03-14 14:13:41 -04:00
}
2017-01-30 16:52:08 -05:00
}
2014-03-14 14:13:41 -04:00
}