Commit Graph

19357 Commits

Author SHA1 Message Date
calvin zheng
b7901c873b Silence a provision profile error, this should not affect code signing
#Jira horde 323953
#rb Josh.Adams

#ushell-cherrypick of 26195463 by calvin.zheng

[CL 26195892 by calvin zheng in 5.3 branch]
2023-06-22 18:01:59 -04:00
stephen ma
69313c59f5 Update LowLevelTests to use BuildCookRun when test specifies StagesWithProjectFile.
- LowLevelTest.xml horde build step as a separate label
 - Relevant <General>.xml files updated to support the new build step
 - Added UpdateBuildGraphPropertiesFile.Automatoin.cs to help find files to checkout
 - OnlineTests updated to utilize new BuildCookRun param

#jira UE-188819
#rb Chris.Constantinescu, Jake.Niman

[CL 26194701 by stephen ma in 5.3 branch]
2023-06-22 17:34:11 -04:00
valentin ritzi
63f6a62f18 [Concert] Adapting ConcertSyncServer / UnrealMultiUserServer to work with QuicMessaging
Adapting the ConcertSyncServer and the UnrealMultiUserServer configs and code to work with QuicMessaging as an alternative to UdpMessaging.

#jira UCS-7220
#rb jason.walter, manuel.lang
#review-26052126

[CL 26176638 by valentin ritzi in 5.3 branch]
2023-06-22 04:20:52 -04:00
Joe Kirchoff
e13f42722f Fix C4855: implicit capture of 'this' via '[=]' is deprecated in '/std:c++20'
#rnx
#jira none

[CL 26168192 by Joe Kirchoff in 5.3 branch]
2023-06-21 18:50:34 -04:00
bryan sefcik
13558bb9b3 Optimized the searching of included files.
Solution generation:
Before: 1m55s
After: 50s

#jira

[CL 26165871 by bryan sefcik in 5.3 branch]
2023-06-21 17:56:49 -04:00
christopher waters
61c46609c0 EngineIncludeOrderVersion cleanup
- Deprecating EngineIncludeOrderVersion.Unreal5_0 and EngineIncludeOrderVersion.Unreal5_1.
- Adding way more comments on EngineIncludeOrderVersion including warnings about using EngineIncludeOrderVersion.Latest.

#jira none
#rb joe.kirchoff

[CL 26161171 by christopher waters in 5.3 branch]
2023-06-21 16:32:01 -04:00
jamie dale
1b00f5ed86 Updated UHT to use the real C++ type for USTRUCT properties using a template wrapper struct
#jira
#rb Tim.Smith
#rnx

[CL 26159320 by jamie dale in 5.3 branch]
2023-06-21 15:39:37 -04:00
calvin zheng
3cbb71e895 - Yet another fix, this time for UnrealEditor standalone with clean build
#rb self

#ushell-cherrypick of 26159153 by Josh.Adams

