Commit Graph

156 Commits

Author SHA1 Message Date
josh adams
82ea6a767a [Backout] - CL26223564
[FYI] keaton.stewart
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL26221679 [Main CIS Issue] Errors in Incremental FortniteServer Linux and Incremental Compile Monolithics - Linux
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26226852 by josh adams in ue5-main branch]
2023-06-24 17:52:48 -04:00
keaton stewart
1fd1a77412 [Backout] - CL26221679 [Main CIS Issue] Errors in Incremental FortniteServer Linux and Incremental Compile Monolithics - Linux
#fyi Josh.Adams
#jira FORT-626566 (edited)
Original CL Desc
-----------------------------------------------------------------
- Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26223564 by keaton stewart in ue5-main branch]
2023-06-23 20:29:27 -04:00
Josh Adams
e25e1b3daf - Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26221679 by Josh Adams in ue5-main branch]
2023-06-23 19:12:47 -04:00
Ryan Hummer
4459065999 GitDependencies: Recompiled binaries
* Apple Silicon native binaries
  * Updated scripts to allow picking the right arch path
* nullable enabled support

#rnx
#jira none
#rb none

[CL 26088807 by Ryan Hummer in ue5-main branch]
2023-06-19 09:34:35 -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
Josh Adams
4323a4108a - QAGame Mac passes validation for App Store (and can upload)
- Thin the dylibs in a .app when archiving, and warn that the dylibs have all needed architectures
- Added some default entitilements files for Mac, for Sandbox, and set Sandbox entiitlements as Shipping default
- Added some Modern ini options (ModernBundleIdentifie, AppCategory
- Updated CEF3 to have a single universal framework, which gets Thinned down if making a single architecture app
#rb calvin.zheng,roman.dzieciol
#preflight 64405af7a9720904a6c3eb4f

[CL 25117174 by Josh Adams in ue5-main branch]
2023-04-19 17:42:52 -04:00
josh adams
83117ddf55 - Removed a comment which was leaving temp files around instead of deleting them
#rb trivial
#preflight skip

[CL 25032566 by josh adams in ue5-main branch]
2023-04-13 17:01:43 -04:00
josh adams
6bd4b5cc10 - Replacement script for dsymutil that can take a universal binary and generate a dsym, when normally dsymutil would error out with > 4gb offsets
#rb calvin.zheng
#jira UE-183136
#preflight 64381918ae4448e6f9113b3b

[CL 25032553 by josh adams in ue5-main branch]
2023-04-13 17:01:24 -04:00
josh adams
384ec009e9 - Fixed up latest p4vutils for Mac/Linux, updated project to handle all platforms
- Added UserInterface static class for pulling DialogBox and Clipboard stuff, which needs per-platform implementations
- Changed Windows to install P4VUtils.exe <command>, instead of dotnet P4Utils.dll <command>
- Added scripts to build all platforms, from all platforms (using the IsWindows, IsLinux, IsOSX, WithRestricted properties in the project)
- Updated Binaries as well
#rb ryan.hummer
#preflight skip

[CL 24964516 by josh adams in ue5-main branch]
2023-04-07 10:43:57 -04:00
Joe Kirchoff
086969637c BatchFiles: Clean up so non-ide UBT builds all call the same script and fix up some dependency scanning
#rnx
#rb Brandon.Schaefer
#preflight 63b752af221aab21e0313ac2

[CL 23593968 by Joe Kirchoff in ue5-main branch]
2023-01-05 17:50:34 -05:00
Josh Adams
36fd58a499 - Made two modes for modern Xcode projects: OneWorkspacePerPlatform and OneRunTargetPerPlatform. The first makes completely separate .xcworkspaces, projects, and targets for each platform (Mac, IOS, TVOS). The second makes one workspace, and one project for each platform, but the platform will have three run targets (but one build and one index target) - useful for single game workspaces. There are a couple nasty things, like the Project has the Editor configs, but the IOS target doesn't want them, but they show up anyway in dropdowns because of the Project config.
- If there are no modern projects, then the mode is ignored, and it's the same old mode. With a mix of modern and legacy, each platform workspace will point to the same legacy projects (not worth retooling Legacy since it's becoming deprecated)
- Added Launch Storyboard support (it will look for uncompiled, compiled, project, and engine fallback locations). Compiled is useful or old storyboards, and for Windows-based (assuming that will work with Modern)
- Other minor things like metadata discovery, etc
#preflight 639a321843330e63e50a21e9

[CL 23517631 by Josh Adams in ue5-main branch]
2022-12-14 15:44:34 -05:00
joe kirchoff
27ee520c1b [Backout] - CL23055743
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
BatchFiles: Add output directory when caling dotnet build as running the scripts via a visual studio environment requires this, and for consistency. Via UDN

#rnx
#rb Josh.Adams
#preflight 636ae35c7c2b505190d92839

[CL 23069893 by joe kirchoff in ue5-main branch]
2022-11-09 21:04:55 -05:00
joe kirchoff
73b3529e56 BatchFiles: Add output directory when caling dotnet build as running the scripts via a visual studio environment requires this, and for consistency. Via UDN
#rnx
#rb Josh.Adams
#preflight 636ae35c7c2b505190d92839

[CL 23069570 by joe kirchoff in ue5-main branch]
2022-11-09 20:58:05 -05:00
Ryan Hummer
0ea41c9941 Removing mono referenced from GitDependencies scripts
mono not used by this tool

