Commit Graph

43 Commits

Author SHA1 Message Date
jeanfrancois dube
a01371e00e UnrealBuildTool: added CppCompileEnvironment.AnalyzeStackSizeWarning to replace hardcoded value of 80K (now defaults to 300K).
Our stack size defaults to 4.7M on Windows, so allowing functions to use more stack space in favor of going through the heap.

#rb steve.robb

#ROBOMERGE-SOURCE: CL 16653849 via CL 16659295
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v834-16658389)

[CL 16659422 by jeanfrancois dube in ue5-release-engine-test branch]
2021-06-14 12:02:39 -04:00
jonathan adamczewski
a865a21fb0 Move FileItem and DirectoryItem into BuildUtilities
#jira none

#ROBOMERGE-SOURCE: CL 16596289 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16596323 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-08 19:06:03 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
halfdan ingvarsson
861ba82878 Enable C++17 support across the board in UE5.
#jira none
#rb ben.marsh, brandon.schaefer, chris.babcock, david.harvey, jules.blok, mark.lintott, michael.sartain, nuno.leiria, rolando.caloca, stefan.boberg, steve.smith, will.damon

[CL 15869195 by halfdan ingvarsson in ue5-main branch]
2021-03-30 19:01:25 -04:00
halfdan ingvarsson
a02942648e Make it somewhat easier to bump C++ versions:
* Re-defined CppStandardVersion.Default in terms of existing enums and removed it from maps and switches etc.
* Added C++20 flags for all the recognized compilers.

#jira none
#rb ben.marsh
#rnx

[CL 15801501 by halfdan ingvarsson in ue5-main branch]
2021-03-24 12:27:44 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Ben Marsh
6f927647b1 Changing C# code over to using EpicGames.Core over DotNETCommon.
#rb none
#rnx

[CL 14962096 by Ben Marsh in ue5-main branch]
2020-12-21 23:07:37 -04:00
Ben Marsh
68f5abeb09 UBT: Convert UnrealBuildTool to use nullable references.
#rb none
#rnx

[CL 14960546 by Ben Marsh in ue5-main branch]
2020-12-20 18:47:42 -04:00
Ben Marsh
96c997d826 UBT: Move logic for building response files and generating inputs and outputs for MSVC compilation into the VCCompileAction class.
#rb none
#rnx

[CL 14812826 by Ben Marsh in ue5-main branch]
2020-11-25 10:19:33 -04:00
Marc Audy
a7f9391231 Merge UE5/Release-Engine-Staging @ 14811410 to UE5/Main
This represents UE4/Main @ 14768117

For ReleaseObjectVersion.h
#lockdown Marcus.Wassmer

[CL 14811440 by Marc Audy in ue5-main branch]
2020-11-24 18:42:39 -04:00
Ben Marsh
598149c0c8 Add an option to force warnings as errors, even for deprecations. Need to enable in CIS to force determinism.
#rb none

[CL 14463055 by Ben Marsh in ue5-main branch]
2020-10-09 14:25:24 -04:00
Ben Marsh
57d9b51398 Initial support for C++20 modules.
Requires Visual Studio 2019 15.8 Preview 3, and targets to specify bEnableCppModules = true. Unsupported on other compilers.

Notes:
- Module interfaces need to be placed in .IXX files.
- Module/module dependencies are determined by a post-makefile/pre-build scan of all module interfaces using the compiler, and cause additional prerequisites to be inserted into the dependency graph before execution.
- Available module IFC search paths use normal UE module dependency rules.
- Header units are not currently supported.
- Regular C++ files cannot currently implement functions defined in module interfaces, due to the macros force included by UBT. These macros need to be placed in the global module fragment, but declaring a global module fragment must be done from the translation unit being compiled (making force-included headers invalid).

#rb none

[CL 14354539 by Ben Marsh in ue5-main branch]
2020-09-20 15:04:30 -04:00
PJ Kack
ef8a7b620e AUTO MERGE
Merging //UE4/Main @ 11112898 to //UE4/Dev-Core (dev-core-l0178)

#rb none

(ushell-p4-mergedown)

[CL 11113593 by PJ Kack in Dev-Core branch]
2020-01-26 11:35:42 -05:00
michael noland
d7901307b8 Adding preliminary support for enabling the warning C4244 ('argument': conversion from 'type1' to 'type2', possible loss of data) on a module by module basis to help catch int64->int32 and double->float / float<->int confusion
- UnsafeTypeCastWarningLevel can be set to WarningLevel.Warning or WarningLevel.Error in ModuleName.Build.cs (off by default)
- Currently only supported on MS compilers (Clang ignores the setting for now)
#jira UE-86949
#rb ben.marsh


#ROBOMERGE-SOURCE: CL 11050203 via CL 11050250 via CL 11050262
#ROBOMERGE-BOT: (v637-11041722)

