Commit Graph

120 Commits

Author SHA1 Message Date
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
8baadec8a6 - Fixed Run Target name in Modern xcode to not have the _Plaform suffix
#rb trivial
#fyi calvin.zheng
#preflight 63c9d1b6d45afa2a8fd3a1c6

[CL 23783492 by Josh Adams in ue5-main branch]
2023-01-19 18:34:12 -05:00
Josh Adams
92c6e39a59 - Fixed an issue with modern xcode project generation with Programs that have uproject files
#rb trivial
#preflight 63c83d78b065224750b2adfd

[CL 23760720 by Josh Adams in ue5-main branch]
2023-01-18 13:51:41 -05:00
marc audy
ac008ae11b [Backout] - CL23757826
[FYI] jessica.agee, axel.riffard
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL23756123
[FYI] axel.riffard
Original CL Desc
-----------------------------------------------------------------
fix tvos signature #rb josh.adams #jira UE-174364 #preflight none

[CL 23760389 by marc audy in ue5-main branch]
2023-01-18 13:36:29 -05:00
jessica agee
c97a8eb024 [Backout] - CL23756123
[FYI] axel.riffard
Original CL Desc
-----------------------------------------------------------------
fix tvos signature #rb josh.adams #jira UE-174364 #preflight none

[CL 23760363 by jessica agee in ue5-main branch]
2023-01-18 13:35:55 -05:00
Josh Adams
083b8c59ae - Fixed legacy xcode projects when made for TVOS only - it was making Mac only projects
#rb trivial
#preflight 63c06cc01a06fc6105825888

[CL 23668957 by Josh Adams in ue5-main branch]
2023-01-12 15:45:06 -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
Josh Adams
844b22fdf0 - Fixing some issues (mostly with programs) on IOS/Mac
- Fixed executable path for programs under Restricted
  - Fixed paths when there's an ExeSubDir in the Target
  - Allow for codesigning frameworks under programs without a .uproject
#preflight 6397a2528c64c74ac8489545
#rb Rafa.Lecina

[CL 23484025 by Josh Adams in ue5-main branch]
2022-12-12 17:46:48 -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
calvin zheng
6e8536c5b4 5.1 QFE
This QFE addresses multiple issues with Mac builds in UE 5.1:

