Commit Graph

304 Commits

Author SHA1 Message Date
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
halfdan ingvarsson
0d426dde64 UBT: Added a new static analyzer type, 'Clang', which runs clang's static analyzer, regardless of the project. Also added a new option, StaticAnalyzerOutputType (-StaticAnalyzerOutputType on the command line) which takes either Text or Html as values, Text being default (and only option for non-clang analysers). Text simply writes out the analysis to stdout, whereas Html will write out an HTML page in the object output folder, that contains a navigable version of the code, including the analysis.
#ROBOMERGE-SOURCE: CL 17415955 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17416571 by halfdan ingvarsson in ue5-release-engine-test branch]
2021-09-03 01:30:31 -04:00
matt peters
9d1983216b #jira UE-124643
Add compile prerequisites to PVS Gather action so that is not filtered out during single-file compile.
#rb Ben.Marsh
#rnx

#ROBOMERGE-SOURCE: CL 17351843 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17351844 by matt peters in ue5-release-engine-test branch]
2021-08-30 10:09:52 -04:00
jonathan adamczewski
79aed20146 UnrealBuildTool:
Support for writing files directly as lines, without converting to a single string first.

#jira none
#rb joe.kirchoff

#ROBOMERGE-SOURCE: CL 17162046 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17162059 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-12 20:46:22 -04:00
josh adams
8a9348f4e6 - Allow for a target to add extra linker commandline options in Visual Studio
#rb jeff.newquist
#p4v-preflight-copy 17108935
#preflight 6111b4ca6c6eb0000111d110

#ROBOMERGE-SOURCE: CL 17109665 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v854-17104634)

[CL 17109718 by josh adams in ue5-release-engine-test branch]
2021-08-09 20:03:12 -04:00
joe kirchoff
42b096846e UnrealBuildTool: Prefer Clang 11 on Windows, to match the current version supported for Linux
#rb none
#rnx
#preflight 610c3629af46f0000104a468

#ROBOMERGE-SOURCE: CL 17075777 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17075789 by joe kirchoff in ue5-release-engine-test branch]
2021-08-05 17:02:46 -04:00
joe kirchoff
e0deb1a5fc UnrealBuildTool: VS2019 shouldn't return VS2022 clang toolchain, but also scan VS2022 install for clang as well
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 17072522 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17072540 by joe kirchoff in ue5-release-engine-test branch]
2021-08-05 14:08:58 -04:00
joe kirchoff
a1db9f9cc8 UBT: cl.exe can't handle response filepaths longer than 260 characters, and relative paths can push it over the limit when otherwise it would have been fine.
Hopefully I can get Microsoft to fix this.

#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16869544 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16869548 by joe kirchoff in ue5-release-engine-test branch]
2021-07-15 20:04:22 -04:00
jeff farris
b443986332 Merge from Main at CL 16704596, part 2: Files That Had Conflicts
#ROBOMERGE-SOURCE: CL 16843928 via CL 16843937
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16843942 by jeff farris in ue5-release-engine-test branch]
2021-07-13 18:18:30 -04:00
joe kirchoff
3a7d426705 UnrealBuildTool: Print absolute paths in diagnostics
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16832260 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16832277 by joe kirchoff in ue5-release-engine-test branch]
2021-07-12 18:03:14 -04:00
joe kirchoff
19c61933c9 UnrealBuildTool: Fix bShowIncludes not setting the compile flag when /sourceDependencies is used to track dependencies. Also support bShowIncludes for Windows Clang.
#jira UE-119438
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16831282 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16831304 by joe kirchoff in ue5-release-engine-test branch]
2021-07-12 16:53:44 -04:00
andrew firth
9b1d252a0d [UBT] - add functionality to honor bPreprocessOnly (PS) and publish the output file path to the log (used by unrealVS) - moved this into the *new* location for these settings
#rb none (trivial)

#ROBOMERGE-SOURCE: CL 16825197 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16825199 by andrew firth in ue5-release-engine-test branch]
2021-07-12 10:28:28 -04:00
andrew firth
6ac3a50939 [UBT] - add functionality to honor bPreprocessOnly (PS) and publish the output file path to the log (used by unrealVS)
[FYI] luke.thatcher
#rb none
#lockdown jeff.farris

#ROBOMERGE-OWNER: andrew.firth
#ROBOMERGE-AUTHOR: andrew.firth
#ROBOMERGE-SOURCE: CL 16824685 via CL 16824780
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16824791 by andrew firth in ue5-release-engine-test branch]
2021-07-12 09:44:11 -04:00
joe kirchoff
9c7615fd72 UnrealBuildTool: Clean up VCToolChain functions that add command line args to be more consistently used, allowing more paths that can be relative to reduce command line length
Verified relative pathing works fine for msvc clang builds
Use .d files for dependencies when compiling with windows clang, instead of piping through cl-filter.exe
Use relative pathing for generated unity files