#rnx
#jira none
#rb none
#preflight none

[CL 22490973 by Ryan Hummer in ue5-main branch]
2022-10-12 21:25:25 -04:00
joe kirchoff
f1edb85ce3 Fix up code compile batch scripts to better support visual studio
* If invoked from VS2022, use visual studio to build UnrealBuildTool to prevent unnecessary rebuilds
* If invoked from VS2019 or on the command line without visual studio, use bundled dotnet to build
* Deduplicate all logic into Build.bat, and have Clean.bat and Rebuild.bat call Build.bat with either -Clean or -Rebuild
* Print entire dotnet version
* Replace various calls to dotnet msbuild with dotnet build
* Update old UE4 comments

#jira UE-165754
#rb ?

[CL 22387871 by joe kirchoff in ue5-main branch]
2022-10-06 19:45:24 -04:00
calvin zheng
b3be31546a Fix ShaderCompileWorker arm64 support in Xcode
#jira UE-166157
#preflight 633ddbcdb6053e828796119b
#rb rolando.caloca
#lockdown rolando.caloca

[CL 22387843 by calvin zheng in ue5-main branch]
2022-10-06 19:44:31 -04:00
josh adams
b4b723bfa6 - More modernization of Xcode, focusing on Mac, IOS plist still needs a lot of work
- Premade "template" plist files for Mac, MacEditor, IOS, and added a PlistMode to choose between updating a template plist (from engine) or using a "baked" out plist that Xcode won't really mess with (this is still a work in progress, as it still needs thought on how to handle IOS premade vs Mac template, etc)
- Updating icons to using xcassets instead of .icns file
- Added post build step for UBT to write out build versions (increments each build) to a .xcconfig for Xcode to put into the .plist, but it reads previous value. Not terrible, but it still  needs work

#rb adam.king
#preflight 632c7e8ee23e50651b43139b

[CL 22137251 by josh adams in ue5-main branch]
2022-09-22 11:42:27 -04:00
joe kirchoff
1c78b292a7 Disable .NET Server GC for Mac as it is currently causing errors
#jira UE-161338
#rnx
#rb trivial
#preflight 631f8d5e065c4ac9ce62f550

[CL 21984671 by joe kirchoff in ue5-main branch]
2022-09-13 12:10:46 -04:00
Josh Adams
2060045e96 - More work on "modern xcode" mode (automatic signing works well, xcode can generate plists/entitlements, shared settings between Mac/IOS/TVOS). Needs the bUseModernXcode ini setting (see BaseEngine.ini) to activate
- Indexing improvements
- No longer asks to auto-create schemes, since we create all schemes needed
- Sped up the run-only project generation to skip a lot of cruft

#preflight 63041e960061f895d0fe3ccf
#rb ian.fox,roman.dzieciol (i am submitting without their final sign-off)
#preflight 63051c23516bef57ffb5b1c2

[CL 21517539 by Josh Adams in ue5-main branch]
2022-08-23 15:40:10 -04:00
Joe Kirchoff
3f1de0e66c Update bundled dotnet to 6.0.302
#rb Ryan.Hummer
#rnx
#jira UE-159980
#preflight 62f152ba0264595302c59855

[CL 21273202 by Joe Kirchoff in ue5-main branch]
2022-08-08 15:06:11 -04:00
josh adams
f133254485 - Fixed up 3 Linux ContentWorker issues that came from the dotnet 6 upgrade (or other recent UE5 changes):
* Staged the wrong Dotnet directory when making CW from Windows (it would stage Dotnet/6.20.00/windows)
* The ScriptModule code that used the Automation.json files to discover the precompiled UAT script dlls didn't handle \'s on Linux in the paths, and since Windows wrote out the files, there are \'s aplenty. I fixed up the known issue, but possibly all paths loaded from the json files should be fixed up, but it's not easy to do automatically
* We moved to using RunUAT.sh instead of calling dotnet directly, however because we make the CW on Windows, dotnet was not executable, and the code in RunUAT.sh to find the dotnet executable and make it executable (chmod `which dotnet`) only works if dotnet is already executable! So, I moved the +x code into SetupDotnet.sh, on Linux and Mac
#rb eric.knapik
#preflight 62ccd2009922f7e512b6e51a

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 21055451 via CL 21055464 via CL 21055478
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21076349 by josh adams in ue5-main branch]
2022-07-13 14:17:50 -04:00
Ryan Hummer
20675b16cb Wrap paths in quotes to allow for spaces in path names
#rnx
#jira UE-158233
#rb brandon.schaefer
#preflight na

[CL 20948137 by Ryan Hummer in ue5-main branch]
2022-07-05 15:49:20 -04:00
Josh Adams
3bf0256dd3 - Added a CompileSingleFile.sh that can run in Xcode to compile a single file via UBT. It activates Terminal so the user can see output and copy and paste, etc. To use, make a new custom Behavior (+ button at bottom of Behaviors window), and point it at this script. It uses AppleScript to find the current document, platform, and scheme, but will always compile in Development (couldn't find a way to get the project to get the build config)
#rb none
#preflight skip

[CL 20333045 by Josh Adams in ue5-main branch]
2022-05-23 14:05:17 -04:00
Josh Adams
8ba3d7ed4c - MIssed NFL path in P4VUtils installers
#rb trivial
#preflight skip

[CL 20248551 by Josh Adams in ue5-main branch]
2022-05-17 14:56:57 -04:00