* Removed Apple Silicon from default build architectures if installed from Epic Games Launcher, as it is not yet supported in UE 5.1 as a default option.
   * Apple Silicon native build will be available in UE 5.1 through Epic Games Launcher at a later time, but for now please build from GitHub (URL for linking here - https://github.com/EpicGames/UnrealEngine/tree/5.1)
* Fixed a Mobile Preview crash on Mac when Mobile Deferred is enabled and Preview Rendering Level set to iOS Shader 3.1
* Fixed issue that was preventing movable lights from properly casting light on Mac

#jira n/a
#preflight n/a
#rb Ryan.Hummer, Rolando.Caloca

[CL 23230900 by calvin zheng in ue5-main branch]
2022-11-21 20:38:48 -05:00
Josh Adams
2e03486229 - Remove unused orientation parameters from GeneratePList, etc functions
#rb trivial
#preflight 63517e3e3d41a4455a390431

[CL 22661134 by Josh Adams in ue5-main branch]
2022-10-20 13:07:40 -04:00
calvin zheng
f3f22de9e3 Fix creating cpp projects cannot run editor correctly
#jira UE-166010
#rb Josh.Adams
#preflight 63488b173c37eed4811dd83e
#lockdown rolando.caloca

[CL 22537874 by calvin zheng in ue5-main branch]
2022-10-14 18:38:15 -04:00
calvin zheng
6300a2f9a3 Fix code sign error on QAGCookedEditor
#jira UE-165547
#preflight 633ef83fb20780acc19e2b7f
#rb rolando.caloca,josh.adams
#lockdown rolando.caloca

[CL 22388849 by calvin zheng in ue5-main branch]
2022-10-06 20:10:51 -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
Bertrand Carre
241e69db84 Mac: Allow to launch UE Editor through XCode without commandline
#jira none
#review-22029391 @Josh.Adams @Rafa.Lecina
#preflight 632482cc3752284a318025a7

[CL 22049175 by Bertrand Carre in ue5-main branch]
2022-09-16 10:30:38 -04:00
Josh Adams
47372e99ae - Better solution for Xcode 14 requiring plist file for Mac local signing:
* Remove the "Mac short circuit" blocks of code in the project generator as it was skipping the code that sets up PLIST and BUNDLE_IDENT settings (which Xcode14 will need)
* Point Xcode at the temp plist files that project generator makes
* Make sure to copy the final plist on top of the temp plist file so Xcode will pull that one into the .app at the end
#preflight 6323ef8b74361465143e1b86

[CL 22045794 by Josh Adams in ue5-main branch]
2022-09-15 23:54:29 -04:00
Josh Adams
6dc98e43ae - Fixed bad xcode project format, missing a "
#jira UE-163738
#rb trivial
#preflight skip

[CL 22015002 by Josh Adams in ue5-main branch]
2022-09-14 16:13:38 -04:00
josh adams
6ba6e383d9 - Fix xcode 14 for mac that needs a plist generated for it
#rb adam.king,zack.neyland
#jira UE-156920
#preflight 631fb26a551a6a2554c16e2a

[CL 21986553 by josh adams in ue5-main branch]
2022-09-13 13:16:01 -04:00
Josh Adams
97c6a662ae - Restored some behavior I had left commented out by mistake
#jira UE-161891
#preflight skip
#rb trivial

[CL 21544991 by Josh Adams in ue5-main branch]
2022-08-24 13:22:18 -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
Josh Adams
c038650013 - First version of support for allowing a project to have a template project that GenProjectFiles will merge the generated project into the template project to be the final project. This allows for standard Xcode poject setup for signing, extensions, asset catalogs, etc. There are alot of edge cases still to deal with (conflicting settings from UBT vs Xcode, moving more stuff out of UBT since Xcode can do it, stuff like that).
- The merging of xcode project files is done with PlistBuddy, but with the amount of operations we do now, it takes seconds to make one project. This will need to change
- This is still only enabled when GPF is run with -xcconfig
#rb self
#preflight skip

[CL 21322780 by Josh Adams in ue5-main branch]
2022-08-10 14:30:33 -04:00
UnrealBot
73409369c0 Branch snapshot for CL 21319338
[CL 21319338 in ue5-main branch]
2022-08-10 16:03:37 +00:00
Josh Adams
d80d08dc9e - Cleaned up Xcconfig file creation/writing (needed for re-using when using a Template project, which is coming up)
- Deleted remnants of Extension code
#rb self
#preflight skip

[CL 21274809 by Josh Adams in ue5-main branch]
2022-08-08 16:21:20 -04:00
Josh Adams
f2d201d09b - Rewrote the XcodeProjectFile class to not be spagetti of string maniuplation and guid passing [still requires opt-in via -xcconfig option to GenerateProjectFiles]
- Now each project node is its own class, and they can reference each other
- Projects with only one sub index target now have it rolled up into the main Index target
- Extension support is removed (will return later with an entirely new way to handle unique cases like that)

- Allowed an exception for UHT when disabling plugins on arm64, since Indexing needed the headers to have been generated
#rb self
#preflight skip

[CL 21269167 by Josh Adams in ue5-main branch]
2022-08-08 11:11:04 -04:00
Josh Adams
4a20becb00 - Moved everything over to .xcconfig files, with the exception of Extensions (a little-used IOS feature). It's possible, just not done yet, and is currently removed and will throw an exception
- Requires -xcconfig on the GenerateProjectFiles commandline
- Resurreceted the old non-xcconfig code in another namespace so that we can have both code paths side-by-side
- Had to change a little bit of XcodeProjectFileGenerator to manage the side-by-side classes
#preflight 62d61dbf164251d065b9388b

[CL 21164425 by Josh Adams in ue5-main branch]
2022-07-19 13:24:38 -04:00