Commit Graph

208 Commits

Author SHA1 Message Date
adam kinge
7ff5bbed17 During a RemoteMac tvOS build, the entitlement file is written during the stub ipa build which can confuse xcode, so just tell it to ignore the fact the file changed.
#jira UE-181206
#rb josh.adams, jack.porter
#rnx
#preflight 6434e1331b3664fdfa820ef3
#lockdown jack.porter

[CL 24991884 by adam kinge in ue5-main branch]
2023-04-11 11:30:01 -04:00
Josh Adams
1e6ed89565 - Frameworks working on Mac with Modern Xcode just like IOS frameworks
- Update frameworks with a Framework mode to differentiate between linking with it and copying to .app (in case of a static lib framework, or load-only dylib
- Updated CEF3 to work as a normal framework (if we have a universal framework binary, it would be simpler, because LoadInMain() would work without any paths)
#rb roman.dzieciol
#preflight 643484117536ac6b78ae7ce3

[CL 24985043 by Josh Adams in ue5-main branch]
2023-04-10 18:08:40 -04:00
Josh Adams
4c3471b8a7 - After staging, Modern xcode projects will build with stub xcode project to generate a complete .app in the root of the staging directory (tested Mac and IOS)
- Fixed up scripts for copying files into mac .app with modern xcode
- Changed bIncludeEngineSource being false to not remove game/samples/mods/etc from projects (only stub xcode projects set it to false, afaict)
#rb zack.neyland
#preflight 642cc4c21d19c0312af476c0

[CL 24922909 by Josh Adams in ue5-main branch]
2023-04-04 20:54:06 -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
Josh Adams
f650515e01 - Added a parameter to GenerateProjectFiles() to control if it generates the QueryTargets data for the editor (only the first project format needs to do this)
- Disabled it with IOS stub project gneeration that doesn't need the data (it can be slow)
#rb joe.kirchoff
#preflight 641a0b24ec01de1664e1bd7d

[CL 24738624 by Josh Adams in ue5-main branch]
2023-03-21 16:17:30 -04:00
Josh Adams
b4b338d4c6 - Removing deprecated IOS bitcode support
#rb adam.kinge
#preflight 640fc449c41a0a2a77e96181

[CL 24643143 by Josh Adams in ue5-main branch]
2023-03-14 16:15:23 -04:00
Ben Marsh
7e26c34d2b EpicGames.Core: Deprecate legacy log methods to prefer structured logging interface.
#preflight 640a23d928026468d9de7cbd

[CL 24580590 by Ben Marsh in ue5-main branch]
2023-03-09 14:51:40 -05:00
Josh Adams
0842a7adb3 - Added Framework support in Modern Xcode projects - this will copy and code sign frameworks directly via Xcode, instead of UBT doing it
#rb zack.neyland
#preflight 64078e282559570cc7f40fe2

[CL 24545611 by Josh Adams in ue5-main branch]
2023-03-07 14:28:06 -05:00
axel riffard
890a90159e Fix iOS BP only builds on Windows
#jira UE-176987
#rb josh.adams
#preflight 63fec600437ce3e7f3ca8195

[CL 24457400 by axel riffard in ue5-main branch]
2023-02-28 22:41:22 -05:00
Josh Adams
c27379e9d2 Modern xcode changes
- .app is now fully made by Xcode, not partially by UBT/UAT (exe is copied into .app via shell script, and "cookeddata" is a folder reference in the Xcode proejct - for IOS/TVOS only for now)
- Updated how metadata files are found in the Metadata class, and template plist files are now called Info.Template.plst
- A prebuild script does some prep work to help with Xcode and UBT interaction, and the way our legacy build locations mess with Build after Archive
- Fixed some ".app" issues where the PRODUCT_NAME was missing
#rb self
#preflight 63f8fed82b1a2765f986f63f

[CL 24404636 by Josh Adams in ue5-main branch]
2023-02-24 13:35:13 -05:00
joe kirchoff
3c3baf04d1 UnrealBuildTool: Return target file from GetCompileArguments_FileType rather then getting it from the ProducedItem list
#rnx
#rb trivial
#preflight 63e6875a211c20974fefc76f

[CL 24136563 by joe kirchoff in ue5-main branch]
2023-02-11 12:26:49 -05:00
Joe Kirchoff
49941df8c8 UnrealBuildTool: Prevent multiple target leaking bundle dependencies on Mac
#rnx
#rb Josh.Adams
#preflight 63d1978cbe435f17b408210c
#preflight 63d1af24be435f17b40e38f4

[CL 23858824 by Joe Kirchoff in ue5-main branch]
2023-01-25 17:55:46 -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
Joe Kirchoff
4a262359a0 UnrealBuildTool: Store Action file lists in SortedSets rather than Lists, since these collections should never have duplicate entries and sorting them helps when checking for action conflicts
Requires implementing IComparable\IEquatable in FileItem (and I also implemented them in DirectoryItem for consistency)

#rnx
#rb Tim.Smith
#preflight 63c1cce4a06ab115ea17ba4f
#preflight 63c70f4d7763631ba15486ea

[CL 23745743 by Joe Kirchoff in ue5-main branch]
2023-01-17 16:35:14 -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
b337b06556 - Allow for a platform to compile for multiple architectures, and have the high-level compile separately, and then link not separately (this means we can't use the one-target-per-architecture stuff that is already present)
- Mac changes to compile separately,  but link together (with lipo) after making two .dylibs/executables
- Removed FixDylibDependencies on Mac by making "stub dylibs" to mimic what Windows does with import libs, to solve circular dependencies
- Added DependenciesToSkipByArchitecture to ModuleRules that is used, when making a new single-arch LinkEnvironment from a multi-arch LinkEnvironment, to strip out libraries, etc, that should not be included with that single architecture
#preflight 6387891b4004f73f623c85a0
#rb zack.neyland

[CL 23336522 by Josh Adams in ue5-main branch]
2022-11-30 13:38:45 -05:00
axel riffard
9412e8c6c2 Cleanup Clang check for older XCode versions
#rb dmitriy.dyomin
#jira UE-168436
#preflight none

[CL 23256760 by axel riffard in ue5-main branch]
2022-11-24 02:06:41 -05:00
Rafa Lecina
4e08b2ba53 Add support for XCFramework to UBT on iOS
#jira UE-168983
#review-23009903 @Sam.Zamani @Bertrand.Carre @Chris.Varnsverry @Roman.Dzieciol @Josh.Adams @Jack.Porter
#preflight

[CL 23133403 by Rafa Lecina in ue5-main branch]
2022-11-15 04:20:41 -05: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
axel riffard
c64aa2de93 Catalina, iOS 14 removal
Metal 2.3 removed, Metal 3.0 added for Mac

#jira UE-163352
#rb adam.kinge bertrand.carre
#preflight 631ea7eb94758d0bf2008668

[CL 21960671 by axel riffard in ue5-main branch]
2022-09-11 23:47:08 -04:00
Josh Engebretson
842674765e Another fix for build in ios toolchain
#jira none
#preflight none
#rnx

[CL 21547939 by Josh Engebretson in ue5-main branch]
2022-08-24 14:39:35 -04:00
Josh Engebretson
197c89818a Fix issue with ios logger to unblock builds
#fyi josh.adams
#jira none
#preflight none

[CL 21547692 by Josh Engebretson in ue5-main branch]
2022-08-24 14:30:48 -04:00
Josh Adams
f9d61b7246 - Fixed a bug with stub IPAs
- Re-disabled automatic code signing
#rb trivial
#preflight skip

[CL 21547157 by Josh Adams in ue5-main branch]
2022-08-24 14:11:33 -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
fb0b2693d2 UnrealBuildTool: Revert ios linker arg to -Wl-no_pie
#rnx
#rb trivial
#preflight skipped

[CL 21065841 by Joe Kirchoff in ue5-main branch]
2022-07-12 19:39:52 -04:00