Commit Graph

90 Commits

Author SHA1 Message Date
joe kirchoff
a6e94ff649 UnrealBuildTool: Invalidate makefile if a header only directory is added or removed
#jira UE-191921

[CL 28257409 by joe kirchoff in ue5-main branch]
2023-09-26 20:28:19 -04:00
markus breyer
828a18c45e New temporary target rule property bUseVerseBPVM
#rb andrew.scheidecker, joe.kirchoff
#rnx

[CL 26996866 by markus breyer in ue5-main branch]
2023-08-10 12:45:45 -04:00
christopher waters
47426db352 Adding UnrealIntermediateEnvironment to allow different intermediate paths based on build settings.
This removes the old hack that renames the target based on nonunity being set while also adding a new intermediates folder for IWYU.

#jira UE-190274
#rb joe.kirchoff

[CL 26514944 by christopher waters in ue5-main branch]
2023-07-21 12:08:09 -04:00
joe kirchoff
c04da27b3b UnrealBuildTool: More automated code cleanup
#rnx
#preflight 64767efb4b1ead7c7f428c7a

[CL 25693857 by joe kirchoff in ue5-main branch]
2023-05-30 18:59:32 -04:00
joe kirchoff
36d266e932 UnrealBuildTool: Automated code cleanup
#rnx
#preflight 6476799e947ff6973c225619

[CL 25693241 by joe kirchoff in ue5-main branch]
2023-05-30 18:38:07 -04:00
tim smith
cf626105dd 1) Replaced bCanCache with new artifact mode flags
2) Added support in artifacts for relative paths
3) Modified ISPC header generation to be cached

At this time, only MSVC compiles are cached and -deterministic must be specified when building.

#rb josh.adams
#preflight 6470a172054af2576a2bd4b9

[CL 25647092 by tim smith in ue5-main branch]
2023-05-26 12:48:45 -04:00
Joe Kirchoff
2a261c113d EpicGames.Core: Obsolete ReadOnlyHashSet in favor of IReadOnlySet
#rb Ben.Marsh
#preflight 641e1145a86ae7cbcc86bc53

[CL 24789316 by Joe Kirchoff in ue5-main branch]
2023-03-24 17:59:47 -04:00
Joe Kirchoff
0846b9bf69 UnrealBuildTool: Only -SingleFile compile files if they are included in the target. Requires storing the header list in the makefile
#rnx
#rb Josh.Adams
#rb Henril.Karlsson
#preflight 64125819bf53fdee19bbc593

[CL 24665702 by Joe Kirchoff in ue5-main branch]
2023-03-15 20:07:14 -04:00
Josh Adams
864b1270f6 - Skip hidden source files
#preflight 64060c6b2559570cc75368a8
#rb henry.falconer

[CL 24523412 by Josh Adams in ue5-main branch]
2023-03-06 11:07:00 -05:00
henrik karlsson
a0566a456c [UnrealBuildTool]
* Fixed bug where every change to a header would cause invalidation of makefile due to workset changes.

#preflight skipped
#rb joe.kirchoff

[CL 24344625 by henrik karlsson in ue5-main branch]
2023-02-21 13:38:23 -05:00
josh adams
f881608487 - Fixing location for UHT generated headers to not have architecture in the path, because they are per-arch, and with InstalledBuilds, if we made a Universal build, but then user does non-universal, the UHT intermediates would look in a different location than where we put them ('arm64' vs 'arm64+x64')
#jira UE-176191
#preflight 63e401713c44c83044e5b2c3

[CL 24214920 by josh adams in ue5-main branch]
2023-02-14 12:40:03 -05:00
Joe Kirchoff
304b4ec06c UnrealBuildTool: Trim quotes from -Manifest=
#rnx
#rb trivial
#preflight 63e6ec28c23d1f29a313ff42

[CL 24131763 by Joe Kirchoff in ue5-main branch]
2023-02-10 20:25:59 -05:00
Joe Kirchoff
7bbe227619 UnrealBuildTool: Invalidate makefile if -Manifest= is requested but is out of date or missing
#rnx
#rb trivial
#preflight 63e55928f306fe2858711e7f

[CL 24105366 by Joe Kirchoff in ue5-main branch]
2023-02-09 15:42:34 -05:00
henrik karlsson
8c4b56c12b [UBT]
* ActionGraphBuilder - Added AllowAsync parameter to CreateIntermediateTextFile which defaults to true.
* UEBuildModuleCPP - Added AllowAsync false to one place where the code touches the file after CreateIntermediateTextFile has been called
* UEBuildModuleCPP - Changed so code writing LiveCodingInfo.json is using same path as others when it comes to writing files

#preflight 63d86264ec3d1af440d22e35
#rb joe.kirchoff

[CL 23924077 by henrik karlsson in ue5-main branch]
2023-01-31 01:28:52 -05:00
josh adams
1610c3bee3 UnrealArch/UnrealArchitectures changes
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
 - UnrealArch is a single architecture, expandable enum-like struct
 - There is no more concept of "no/default architecture", there is always a valid active architecture when building
 - Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
 - UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
 - UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
 - TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
 - Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)

