Commit Graph

22 Commits

Author SHA1 Message Date
matt johnson
57386f110f VFX Reference Platform Libs: bump macOS deployment target to 11.0 in build scripts
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]
2023-09-01 15:35:39 -04: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
Brandon Schaefer
27083c10d6 Cherry pick a change to boost from 1.81 to correct setup defines to avoid using std::unary_function which is deprecated and removed std
f0af4a9184

#jira UE-174139
#preflight 63c1aae170575f8900501a8f
#rb Steve.Robb, Matt.Johnson

[CL 23684135 by Brandon Schaefer in ue5-main branch]
2023-01-13 14:46:31 -05:00
matt johnson
2975984b81 Boost: remove build products for old 1.70.0 version
#jira UE-163844, UE-156942
#rb none
#preflight 6373e42f32484253053de24f

[CL 23140835 by matt johnson in ue5-main branch]
2022-11-15 14:57:20 -05:00
matt johnson
06820943fd Boost, USD: activate Boost version 1.80.0
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]
2022-11-15 14:06:09 -05:00
matt johnson
a406b109cb Boost: add compiled libraries for Linux for Boost version 1.80.0
#jira UE-163844, UE-156942
#rb none
#preflight skip

[CL 23130564 by matt johnson in ue5-main branch]
2022-11-14 19:25:30 -05:00
matt johnson
859ea412bb Boost: add compiled libraries for Mac for Boost version 1.80.0
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]
2022-10-21 23:06:19 -04:00
matt johnson
1dcfab3b66 Boost: add compiled libraries for Windows for Boost version 1.80.0
#jira UE-163844, UE-156942
#rb none
#preflight skip

[CL 22661447 by matt johnson in ue5-main branch]
2022-10-20 13:16:51 -04:00
matt johnson
908d2490f9 Boost: update Windows build script and add header files for Boost version 1.80.0
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]
2022-10-20 12:53:38 -04:00
matt johnson
45b40b06ae Boost: update build script, add build products, and adjust module rules to support arm64 architecture on Linux
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]
2022-09-12 15:36:15 -04:00
matt johnson
4130d2a524 Boost: only add Boost libraries for x64 platforms on Linux
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]
2022-04-04 14:37:44 -04:00
matt johnson
5494b43579 USD: build using CMake directly on Linux
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]
2022-04-01 13:24:25 -04:00
matt johnson
e7799e9a24 Boost: add build script and build products for Linux
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]
2022-03-29 14:44:27 -04:00
matt johnson
f742de537f USD: build using CMake directly on Mac and add usdAbc plugin
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]
2022-03-02 16:59:41 -05:00
matt johnson
aa830e7347 Boost: add build script and build products for Mac
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]
2022-03-02 14:03:26 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
matt johnson
bb782ec5eb Boost: remove MSVC 1.41 versions of the libraries
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]
2021-08-16 19:59:19 -04:00
matt johnson
d568360153 USD: rebuild USD v21.05 using MSVC 1.42
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]
2021-08-16 19:05:54 -04:00
matt johnson
1c67843a3f Boost: build the libraries using MSVC 1.42 to align with engine standard
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]
2021-08-16 15:17:35 -04:00
michael balzer
3cb43fd8e4 USDImporter: Use Boost and TBB from general TPS folder; remove copy of Boost libraries within the USD importer folders.
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]
2021-07-13 20:38:43 -04:00
michael balzer
6b2c6fa6dd ThirdPartySoftware: Add Boost-1.70.0 with built libraries for atomic, chrono, iostreams, python37, regex, system, thread; this is a required dependency for USD and OpenVDB.
#jira UETOOL-3730
#rb ryan.schmidt sebastien.lussier
#rnx

#ROBOMERGE-SOURCE: CL 16841058 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16841072 by michael balzer in ue5-release-engine-test branch]
2021-07-13 15:17:03 -04:00
michael balzer
cbc8c72696 ThirdPartySoftware: Add Win64 scripts for downloading and building Boost.
#jira UETOOL-3730
#rb ryan.schmidt sebastien.lussier
#rbx

#ROBOMERGE-SOURCE: CL 16840982 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16841009 by michael balzer in ue5-release-engine-test branch]
2021-07-13 15:11:13 -04:00