#rb Jonathan.Adamczewski
#rnx
#preflight 60d4de2bcaf0590001e62de9
#preflight 60d4efbccaf0590001e9af24

#ROBOMERGE-SOURCE: CL 16779820 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16779826 by joe kirchoff in ue5-release-engine-test branch]
2021-06-24 19:01:22 -04:00
joe kirchoff
27be58d44c UnrealBuildTool: /sourceDependencies isn't valid for clang
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16760035 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16763616 by joe kirchoff in ue5-release-engine-test branch]
2021-06-23 18:02:07 -04:00
joe kirchoff
6409f25415 UnrealBuildTool: Move /sourceDependencies arg to GetCompilerArguments()
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16759389 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16763572 by joe kirchoff in ue5-release-engine-test branch]
2021-06-23 18:00:56 -04:00
joe kirchoff
a4316fe09f UnrealBuildTool: Use /sourceDependencies to generate dependency list instead of cl-filter if the the msvc compiler version is at least 14.27
#rb Ben.Marsh
#preflight 60d34f6ea81904000181d05a

#ROBOMERGE-SOURCE: CL 16758831 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16758890 by joe kirchoff in ue5-release-engine-test branch]
2021-06-23 12:42:20 -04:00
david harvey
dff654b52e Fixing up Address Sanitizer on Microsoft platforms.
<BuildConfiguration>
    <bEnableAddressSanitizer>true</bEnableAddressSanitizer>

#jira UE-112891
#rb dan.phillips
#rnx

#ROBOMERGE-SOURCE: CL 16757980 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16757990 by david harvey in ue5-release-engine-test branch]
2021-06-23 11:36:14 -04:00
david harvey
7f55622620 Add support for PDB page size override, introduced in VS2019 16.11 Preview 1.
This is used when dealing with PDB files that are over 4GB.

Use -PdbPageSize=<value> on the UBT command line, or add this to BuildConfiguration.xml:

  <WindowsPlatform>
    <PDBPageSize>32768</PDBPageSize>
  </WindowsPlatform>

Expected values are 4096 (default), 8192, 16384, 32768



Note to select an installed preview build of VS, you need to specify

  <WindowsPlatform>
    <CompilerVersion>Preview</CompilerVersion>
  </WindowsPlatform>


#rb ben.marsh
#jira UE-116910

#ROBOMERGE-SOURCE: CL 16743860 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16743872 by david harvey in ue5-release-engine-test branch]
2021-06-22 11:41:18 -04:00
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
223a11ee71 UnrealBuildTool
Adding "using UnrealBuildBase" to some files (submitted separately to make subsequent CLs smaller)

#jira none
#trivial

#ROBOMERGE-SOURCE: CL 16657799 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16657806 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-14 09:25:41 -04:00
jonathan adamczewski
64c210d294 AutomationTool, BuildUtilities:
UnrealBuild -> Unreal for EngineDirectory, RootDirectory, IsEngineInstalled, UnrealBuildToolPath
Remove CommandUtils EngineDirectory, RootDirectory, IsEngineInstalled - use equvalents from UnrealBuildBase.Unreal

#jira none

#ROBOMERGE-SOURCE: CL 16648181 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16648203 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-11 18:21:35 -04:00
jonathan adamczewski
ad86e81438 UnrealBuildTool:
Add a StringComparison argument to CreateIntermediateTextFile() and require callers to make a decision about the case-sensitivity used when considering whether to re-write a file.

(This is intentionally explicit and verbose at the call-site - we should implement a better solution. This change makes it clear that there is work to be done to be able to simplify the interface and achieve reliable behavior.)

As a first pass, C++ files (headers, cpp files, pch files) will have a case-sensitive comparison (C++ code is, mostly, case sensitive), Linux script files have a case-sensitive comparison (case-sensitive filesystem), and all other files are compared disregarding case - to match pre-existing behavior, and with the desire to not borrow more surprises than necessary.

#jira none

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

[CL 16616345 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-09 19:45:21 -04:00
jonathan adamczewski
d58996b916 UnrealBuildTool: move some path constants into BuildUtilities
RootDirectory, EngineDirectory, UnrealBuildToolPath are now found in BuildUtilities' UnrealBuild namesapce.

The way these are computed has changed. Previously, it was assumed that the application is UnrealBuildTool, and paths were constructed relative to that assembly.

Now, the assumption is that the process is located under a "Engine/Build/DotNET" sub-path and paths are constructed relative to that.

#jira none

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

[CL 16607455 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-09 12:55:13 -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