#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471

[CL 23829977 by josh adams in ue5-main branch]
2023-01-24 09:30:28 -05:00
Tim Smith
106b956993 Remove C++ UHT as the UHT to be used to generate headers. This does not remove the ability to build C++ UHT as a target.
#rb joe.kirchoff
#preflight 63c84257fb1a8cf245e538c4

[CL 23761220 by Tim Smith in ue5-main branch]
2023-01-18 14:14:27 -05:00
zorbathut
c476640591 PR #8562: Add further debug output for makefile argument changes. (Contributed by zorbathut)
#preflight 63b481ec8c5081ee9adc7080

[CL 23568496 by zorbathut in ue5-main branch]
2023-01-03 14:36:43 -05:00
Josh Adams
914b141838 - Fixed the location of the .target files for Programs that have .uprojects (to use Engine/Binaries instead of Engine/Programs/Foo/Binaries), and also Intermediates to go back under Engine/Intermediate
#jira UE-172360
#rb yujiang.wang
#preflight 639b51bb0a67152550782f25

[CL 23528470 by Josh Adams in ue5-main branch]
2022-12-15 12:10:19 -05:00
bryan sefcik
f85124e026 Moved the logic to check for inline gen.cpp changes out of the if statement that only triggered when the directory changed. Now the sources are always checked properly.
#jira
#preflight 63353184ee7b13756deb11e0

[CL 22260864 by bryan sefcik in ue5-main branch]
2022-09-29 20:37:10 -04:00
bryan sefcik
9b6d73b95c Another optimization for when we iterate through header files when scanning the directories.
#jira
#preflight 633517e7c351ce85faff81e3

[CL 22244275 by bryan sefcik in ue5-main branch]
2022-09-29 02:32:55 -04:00
bryan sefcik
001cc2d55e Fixed an issue where the makefile would not be invalidated if you switched back and forth between using inline gen cpp files when unity files were disabled. This would sometimes result in linker issues.
#jira
#preflight 6334bf5bb946208fc1c34ef2

[CL 22240851 by bryan sefcik in ue5-main branch]
2022-09-28 22:34:42 -04:00
tim smith
a13076902b Added warnings when C++ UHT is used. These warnings include the reasons why C++ UHT is being used. The warning is currently disabled but informational messages will still be generated.
#rb
#preflight 6322088da514fd1e37319c62

[CL 22015813 by tim smith in ue5-main branch]
2022-09-14 16:44:09 -04:00
henrik karlsson
9b603cee85 [UnrealBuildTool]
* Added support for ".ubtignore" files that can be put in a folder to make ubt ignore the folder and its subfolder
* Fixed bug where project's plugin and source folder were visited multiple times (look in FileMetadataPreftch.cs)
* Changed so Lazy<File/DirectoryItem> is resolved directly on windows platform and only do the extra refresh on mac/linux (there seems to be some bugs on those platforms and we don't want to pay extra cost on windows)
* Added runtimeconfig.template.json and changed UnrealBuildTool to use server gc and a few more settings that improve performance
* Added so all file traversing paths is aware of .uplugin
* Added debug code to be able to write out which files that have been touched during UBT execution. This can serve as a way to identify places to add .ubtignore files

#rb Joe.Kirchoff
#preflight 62f685f8cf7afa018ba0a4a5

#ROBOMERGE-AUTHOR: henrik.karlsson
#ROBOMERGE-SOURCE: CL 21360427 via CL 21371108 via CL 21371121 via CL 21371139
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21371637 by henrik karlsson in ue5-main branch]
2022-08-13 02:43:13 -04:00
Tim Smith
5200aeebdb Fixed issue with UAT/UBT script module rebuild tracking. If MSBuild doesn't update the target DLL due to there being no real changes, then the simple check against target time stamps being out of order would fail. Changed to save the reference time stamp and then compare them to test to see if they don't match.
Minor refactor to how valid and invalid build records are tracked.

#rb josh.adams
#preflight 62d15d263b057e7274876325

[CL 21108749 by Tim Smith in ue5-main branch]
2022-07-15 08:42:45 -04:00
andrew scheidecker
1218625098 Changed boolean property bVersePublicApi on Build.cs and uplugin files to an enum named VerseScope with three states InternalAPI, PublicAPI and User.
Submitting on behalf of Markus.Breyer.

#rnx
#rb Markus.Breyer, Graeme.Thornton, Eric.Knapik
#preflight 62a74175af7ad033effb81ad

#ROBOMERGE-OWNER: andrew.scheidecker
#ROBOMERGE-AUTHOR: andrew.scheidecker
#ROBOMERGE-SOURCE: CL 20629231 via CL 20629334 via CL 20629474 via CL 20629523
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20636288 by andrew scheidecker in ue5-main branch]
2022-06-13 18:37:53 -04:00