[CL 26159286 by calvin zheng in 5.3 branch]
2023-06-21 15:39:06 -04:00
calvin zheng
4b612a259b - Fixed errors with plugin modules failing to find a project to put into (better fix then yesterday's for the AdditionalPluginDirectories)
#rb self
#[robomerge] 5.3

#ushell-cherrypick of 26156103 by Josh.Adams

[CL 26156426 by calvin zheng in 5.3 branch]
2023-06-21 14:26:53 -04:00
calvin zheng
fe57e60bf1 Fix project dir for UnrealGame
#jira horde 322614
#rb Josh.Adams

#ushell-cherrypick of 26139357 by calvin.zheng

[CL 26152960 by calvin zheng in 5.3 branch]
2023-06-21 12:36:47 -04:00
calvin zheng
3f9b3b622b - Moved SDK versions (MainVersion and Min/Max SDK version) from C# strings to SDK.json files in the Platform's Config folder
- Allow for per-project override in a project's platform's config folder (this is merging with my other work on per-project SDKs and validation of multi-target builds)
- More versions will move over after this
#rb david.harvey


#[robomerge][bot5] -FNMain

#ushell-cherrypick of 26150552 by josh.adams

[CL 26152902 by calvin zheng in 5.3 branch]
2023-06-21 12:34:18 -04:00
calvin zheng
fb7cad540f - Fix crash with UnrealEditor builds, caused by earlier fix for AdditionalPluginDirectories warning
#rb trivial

#ushell-cherrypick of 26140047 by Josh.Adams

[CL 26152798 by calvin zheng in 5.3 branch]
2023-06-21 12:30:58 -04:00
calvin zheng
f99e44009b - Handle manual codesigning with Modern Xcode (using all new settings, does not use the "green check" provisions in IOS project settings)
- Added support for AppStoreConnect API for automatic code signing (with command line builds, packaging from editor, etc) that doesn't need everyone to be signed in to Xcode (still need to sign in if using Xcode IDE to build/run)
- Fixed Modern to always create the IOS plist in UBT ApplePostBuild step
- Updated a bunch of ini setting names to remove Modern, given Modern will be standard in the future
- Added some settings XcodeProject settings in the editor, and updated some tooltips/category names
- Moved some functions around to clean up
- Added some debug code to catch errors

#rb adam.kinge,calvin.zheng,zack.neyland

#ushell-cherrypick of 26133818 by Josh.Adams

[CL 26152365 by calvin zheng in 5.3 branch]
2023-06-21 12:07:08 -04:00
calvin zheng
db892aed9d - Moved the SingleTargetName property up to ProjectFileGenerator from Xcode generator, and use it to remove Targets from the list to be processed. This is useful because when modern Xcode creates a stub xcode project for a Program, it has no uproject to use with "-game -project", so the GPF code would process all .Target.cs files, which can lead to warnings about missing AdditionalPluginDirectories (build machines may not fully sync a stream, and processing every Target can cause unexpected problems)
#rb joe.kirchoff

#ushell-cherrypick of 26132088 by Josh.Adams

[CL 26152295 by calvin zheng in 5.3 branch]
2023-06-21 12:04:21 -04:00
halfdan ingvarsson
42bcca6162 UBT: When calling with Mode=QueryTargets and the -IncludeAllTargets flag, include a flag in the result to indicate which target is the default target for a given target type.
#jira none

[CL 26142320 by halfdan ingvarsson in 5.3 branch]
2023-06-21 01:31:33 -04:00
Joe Kirchoff
f5b37b60e5 UnrealBuildTool: Build error if VS2019 is used in an installed engine
#rnx
#jira UE-184393
#rb Ryan.Hummer

[CL 26133782 by Joe Kirchoff in 5.3 branch]
2023-06-20 16:40:13 -04:00
helge mathee
766fb9e999 UHT: RigVM Make sure to rely on slice index for lazy values
#rb jaime.cifuentes

[CL 26118225 by helge mathee in 5.3 branch]
2023-06-20 07:35:35 -04:00
per larsson
f974a99849 I/O - support for uploading on demand I/O store containers to S3 with UnrealPak
- added support for uploading containers marked as on demand directly from UnrealPak.exe
- removed C# based upload logic from automation scripts
- removed on demand I/O store writer since this change reads chunks directly from container files instead of loose files

Example usage:
UnrealPak.exe -Upload=<ContainerPathOrWildcard> -ServiceUrl=<URL> -Bucket=<BucketName> -AccessKey=<Key> -SecretKey=<Key>

Read credentials from an AWS key chain file with the following command line:
-CredentialsFile=<Path> -CredentialsFileKeyName=<EntryName>

Specify -KeepUploadedContainers to prevent UnrealPak to delete on demand containers after the upload has been completed.
Specify -BucketPrefix=<Path> to upload chunks to a specific sub directory within the bucket.

#rb none

[CL 26115550 by per larsson in 5.3 branch]
2023-06-20 04:28:53 -04:00
leon huang
f19b273854 [Backout] - CL26105383
[FYI] Leon.Huang
Original CL Desc
-----------------------------------------------------------------
Unreal Build Tool:
Update PluginDescriptor to have parity with FPluginDescriptor in terms of handling custom JSON fields. The order in which the original fields are written to disk is preserved.
When saving the PluginDescriptor to disk, the same order is followed and any new entries are added to the end of the plugin file.
Note: PluginDescriptor.Save and PluginDescriptor.Save2 will exist concurrently for now. There are still parts of UBT that use PluginDescriptor.Write and the refactor to create a unified Save function will come later as a lot of testing still needs to be done.
JsonObject:
- Introduced AddOrSetFieldValue() methods overloaded on value types to add/set fields in JsonObject.
- Changed the underlying data structure of JsonObject from Dictionary<string,Object?> to OrderedDictionary to guarantee that order of all .uplugin fields (default and custom) are preserved
- Made the JsonObject constructor that takes an OrderedDictionary private to ensure type safety of values passed to JsonObject
- Introduced ToJsonString() for JsonObject that serializes the JsonObject to match the formatting of .uplugin
IMPORTANT: The ToJsonString() method uses the JavaScriptEncoder.UnsafeRelaxedJsonEscaping encoder for Utf8JsonWriter.
This allows +,<,>,&,` etc characters to be written properly for .uplugins. As per MS docs, with this encoding, none of the contents should be written to HTML or a script.
- Introduced JsonObjectTests that unit tested JsonObject to ensure previous behavior was maintained.

PluginDescriptor
- Added a JsonObject field that acts as the cache of all fields that were read from a file or parsed from a json string.
- Cached JsonObject records the order of all fields that were read and captures custom fields in the .uplugin
- Introduced Save2(), the new save algorithm that writes all fields (default and custom) to disk.
- Deleted the private default constructor because it didn't seem to be used anywhere.
- Introduced PluginDescriptorTests to ensure previous behavior is maintained. In particular when dealing with a .uplugin with only default fields, results of Save() and Save2() are the same.

Descriptor Files:
- Introduced ToJsonObject() methods to replace the previous JsonWriter patterns of writing the descriptor data.
- Introduced the UpdateJsonObject pattern which mimics the old WriteArray pattern of writing data to a JsonWriter.

#rb: Mark.Winter, Joe.Kirchoff
#jira: none
#test: Developed this in a TDD style with unit tests for all the major functions. Also reviewed output of created .uplugins and diffed them.

[CL 26111696 by leon huang in 5.3 branch]
2023-06-19 21:12:05 -04:00
leon huang
366b1bc048 Unreal Build Tool:
Update PluginDescriptor to have parity with FPluginDescriptor in terms of handling custom JSON fields. The order in which the original fields are written to disk is preserved.
When saving the PluginDescriptor to disk, the same order is followed and any new entries are added to the end of the plugin file.
Note: PluginDescriptor.Save and PluginDescriptor.Save2 will exist concurrently for now. There are still parts of UBT that use PluginDescriptor.Write and the refactor to create a unified Save function will come later as a lot of testing still needs to be done.
JsonObject:
- Introduced AddOrSetFieldValue() methods overloaded on value types to add/set fields in JsonObject.
- Changed the underlying data structure of JsonObject from Dictionary<string,Object?> to OrderedDictionary to guarantee that order of all .uplugin fields (default and custom) are preserved
- Made the JsonObject constructor that takes an OrderedDictionary private to ensure type safety of values passed to JsonObject
- Introduced ToJsonString() for JsonObject that serializes the JsonObject to match the formatting of .uplugin
IMPORTANT: The ToJsonString() method uses the JavaScriptEncoder.UnsafeRelaxedJsonEscaping encoder for Utf8JsonWriter.
This allows +,<,>,&,` etc characters to be written properly for .uplugins. As per MS docs, with this encoding, none of the contents should be written to HTML or a script.
- Introduced JsonObjectTests that unit tested JsonObject to ensure previous behavior was maintained.

PluginDescriptor
- Added a JsonObject field that acts as the cache of all fields that were read from a file or parsed from a json string.
- Cached JsonObject records the order of all fields that were read and captures custom fields in the .uplugin
- Introduced Save2(), the new save algorithm that writes all fields (default and custom) to disk.
- Deleted the private default constructor because it didn't seem to be used anywhere.
- Introduced PluginDescriptorTests to ensure previous behavior is maintained. In particular when dealing with a .uplugin with only default fields, results of Save() and Save2() are the same.

Descriptor Files:
- Introduced ToJsonObject() methods to replace the previous JsonWriter patterns of writing the descriptor data.
- Introduced the UpdateJsonObject pattern which mimics the old WriteArray pattern of writing data to a JsonWriter.

#rb: Mark.Winter, Joe.Kirchoff
#jira: none
#test: Developed this in a TDD style with unit tests for all the major functions. Also reviewed output of created .uplugins and diffed them.

[CL 26105512 by leon huang in 5.3 branch]
2023-06-19 17:03:00 -04:00
josh engebretson
a8fa8e838e Horde: Make batch errors more obvious with error color and different icon
#rnx
#skipci

[CL 26101576 by josh engebretson in 5.3 branch]
2023-06-19 15:40:27 -04:00
josh adams
3aabbf9009 - Removed some debugging logs
#rb trivial

[CL 26101552 by josh adams in 5.3 branch]
2023-06-19 15:39:42 -04:00
joe kirchoff
632ae429e7 UnrealBuildTool: WindowsTargetRules setting to control Inline Function Expansion Level
#rb trivial

[CL 26101010 by joe kirchoff in 5.3 branch]
2023-06-19 15:26:42 -04:00
brendan lienau
6b83e67a56 [Gauntlet] Handle log writing exception
#rnx
#rb trivial

[CL 26096595 by brendan lienau in 5.3 branch]
2023-06-19 13:44:35 -04:00
tim smith
95c61369b5 LazyObjectPtr and ObjectPtr are allowed as TMap keys in function arguments.
#rb self

[CL 26094351 by tim smith in 5.3 branch]
2023-06-19 12:48:28 -04:00