Commit Graph

39 Commits

Author SHA1 Message Date
josh adams f6381544e2 - Allow a project to override the Main SDK version for a platform (the platform's project Engine.ini would set
[OverrideSDK]
  SDKVersion=x.y.z
and AutoSDK, or anything using GetMainVersion(), would use that version string instead
- If multiple targets are built in one run of UBT/UAT, it will error out because there is no support to switch SDKs (and builds happen in parallel, etc)
- This is not a complete solution, because it can cause problems with shared tools like ShaderCompileWorker, when different projects are on different SDKs and they have one SCW to share
- Renamed GetMainVersion to GetMainVersionInternal(), and wrapped that in a new non-vitual GetMainVersion() that calls GetMainVersionInternal() (and handles the ini overrides)
#rb david.harvey,dave.barrett
#jira UE-185364
#preflight 647a12e7b0670733186c928e

[CL 25767233 by josh adams in ue5-main branch]
2023-06-02 13:42:59 -04:00
joe kirchoff 36d266e932 UnrealBuildTool: Automated code cleanup
#rnx
#preflight 6476799e947ff6973c225619

[CL 25693241 by joe kirchoff in ue5-main branch]
2023-05-30 18:38:07 -04:00
LennardF1989 9a67525476 PR #8239: Support for project-specific BuildConfiguration.xml and Programs during project file generation (Contributed by LennardF1989)
Contains some additional changes from Joe.Kirchoff:
* Fix project dependency for rules parent chain
* Always add UnrealBuildTool and AutomationTool .csproj for game targets -except-
* Filter out other non-critial .csproj unless engine programs are included

#jira UE-120122
#jira UE-176963
#preflight 6413c6668354cad0facc7388

[CL 24690813 by LennardF1989 in ue5-main branch]
2023-03-17 12:14:26 -04:00
Joe Kirchoff ddcb912fe5 UnrealBuildTool: Remove CanUseParallelExecutor as it is no longer needed as the UAT ParallelExecutor has been removed and is obsolete.
#rnx
#rb trivial
#preflight 63fe749add78dd50f6247b02

[CL 24452546 by Joe Kirchoff in ue5-main branch]
2023-02-28 17:01:41 -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
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
Josh Adams 1e0b0a3eff - Added GetProjectArchitectures, which UBT will use to determine the architecture to build with when -architecture is not specified (UEBuildMac is now using it to control architectures for programs/projects)
- Changed the very high level loop over targets and architectures to move the Architecture as innermost loop - this allows each target to compile with different architectures in the case of mutli-target compiling
- Added [Editor]DefaultArchitecture to Mac ini's - the [Editor]TargetArchitecture property is now what the target _supports_, and Default is what it will be built with if no architecture is specified (usually will be "Host" to indicate that whatever the current host platform is will be what is compiled. "All" can be used to compile Fat binaries by default.
- Updated the LinkEnvironment constructor that takes another LinkEnvironment and an Architecture, to filter the input files for that architecture, and removed the similar code from MacToolchain
- Updates for Programs for Mac compilation, either:
  -  Adding an .ini and a .uproject files - programs need a .uproject for UBT to be able to find their Config directory in a standard way)
  - Marking the Target as not supporting Mac (some programs call Windows code directly)
  - Updating libs to be fat (intel+arm)
#rb david.harvey
#preflight 638e47395624e6da5e9658d6

[CL 23397419 by Josh Adams in ue5-main branch]
2022-12-05 14:57:26 -05:00
UnrealBot 73409369c0 Branch snapshot for CL 21319338
[CL 21319338 in ue5-main branch]
2022-08-10 16:03:37 +00: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
jonathan adamczewski c1bb6901bf Upgrade to .NET 6.0
#jira UE-119846
#preflight 624cbb2ecc0872e96b0d5181

[CL 19652696 by jonathan adamczewski in ue5-main branch]
2022-04-06 14:46:50 -04:00
jonathan adamczewski 5c68d1d9ef Revert //UE5/Main/... changelist 19531725 - return to NET Core 3.1
#preflight 62422fd0470aff98e946bfce
#jira UE-119846

