- Python to 3.11.8
- OpenSubdiv to 3.6.0
- OpenUSD to 24.03
- Boost to 1.82
PythonFoundationPackages has been converted to pip-installer version, and dependencies updated against Python update
#Jira UE-210678
#rb mark.winter matt.johnson brooke.hubert
[CL 32683637 by brooke hubert in ue5-main branch]
Temporarily reactivating Boost 1.80.0 and reverting OpenUSD to
version v23.08 while we investigate OpenUSD address sanitizer
issues on Linux.
#jira UE-191971, UE-199133, UE-201662, UE-201819
[FYI] matt.johnson, james.singer, brandon.schaefer, anousack.kitisa, daniel.coelho
Original CL Desc
-----------------------------------------------------------------
OpenUSD, Boost: upgrade OpenUSD version to v23.11 and activate Boost version 1.82.0
This change updates the module rules for Boost to use the new 1.82.0 version
and includes an upgrade build of OpenUSD that links the new version as well.
A subsequent change will remove the old build products for Boost version 1.80.0.
#jira UE-199133, UE-191971
#rb daniel.coelho
[CL 30166539 by matt johnson in ue5-main branch]
Temporarily restoring Boost 1.80.0 build while we investigate
OpenUSD address sanitizer issues on Linux.
#jira UE-191971, UE-201662, UE-201819
[FYI] matt.johnson, james.singer, brandon.schaefer
Original CL Desc
-----------------------------------------------------------------
Boost: remove build products for old 1.80.0 version
#jira UE-191971
[CL 30158543 by matt johnson in ue5-main branch]
This change updates the module rules for Boost to use the new 1.82.0 version
and includes an upgrade build of OpenUSD that links the new version as well.
A subsequent change will remove the old build products for Boost version 1.80.0.
#jira UE-199133, UE-191971
#rb daniel.coelho
[CL 30015124 by matt johnson in ue5-main branch]
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.
#jira UE-191971
[CL 29894995 by matt johnson in ue5-main branch]
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]