Commit Graph

127 Commits

Author SHA1 Message Date
Josh Adams
b770627288 - FIxed the --delete mode in rsync to not delete extra files when staging in Modern xcode
#rb adam.kinge (tested)
#preflight 64711ae3c109725039db5692

[CL 25652919 by Josh Adams in ue5-main branch]
2023-05-26 17:18:47 -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
Tim Smith
8ea4145e2c Fix issue with UBT where the UE_TARGET_NAME isn't the actual target name. This resulted in HotReload and Live Coding to no longer work when used with a non-unity build.
#rb joe.kirchoff
#rnx
#preflight 646e55766c2a2532b1f15a72

[CL 25609152 by Tim Smith in ue5-main branch]
2023-05-24 14:31:06 -04:00
joe kirchoff
a53dc3cf98 Prevent fatal error when generating projects if there's an error creating the TargetRules that can be ignored
#rnx
#rb trivial

[CL 25515660 by joe kirchoff in ue5-main branch]
2023-05-17 16:22:48 -04:00
calvin zheng
37ed928387 Modern Xcode: using copies of info.plist instead of using the original
#jira n/a
#rb Josh.Adams
#preflight 645bfcdb2965f6ea8e441d2d

[CL 25416509 by calvin zheng in ue5-main branch]
2023-05-10 16:53:20 -04:00
Josh Adams
703f9af2a7 - Error out when building Mac/IOS modern .app if no cooked&staged data is found (for non-editor, non-program projects)
- Fixed an issue where it would skip running the PostBuild stuff if it fails during the pulling in staged directory step
#preflight 6451033b0722d4f6a28bf138

[CL 25300116 by Josh Adams in ue5-main branch]
2023-05-02 08:43:19 -04:00
Josh Adams
c3d20c01c5 - Workaround to get engine source code in IOS projects (force the UnrealEditor project in the worksapce, but as a "stub" project)
#rb adam.kinge
#preflight 644ac0c71150e908d041eb67

[CL 25220918 by Josh Adams in ue5-main branch]
2023-04-27 14:55:24 -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
97fae42953 - Fixed QuickLaunch for IOS working with Modern xcode
- No longer try to grab the output from IOS with QuickLaunch as idevicedebug is killing the app too quickly
- The modern Staged directory can now be shared between Development/Shipping/etc, for grabbing any non-Framework .dylibs (like steam)
- Removed the extra --generate-entitlements-der option now that Xcode also always adds it
#preflight 6447d49a024bc608e64072f9
#rb adam.kinge
#preflight 6447d6643d1be392df890776

[CL 25179459 by Josh Adams in ue5-main branch]
2023-04-25 09:51:37 -04:00
Josh Adams
39fe150f8f - Fixed FilePath properties with new XcodeProjectSettings class
#fyi calvin.zheng
#rb trivial
#preflight skip
#preflight 644737cbc632d1e89b7cd072

[CL 25174859 by Josh Adams in ue5-main branch]
2023-04-24 22:29:57 -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
cb2b0999c1 - Allow modern xcode indexing of files in modules that are fully under another platform (like /IOS/IOSTargetPlatform), but disallow platform files in a shared module (Core/Private/IOS/IOSPlatformFile.cpp)
#rb adam.kinge
#preflight skip

[CL 25150056 by Josh Adams in ue5-main branch]
2023-04-21 14:24:44 -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
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
calvin zheng
10eb3b947a Revert the change of c++11 narrowing warning, it was still erroring
#rb Zack.Neyland
#preflight n/a

[CL 24827082 by calvin zheng in ue5-main branch]
2023-03-28 17:20:47 -04:00
calvin zheng
71db51d18d fix system include which caused some files fail to index, also disable all warnings for index
#rb Josh.Adams
#preflight n/a

[CL 24762977 by calvin zheng in ue5-main branch]
2023-03-23 11:58:01 -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
calvin zheng
1b8a9d80ff Disable Xcode header map and a specific C++11 warning. Now almost all files can be compiled for indexing, only 10 files still has errors
#rb Josh.Adams
#preflight n/a

[CL 24725055 by calvin zheng in ue5-main branch]
2023-03-20 17:59:51 -04:00
calvin zheng
a5b5b75c1d Fix typo that flipped -frtti and -fno-rtti
#rb Josh.Adams
#preflight n/a

[CL 24692605 by calvin zheng in ue5-main branch]
2023-03-17 14:00:11 -04:00
calvin zheng
4e184cbeff Use direct include in Mac indexing response files, this resolves majority of indexing compile fails.
#rb Josh.Adams
#preflight n/a (not affecting Horde build)

[CL 24678182 by calvin zheng in ue5-main branch]
2023-03-16 16:11:38 -04:00
Josh Adams
297f950d3b Modern Xcode changes
- Removed Payload from IOS Binaries subdir (this is needed for archiving envvar changes below)
- IOS .app's now have decorated names (QAGame-IOS-Debug.app)
- Archiving works now, with dSYMs, for all platforms, and can be uploaded directly to app store in xcode
- Updated some envvars, main thing is no longer overriding BUILD_CONFIGURATION_DIR because it breaks Archiving
- No longer force dsym generation in UBT when building shipping (in modern) because xcode will do it now when archiving (will make iterating on Shipping much faster now!)
#rb roman.dzieciol
#preflight 6410e097290c6e5d77171aee

[CL 24644843 by Josh Adams in ue5-main branch]
2023-03-14 17:22:48 -04:00
Josh Adams
67a4d5a6c3 - Big cleanup of Modern mode to simplify the .xcconfig files, and the generating code, as well as moveing less used stuff to other files
#rb zack.neyland
#preflight 640ba2b3482188d7105847b8

[CL 24598221 by Josh Adams in ue5-main branch]
2023-03-10 16:46:12 -05: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