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]
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, though this Linux build script
takes an additional architecture argument.
The build products included here represent Blosc version
1.21.0, the same version currently used on Windows and Mac.
A subsequent change will update the module rules to put this new
set of libraries into use with engine builds.
#jira UE-153244
#rb brandon.schaefer
#preflight 6297caa59907cbadba9ad507
[CL 20560179 by matt johnson in ue5-main branch]
#jira UE-153244
#rb none
#preflight 628ee76ac826bd5a7f261654, 628ee895e746de49610cbf24
#fyi devon.penney
[CL 20380557 by matt johnson in ue5-main branch]
The build scripts included here are largely copies of the existing
build scripts for Windows, so their usage is similar.
The build products included here represent Blosc version 1.21.0
and OpenVDB 8.1.0, the same versions currently used on Windows.
A subsequent change will update the module rules to put this new
set of libraries into use with engine builds.
#jira UE-153244
#rb none
#preflight 628c1d8905113038b4af0d2c
#fyi devon.penney
[CL 20375476 by matt johnson in ue5-main branch]
This avoids issues where if OpenVDB is dynamically linked, objects
allocated using the instance of the CRT in OpenVDB might be passed
across a shared library boundary where they could then be attempted to
be freed using the UE deallocator, leading to crashes.
Note that OpenVDB makes use of both RTTI and C++ exceptions, so
client modules of OpenVDB should likely enable both of those features
as well.
#jira UE-139647
#rb brandon.schaefer, michael.balzer
#preflight 627ab3ece713fc6e2c581250
#fyi devon.penney
[CL 20173502 by matt johnson in ue5-main branch]
Note that because the engine already embeds its own version(s) of LZ4
which is bundled with Blosc, we apply a patch to the Blosc source that
prepends a prefix to all of the non-static and non-inlined functions in Blosc's
embedded version of LZ4. This ensures that the LZ4 symbols introduced by
Blosc do not collide with those in the engine when building monolithically.
A subsequent change will activate this new version of Blosc and include a
rebuild of OpenVDB which uses it, followed by another change that removes
the old build products for version 1.5.0.
#jira UE-139647
#rb josh.adams
#preflight 627978609c764d1f1e7c11c2
[CL 20127234 by matt johnson in ue5-main branch]
This change includes just the source code pulled directly from the
Blosc c-blosc project on GitHub. A subsequent change will update
the build script, add the build products, and update the module rules
for using this new version of Blosc in the engine.
#jira UE-139647
#rb michael.balzer
#preflight 627603d63e2a7841b514099a
[CL 20106120 by matt johnson in ue5-main branch]