[CL 19534572 by jonathan adamczewski in ue5-main branch]
2022-03-28 18:25:19 -04:00
jonathan adamczewski 18ac15cbb1 Upgrade to .NET 6.0
#jira UE-119846
#preflight 6241fc06470aff98e943c035

[CL 19531725 by jonathan adamczewski in ue5-main branch]
2022-03-28 15:30:56 -04: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
Ben Marsh 6f927647b1 Changing C# code over to using EpicGames.Core over DotNETCommon.
#rb none
#rnx

[CL 14962096 by Ben Marsh in ue5-main branch]
2020-12-21 23:07:37 -04:00
Ben Marsh 68f5abeb09 UBT: Convert UnrealBuildTool to use nullable references.
#rb none
#rnx

[CL 14960546 by Ben Marsh in ue5-main branch]
2020-12-20 18:47:42 -04:00
Ben Marsh 83f27d27e9 UBT: Mark platforms and project file generation code as not nullable aware.
#rb none
#rnx

[CL 14960496 by Ben Marsh in ue5-main branch]
2020-12-20 17:32:59 -04:00
Josh Adams b7ae971259 - Renamed a poorly named PlatformSDK function for AutoSDK (GetDesiredVersion -> GetMainVersion)
- Now allow AutoSDK directory name and internal version to be separate (Android only using this for now)
- Some code cleanup with associated functions

[CL 14283427 by Josh Adams in ue5-main branch]
2020-09-09 15:45:53 -04:00
Marc Audy 7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
andrew grant f677f27652 Check if the XGE service is running as part of the availability check.
UE4Build / BuildCookRun doesn't check BuildConfiguration.xml* before initiating builds so people who have the IB service installed but disabled will see builds sent to XGE that fail with "Failed to connect to Build Service (on local machine)".

#tests ran BuildCookRun -build with and without the XGE agent service disabled.Verified that builds fell back to local execution with the service disabled and still attempted XGE builds with it enabled.

[REVIEW] [at]ben.marsh
#rb swarm


#ROBOMERGE-SOURCE: CL 12357374 via CL 12357377 via CL 12357379 via CL 12357386
#ROBOMERGE-BOT: (v671-12333473)

[CL 12369934 by andrew grant in Main branch]
2020-03-23 10:37:35 -04:00
Ryan Durand 9ef3748747 Updating copyrights for Engine Programs.
#rnx
#rb none
#jira none

#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869242 in //Fortnite/Release-12.00/... via CL 10869536
#ROBOMERGE-BOT: FORTNITE (Main -> Dev-EngineMerge) (v613-10869866)

[CL 10870955 by Ryan Durand in Main branch]
2019-12-26 23:01:54 -05:00
Ben Marsh 2aff13a3b8 Add functionality to allow querying the available targets for a project from the editor, and use it to allow packaging client and server targets from the "Package Project" menu.
#rb none

[CL 7950582 by Ben Marsh in Dev-Build branch]
2019-08-12 11:21:45 -04:00
Ben Marsh 6174183342 UBT: Improve performance of source file discovery within UBT (removing duplicate file enumeration, add caching, filter files at the point of discovery).
#rb none
#rnx

[CL 4670295 by Ben Marsh in Dev-Build branch]
2018-12-19 11:58:30 -05:00
Ben Marsh 530369c613 Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none
#rnx

[CL 4662695 by Ben Marsh in Dev-Build branch]
2018-12-14 14:49:12 -05:00
Ben Marsh a9f52df04e UBT: Move UnrealBuildTool.RegisterAllUBTClasses() to UEBuildPlatform.RegisterPlatforms().
#rb none
#rnx

[CL 4644163 by Ben Marsh in Dev-Build branch]
2018-12-09 11:05:31 -05:00
Ben Marsh 0f022f2f46 Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none

[CL 4502641 by Ben Marsh in Dev-Build branch]
2018-10-24 13:03:31 -04:00