Commit Graph

161 Commits

Author SHA1 Message Date
Ryan Hummer
3ebc0e1bcf Removing mono/xbuild part 1
* Updating references to use dotnet
* Add new RunDotnet scripts
* Removing Mono sh scripts and references to them

#rnx
#jira UE-153293
#rb josh.adams, zack.neyland, brandon.schaefer

[CL 26737744 by Ryan Hummer in ue5-main branch]
2023-08-01 10:02:58 -04:00
Josh Adams
61ef979e51 - Made IOS and Mac BuildPlatforms classes come from AppleBuildPlatform so we can make UBT regen makefiles when xcode-select location changes
- Fixed XcodeBuild.sh to set iossimulator architecture the expected way
#rb adam.kinge

[CL 26623422 by Josh Adams in ue5-main branch]
2023-07-26 17:45:21 -04:00
ryan hummer
54151149b2 Removing uneeded call to SetupDotnet.sh on mac
#rnx
#rb none

[CL 26611303 by ryan hummer in ue5-main branch]
2023-07-26 12:43:29 -04:00
adam kinge
e56126723a Additional UBT changes to support iOS Simulator:
- update Xcode build script to set correct arch when compiling within Xcode
 - set correct SDKRoot depending on sim vs device

#jira UE-168571

[CL 26597711 by adam kinge in ue5-main branch]
2023-07-26 01:01:43 -04:00
josh adams
88c3aaa797 - Added a mkdir to create the directory before writing a file
#rb trivial
#jira UE-189573

[CL 26551057 by josh adams in ue5-main branch]
2023-07-24 14:37:29 -04:00
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