[CL 11050266 by michael noland in Main branch]
2020-01-17 13:27:48 -05:00
Matt Peters
505284e41e Allow TruncToFloat intrinsics used on platforms that support them.
Add SSE and AVX defines to allow specifying availability on PC, MAC, and Linux.
SSE and AVX defines have ALWAYS_HAS and MAYBE_HAS variants to distinguish between available to compile and available to run without the need to check cpuid.
Add templated base classes TUnrealPlatformMathSSEBase and TUnrealPlatformMathSSE4Base to remove the boilerplate overrides added by each of the platformmaths that use the sse overrides.
#rb Steve.Robb
#rn Minor

[CL 10942197 by Matt Peters in Dev-Core branch]
2020-01-10 11:58:11 -05:00
Ryan Durand
9ef3748747 Updating copyrights for Engine Programs.
#rnx
#rb none
#jira none

#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869242 in //Fortnite/Release-12.00/... via CL 10869536
#ROBOMERGE-BOT: FORTNITE (Main -> Dev-EngineMerge) (v613-10869866)

[CL 10870955 by Ryan Durand in Main branch]
2019-12-26 23:01:54 -05:00
michael lentine
f302c5d5fc Add cross platform ISPC support from Dev-Anim to accelerate Chaos computations.
#rb Ben.Marsh


#ROBOMERGE-OWNER: michael.lentine
#ROBOMERGE-AUTHOR: michael.lentine
#ROBOMERGE-SOURCE: CL 10727300 via CL 10727303 via CL 10727314 via CL 10727316
#ROBOMERGE-BOT: (v610-10636431)

[CL 10727317 by michael lentine in Main branch]
2019-12-13 23:35:01 -05:00
ben marsh
9170b5f44a Enable shadow variable warnings as errors by default for projects that are using the latest UBT build settings. Allow setting the warning/error level on a per-module and per-target basis.
The engine will always be built with it as an error.

#rb none
[FYI] Marc.Audy
#jira none

#ROBOMERGE-SOURCE: CL 9839163 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)

[CL 9839167 by ben marsh in Main branch]
2019-10-25 10:39:37 -04:00
Ben Marsh
44f9817f27 UBT: Add a -preprocess argument, which will just preprocess the source code rather than compile it. Can be used in conjunction with -SingleFile=... to preprocess a single source file.
#rb none

[CL 8983800 by Ben Marsh in Main branch]
2019-09-23 15:26:04 -04:00
Joakim Lindqvist
c838e09d2f Added ability to override Unity and Optimization per module in BuildConfiguration. This should eliminate most needs to disable unity builds in Build.cs (as disabling it for local iteration times was the primary argument for it).
Thus we renamed bFasterWithoutUnity to bUseUnity (note the inversion of the statement) which is what you should use if a module does not support building in Unity mode.

#jira UE-73054
#rb ben.marsh

[CL 7099374 by Joakim Lindqvist in Dev-Build branch]
2019-06-20 03:53:43 -04:00
Ben Marsh
cfe09c649f Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none
#rnx

[CL 6922670 by Ben Marsh in Dev-Build branch]
2019-06-10 19:47:29 -04:00
chris gagnon
72ba51c5bd Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.23 From CL 6837861
#rb none


#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: chris.gagnon
#ROBOMERGE-SOURCE: CL 6838042 in //UE4/Main/...
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build) (v366-6836689)

[CL 6874679 by chris gagnon in Dev-Build branch]
2019-06-07 05:27:42 -04:00
Josh Adams
1e4b186150 - Big update to platforms: PlatformExtensions
- This allows for Confidential platforms to exist outside of the engine, and insert themselves in as needed
- Directory structure is, where .... mirrors the directory structure for Engine and projects
     - /Platforms/XXX/....
- Moving to more data driven approach for ShaderPlatforms and PlatformInfo, where they can be read from DataDrivenPlatformInfo.ini files that live in the platform config folders
- Removed platform mentions from UBT, by way of changing some enums to partial classes with static members (see UnrealTargetPlatform)
- Various other UBT/UAT modifications to allow for looking in other locations for files
- THIS IS NOT A COMPLETE AND FINAL SOLUTION. WE WILL CONTINUE WORK IN DEV-BUILD BEFORE ITS READY FOR PRIMETIME
#rb ben.marsh

[CL 6271418 by Josh Adams in Dev-Build branch]
2019-05-03 08:03:23 -04:00
Ryan Durand
534e68ec2c UBT: Implementing the recommended code fixes from Ben for the compile timing code.
#rb Ben.Marsh

[CL 6013626 by Ryan Durand in Dev-Build branch]
2019-04-19 11:26:11 -04:00
Ryan Durand
27e5e084dc UBT: Adding support for grabbing and parsing compile timing data for VCToolChain and aggregate it.
#rb none

[CL 5992181 by Ryan Durand in Dev-Build branch]
2019-04-18 15:07:10 -04:00