Commit Graph

148 Commits

Author SHA1 Message Date
ben marsh
595309196c Merging NET 8 upgrades from Main.
[CL 36755991 by ben marsh in 5.5 branch]
2024-10-01 19:12:37 -04:00
calvin zheng
3d19b785c0 Fix for BP only project quick launch fail
#jira UE-209584
#rb Josh.Adams, zack.neyland

[CL 34503481 by calvin zheng in ue5-main branch]
2024-06-19 12:27:41 -04:00
joe kirchoff
8e674c1c47 Update System.Drawing.Common to 4.7.3
#rnx

[CL 30279376 by joe kirchoff in ue5-main branch]
2023-12-12 17:25:50 -05:00
josh adams
e94ead8457 - Replaced System.Environment.MachineName (and System.Net.Dns.GetHostName()) with Unreal.MachineName, since Environment.MachineName is capped at 15 characters, and not every machine name is that short. Uses System.Net.Dns.GetHostName() internally unless is throws an exception, then it falls back to Env.MachineName
#rb adam.kinge, joe.kirchoff

[CL 29712082 by josh adams in ue5-main branch]
2023-11-14 09:40:24 -05:00
josh adams
1abedddd2a - More fixes for Mac packaging/archiving issues
* Set the no-encryption setting in the template Mac plist to make uploading to TestFlight/AppStore easier
  * Fixed editor to not compile as universal when using -distribution, only the client should be universal
  * Further improvements to stripping out nested .app's in a final .app (remove them from the staged directory helps)
  * Changed how the Mac app name is displayed, since the .app name itself is shown in the Finder,  unlike IOS where the CFBundleName is shown (the archived .app name in the .xcarchive is named by a project setting, falling back to the .uproject name if not set)
  * Disabled the SignExecutables function on Modern because they attempt to sign the wrong .apps, and one is no longer (previously it was uselessly signing .apps, but now it throws an error due to changes for the third item in this list)
[CONSIDER5.3]
#rb calvin.zheng
#jira UE-197465

