This will ensure that the next builds of these third-party libraries for macOS will
be built with 11.0 as the minimum deployment target, which conforms to the
VFX reference platform for CY2023 and CY2024.
#rb none
[CL 27563997 by matt johnson in ue5-main branch]
- 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]
This change updates the module rules for Boost to use the new 1.80.0 version
and includes a rebuild of USD that links the new version as well.
A subsequent change will remove the old build products for version 1.70.0.
#jira UE-163844, UE-156942
#rb daniel.coelho
#preflight 6372dfbdbf76990b712c9dbf, 6372e001953c19d435440402
[CL 23139880 by matt johnson in ue5-main branch]
This also updates the build script to make b2 generate universal binaries
directly rather than independently building for x86_64 and arm64 and
combining them in a post-process.
Note that depending on the system installation, the version of liblzma.dylib
found and used may or may not be a universal binary, so we disable
LZMA (used by Boost's iostream library) for now.
#jira UE-163844, UE-156942
#rb none
#preflight skip
[CL 22708220 by matt johnson in ue5-main branch]
This includes a few fixes and bits of cleanup for the build script
on Windows:
- Fixed the path to the Python interpreter in the user-config.jam
- Get the correct path to the script before shifting parameters
- Build inside the Boost directory rather than at the root of the workspace
- Redirect stderr as well as stdout to log files
- Build using MSVC 14.3
- Cleaned up the parameters passed to bootstrap.bat and b2.exe using
the same order as in the build scripts for the other platforms
- Build with the "--layout=tagged" option, which avoids needing to relocate
the headers after install. Note that this also changes the file names of the
built libraries and makes them consistent with the other platforms. The file
name change will be accounted for when the Boost.Build.cs is updated to
use this new build
- Updated usage to reflect the current version
Note that this includes only the header files and not any built libraries.
Subsequent changes will add the compiled libraries for Windows, Mac, and
Linux, followed by another change to update the module rules in Boost.Build.cs
that will put this new set of libraries into use with engine builds. The Boost
filesystem library was added as well in anticipation of possibly using features
in USD that might indirectly make use of it.
#jira UE-163844, UE-156942
#rb none
#preflight skip
[CL 22660562 by matt johnson in ue5-main branch]
The Linux arm64 build of Boost also uses the current v20_clang-13.0.1-centos7
toolchain rather than the old v19_clang-11.0.1-centos7 version.
#jira UE-148077
#rb brandon.schaefer
#preflight 631f6beda9331c69c3a3c541
[CL 21970754 by matt johnson in ue5-main branch]
Supporting Boost on Linux for arm64 architectures will require an arm64
build of the Boost libraries first.
#jira UE-148055
#rb brandon.schaefer
#preflight 624b38b5c51908059aeac22b
[CL 19612949 by matt johnson in ue5-main branch]
This mirrors similar changes done on Windows and Mac and adds a bash
script on Linux with the recipe for building USD and its supporting files using
CMake directly. This ensures that USD builds specifically against the
engine's versions of USD's library dependencies rather than having
USD's build script download and build its own versions. Some of the
manual steps involved in preparing a build of USD for installation in the
engine were rolled into this bash script. When the script completes, the
build products are mostly ready to be copied into place, although
plugInfo.json files will still need their LibraryPath to be adjusted.
Note that this does not yet add support for the usdAbc plugin, as
some additional Linux-specific issues need to be addressed first.
The usdAbc plugin is still only available on Windows and Mac for now.
These changes include the updates to the build process as well as a full
rebuild of USD for Linux built using this new setup. It also includes the
changes necessary to the Boost module rules in order to link against the
engine's version of Boost.
The version of USD remains unchanged here, and still represents USD
version 21.08, matching Windows and Mac.
#rb daniel.coelho, anousack.kitisa
#preflight 6244a7c48f06610224f9ceb6
[CL 19591291 by matt johnson in ue5-main branch]
The build script included here is largely a copy of the existing
build script for Mac, which was itself ported from the build script
for Windows, so its usage is similar.
The build products included here represent Boost version
1.70.0, the same version currently used on Windows and Mac.
Note that this does *not* include the update to the module rules
that would put this new set of libraries into use with engine builds.
That will be done in a subsequent change, since it will have to be
combined with a rebuild of USD, which is the main consumer of
the Boost libraries.
#rb michael.balzer
#preflight skip
[CL 19546691 by matt johnson in ue5-main branch]
This mirrors a similar change done on Windows and adds a bash script
on Mac with the recipe for building USD and its supporting files using
CMake directly. This ensures that USD builds specifically against the
engine's versions of USD's library dependencies rather than having
USD's build script download and build its own versions. Some of the
manual steps involved in preparing a build of USD for installation in the
engine were rolled into this bash script. When the script completes, the
build products are mostly ready to be copied into place, although
plugInfo.json files will still need their LibraryPath to be adjusted.
With that change in place, we can also now build the usdAbc plugin that
is included with USD which adds a file format plugin for reading Alembic
files via USD.
These changes include the updates to the build process as well as a full
rebuild of USD for Mac built using this new setup. It also includes the
changes necessary to the Boost module rules in order to link against the
engine's version of Boost.
The version of USD remains unchanged here, and still represents USD
version 21.08, matching Windows and Linux.
#rb daniel.coelho, anousack.kitisa
#preflight 621fc972f134125ae0aed638, 621fc99e257fd6e099786eb5
[CL 19230465 by matt johnson in ue5-main branch]
The build script included here is largely a port of the existing
build script for Windows, so its usage is similar. The one detail
that is unique to the Mac build script is that since it does not
currently appear to be possible to have the Boost build itself
generate universal binaries, we therefore have to run a build
for each of x86_64 and arm64 architectures and then combine
them into a set of universal binaries ourselves in a post-process.
The build products included here represent Boost version
1.70.0, the same version currently used on Windows.
Note that this does *not* include the update to the module rules
that would put this new set of libraries into use with engine builds.
That will be done in a subsequent change, since it will have to be
combined with a rebuild of USD, which is the main consumer of
the Boost libraries.
#rb michael.balzer, will.damon
#preflight 621eda79b20446f11c7ed147
[CL 19225365 by matt johnson in ue5-main branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
With USD rebuilt to depend on the "vc142" versions of the Boost
libraries, the "vc141" versions of the libraries are no longer used
and can be removed.
#rb michael.balzer
[FYI] jeanmichel.dignard
#ROBOMERGE-SOURCE: CL 17184718 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17184720 by matt johnson in ue5-release-engine-test branch]
This change replaces the USD shared libraries on Windows with
versions built using MSVC 1.42, updating their dependencies on
Boost to reflect the "vc142" versions of the Boost libraries.
There was no change to the version of USD used, so these libraries
still represent USD version 21.05, and the rebuild was only necessary
for Windows.
The Build.cs for the Boost UE module now looks for the "vc142"
versions of the Boost libraries.
#rb michael.balzer, jeanmichel.dignard
#preflight 611aba9d3a81b00001d61b30
#ROBOMERGE-SOURCE: CL 17184052 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17184058 by matt johnson in ue5-release-engine-test branch]
The default version of the compiler toolchain for the engine on Windows is
currently Visual Studio 2019 and MSVC 1.42, so this change sets up Boost
to build using that toolchain, and it adds versions of the compiled binaries
built using that toolchain.
Note that this change does *not* update the Boost Build.cs to look for these
new "vc142" versions of the libraries, nor does it remove the existing "vc141"
versions of the libraries. USD has a link dependency on Boost, so a subsequent
change will rebuild the USD libraries to update the dependencies, after which
it will be safe to remove the old "vc141" Boost libraries.
#rb michael.balzer
[FYI] jeanmichel.dignard
#preflight 6116ff37afd67e00019dc839
#ROBOMERGE-SOURCE: CL 17180084 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17180092 by matt johnson in ue5-release-engine-test branch]
Reviewed in 16615565 and 16616408.
#jira UETOOL-3730
#rb ryan.schmidt sebastien.lussier
#rnx
#ROBOMERGE-SOURCE: CL 16845132 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16845134 by michael balzer in ue5-release-engine-test branch]