Commit Graph

40 Commits

Author SHA1 Message Date
joe kirchoff
57a8fe409c UnrealBuildTool: Use expression body for simple properties and accessors
#rnx
#preflight 64766abcfe6a3b258a04cb50

[CL 25691579 by joe kirchoff in ue5-main branch]
2023-05-30 18:01:50 -04:00
Josh Adams
017c7ef4c5 - Allow a project file generator to create temporary primary projects (.sln, .xcworkspace, etc) in the Intermediate/ProjectFIles directory where the rest of the projects are created (the generator would need to not hardcode relative paths from parimary to sub projects)
#rb joe.kirchoff
#preflight 646fb3d68174dda722e93c2c

[CL 25629330 by Josh Adams in ue5-main branch]
2023-05-25 17:18:29 -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
cf110e2444 - Fixed codesigning of Content only projects
#jira UE-182870
#rb calvin.zheng
#preflight 643499034c3ccbbdf190f66b

[CL 24986156 by Josh Adams in ue5-main branch]
2023-04-10 19:24:00 -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
zack neyland
4a4cb1e663 - Fixed an issue with Xcode having stale bundle identifiers when codesigning BP projects (something old was being cached in Xcode's build cache, this change will force the bundle ID to be there so the cache won't cause problems)
#jira UE-174034
#rb adam.kinge
#preflight https://horde.devtools.epicgames.com/job/642ca39ef376ab43d2979d6c

[CL 24922333 by zack neyland in ue5-main branch]
2023-04-04 20:08:36 -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
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
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
Josh Adams
4d71a93586 - Added ability to have a IDE project for each Target (UnrealGame vs UnrealEditor) and remove the Type from the Configurations (Debug, Development, etc - no more Development Editor config)
- Enabled for Xcode, added support but left disabled for VisualStudio
- For Games and Samples with multiple projects, a solution folder now contains them
#rb joe.kirchoff
#preflight 63efb20061378b7ea02bc32d

[CL 24285567 by Josh Adams in ue5-main branch]
2023-02-17 12:53:28 -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
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
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
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
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00
Joe Kirchoff
82466ed8be UnrealBuildTool: Fix engine modules being filtered out of generated projects when programs should not be added
#jira UE-146426
#rnx
#rb trivial
#preflight 62338ddd0820efd0945ea479

[CL 19427071 by Joe Kirchoff in ue5-main branch]
2022-03-17 17:05:06 -04:00
dave hunter
25be456263 Engine targets for Mac installed builds
This forces UBT to always include an engine target for Mac installed builds

#jira UE-142717
#rnx
[REVIEW] [at]will.damon
#preflight none

#ROBOMERGE-AUTHOR: dave.hunter
#ROBOMERGE-SOURCE: CL 19247899 in //UE5/Release-5.0/... via CL 19251731
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)

[CL 19263217 by dave hunter in ue5-main branch]
2022-03-04 03:24:38 -05:00
jack porter
ba5e2d8634 Always include a UE5 target when generating an Xcode project file for a blueprint project for codesigning
#jira UE-132318
#rb Carl.Lloyd
[REVIEW]
#preflight NoneForApplePlatforms
[FYI] jonathan.adamczewski, will.damon

#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18901387 in //UE5/Release-5.0/... via CL 18901434 via CL 18901520
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v912-18901109)

[CL 18901521 by jack porter in ue5-main branch]
2022-02-08 09:13:59 -05:00
jonathan adamczewski
5c48869c86 UnrealBuildTool: rename MasterProject settings as PrimaryProject, and some other uses of 'master'
Variable, function and class renames only. XML-facing variables included deprecated support for the old names.

Renaming of the MasterProjectName.txt file will be handled in a subsequent change.

#jira none
#preflight 61d8a162ec35d1b940f74818

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 18550269 in //UE5/Release-5.0/... via CL 18550308
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18550325 by jonathan adamczewski in ue5-release-engine-test branch]
2022-01-07 15:40:01 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00