[CL 28619839 by josh adams in ue5-main branch]
2023-10-10 10:52:53 -04:00
andrew phillips
bf12dcee39 Fixing vulnerable NuGet deps.
System.Drawing.Common 4.7.0 => 4.7.2  (https://github.com/advisories/GHSA-rxg9-xrhp-64gj)
MongoDB.Driver 2.11.5 => 2.19.0  (https://github.com/advisories/GHSA-7j9m-j397-g4wx)

#jira UE-194453
#rb francis.hurteau
#lockdown michal.valient

[CL 27715945 by andrew phillips in ue5-main branch]
2023-09-08 12:44:45 -04:00
josh adams
864892ad3d - Fixed running Mac games from Staged dir (like when doing Launch On to Mac)
#jira UE-192724
#rb zack.neyland

[CL 27053624 by josh adams in ue5-main branch]
2023-08-11 19:55:40 -04:00
Josh Adams
b7d0fe4ab0 - Cleaning up MacExports/IOSExports/IOSDeploy/etc for shared functionality from Modern Xcode
#rb trivial
#preflight 6470ddb73c13defa05f64f51

[CL 25647200 by Josh Adams in ue5-main branch]
2023-05-26 12:51:21 -04:00
Josh Adams
a2263b2ce0 - Xcode support for Content Only projects
- Added a top-level .xcconfig file to Xcode workspace for use with UnrealGame/etc so it knows where to find staged data, and set the commandline automatically
  - Stage the UECommandLine.txt file for modern builds because we no longer make the Bootstrap .app
  - Added XcodeBuildMode enum/string so scripts can tell when the project is being built (so build time could act differently than stage time, etc)
  - Making use of the enum and other env vars to skip steps when not needed

- Other fixes for project generation
  - Added -modernxcode and -legacyxcode comandline options which will override the .ini setting (refactored all UseModern checks into one function)
  - Support for programs that have a .uproject, and GPF with -game -project=<program.uproject>
  - Added success return value to FinalizeAppWithModernXcode
  - Added quotes to fix paths with spaces in GenerateProjectFiles.command
  - Enabled parallel AddAdditionalNativeTargetInformation for gathering Frameworks from targts, now that parallel project generation has been enabled and most parallel issues are fixed

#preflight 646ce67c2e78be98411323d9
#rb zack.neyland
#preflight 646f8f2850786bb5ba8a98f0

[CL 25623979 by Josh Adams in ue5-main branch]
2023-05-25 13:04:27 -04:00
Josh Adams
8b1d9615f8 - Packaging and archiving for modern IOS/Mac:
- When doing standard BuildCookRun, package will simply finalize the (likely already finalize) .app in Binaries/<platform>
  - When using Distribution mode, packge will create a .xcarchive in the Xcode Library (as seen in Organizer) to be able to distribute in various modes
  - Archiving will copy either the .app or .xcarchive made above to the archive directory (it will always copy the most recent .xcarchive, since we don't create the directory name, we can't know which archive to copy, so the most recent one wins - not an issue when using -package, because it always makes a new .xcarchive)
- A few code cleanup/refactors in related
#preflight 644ab91fb208f61af82d8f76

[CL 25220287 by Josh Adams in ue5-main branch]
2023-04-27 14:22:37 -04:00
calvin zheng
d615e69004 Exposing xcode settings to UE settings UI (more work about dynamic disabling etc will follow)
#jira N/A
#rb Josh.Adams
#preflight 6446ae7a7368de8c98fc84d2

[CL 25169123 by calvin zheng in ue5-main branch]
2023-04-24 15:15:00 -04:00
Josh Adams
9a140502fb - When archiving a Mac build, replace CEF3 framework with a proper version of the framework that contains symlinks, that the Mac App Store submission process will accept. It is non-trivial to attempt to add the framework to a Mac build using legacy Xcode project mode, so we fix up on Archive.
#rb tim.smith
#preflight 642af5a9f376ab43d216952b

[CL 24894914 by Josh Adams in ue5-main branch]
2023-04-03 12:39:27 -04:00
josh adams
ebea4948a7 - Re-codesign content-only projects when archiving mac builds, because it modifies the .plist which breaks the signature
#jira UE-181935
#preflight 6427044d50546ea336bdc833
#rb Calvin.Zheng

[CL 24876549 by josh adams in ue5-main branch]
2023-03-31 15:17:27 -04:00
Josh Adams
e449e43c2a - Updating making Mac builds with modern xcode to stage files into the .app via xcode
- Mac and IOS both now run a script in Xcode to rsync from StagedBuilds into the .app
- Mac now generates and runs the xcode project after building (PostBuildSync like IOS) to codesign and pull in staged data, using a new ApplePostBuildSync class to share with IOS
- Added a SingleTarget mode to XcodeProjectGenerator to make a minimal project for PostBuildSync
#rb zack.neyland
#preflight 641a7276bb1320be4166c3fc

[CL 24745546 by Josh Adams in ue5-main branch]
2023-03-22 07:24:29 -04:00
Ben Marsh
235eb77726 Change to structured logging in other AutomationTool projects.
#preflight 6408c4478c0039bbf750e861

[CL 24562553 by Ben Marsh in ue5-main branch]
2023-03-08 12:43:35 -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
Josh Adams
622efc4c0d - More Architecture cleanup
- Added UAT params to pass architecture by target type (-editorarchitecture, -clientarchitecture, -serverarchitecture, -programarchitecture). Keeping -specifiedarchitecture for compat, and it will set all the other 4 if they are not specified
- Changed ProjectGenerator to find Program .uproject files (logic was looking for .Target files under the .uproject's directory, which is not the case for Programs)
- Added two params to GetProjectArchitectures:
    - bGetAllSupported - used to get all supported architectures, not just the ones currently being built for (needed for XcodeProject to know what architectures to allow in the dropdown)
    - bIsDistributionMode - used to get architectures to compile when making distribution builds (probably want to compile all architectures for distro's)
- Removed the MacExports.TargetsAlowedForAppleSilicon, updated XcodeProject code to use the new GetProjectArchitectures()
#rb david.harvey
#jira none
#preflight 63909f217e0feab0b7bd8241

[CL 23428114 by Josh Adams in ue5-main branch]
2022-12-07 09:42:34 -05:00
Josh Adams
e6e825cc8d - Made ApplePlatform.Automation to share code betwen Mac and IOS
#rb adam.kinge
#jira none
#preflight 6346edec8d665d55d04a5478
#preflight 635174bfe6096564af0b8a57

[CL 22659145 by Josh Adams in ue5-main branch]
2022-10-20 12:22:07 -04:00
zack neyland
0b8f505ea9 For Mac InstallBuilds don't add in the -architecture flag for UBT, instead fall back to the default setting (x64_86). This will resolve an issue where the .precompile files are looked for in the wrong directory (arm64). This is not a long term solution, in the future we'll need to determine the arch the install build was built for and use that to add the appropriate arch flags.
#jira UE-163326
#preflight none
#rb none

[CL 22095377 by zack neyland in ue5-main branch]
2022-09-20 12:35:25 -04:00
Josh Adams
5b2f23198f - Allow staging/packaging of programs (requires the program have a basic .uproject, see the new SlateUGS.uproject)
- Added code to patch paths for handling Programs having source in /Engine/Source/Programs/XYZ, their config fies, etc in /Engine/Programs/XYZ, and staging using /XYZ
- Mac can now apply -specifiedarchitecture to UAT builds of programs
- Added support to SlateUGS to load Pak files (programs have to opt-in to it in their main Build.cs)
#rb brandon.schaefer,david.harvey
#preflight 631a03202b7fe03eb6b0f16a

[CL 21894674 by Josh Adams in ue5-main branch]
2022-09-08 11:22:00 -04:00
Ryan Hummer
cc00a96d2e Update MacPlatform.ProcessArchivedProject to use safer file IO operations
Added a SafeRenameDirectory similar to SafeReaname file that uses Directory.Move

#rnx
#jira none
#rb none
#preflight 62bf48388d5e6787591b3f8e

[CL 20922943 by Ryan Hummer in ue5-main branch]
2022-07-01 18:52:43 -04:00
Josh Adams
31795a384e - Added Mac device to Turnkey
#rb trivial
#preflight 62965f17ba7d725a4a468b3f

[CL 20440249 by Josh Adams in ue5-main branch]
2022-05-31 14:55:54 -04:00
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00
jonathan adamczewski
c12d99d854 .net6.0 is not supported in VS2019. Suppress warnings about that when using that IDE (with this change, when building UnrealBuildTool & AutomationTool)
#jira none
#rnx
#rb joe.kirchoff
#preflight 624f2c163c2aff69c54ff9eb

[CL 19675097 by jonathan adamczewski in ue5-main branch]
2022-04-07 15:06:02 -04:00
jonathan adamczewski
c1bb6901bf Upgrade to .NET 6.0
#jira UE-119846
#preflight 624cbb2ecc0872e96b0d5181

[CL 19652696 by jonathan adamczewski in ue5-main branch]
2022-04-06 14:46:50 -04:00