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 removes the hard-coded (and incorrect) paths to the libc++ and libc++abi
static libraries in favor of just using the already provided library path and the library
names with the '-l' option.
#rb none
#preflight skip
[CL 19545833 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]
In earlier versions, the HDF5 and Alembic build scripts took care of the build
and install steps, but that left the build products in a state where they still
needed to be rearranged manually to remove unnecessary files and organized
into the directory structure that the Alembic.Build.cs expected.
With these changes, HDF5VS.bat and AlembicVS.bat now take care of that
final deployment step as well. They will also handle removing the existing
deployment beforehand. The build, installation, and deployment of each of
HDF5 and Alembic are now fully encapsulated in their respective scripts, and
they invoke the compiler through CMake rather than by directly calling MSBuild.
The "top-level" abc.bat script now simply runs HDF5VS.bat followed by AlembicVS.bat.
If run independently, AlembicVS.bat will verify that it is only run after a successful
run of HDF5VS.bat, since the Alembic build depends on HDF5 being available in
the typical installation directory structure where the "include" and "lib" directories
are siblings.
Finally, the files generated by the build and install steps are created in the
"Intermediate" directory of the module to make clear that they are fully disposable
and safe to remove.
Going through this process helped detect that the main hdf5.h header file was not
being deployed from the installation, so although it is not currently used, it is added
here for completeness.
#rb anousack.kitisa
#ROBOMERGE-AUTHOR: matt.johnson
#ROBOMERGE-SOURCE: CL 17463680 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17463766 by matt johnson in ue5-release-engine-test branch]
#rb anousack.kitisa
#ROBOMERGE-AUTHOR: matt.johnson
#ROBOMERGE-SOURCE: CL 17463378 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17463758 by matt johnson in ue5-release-engine-test branch]
We continue to output the build products to a "2015" directory, since
WindowsTargetRules.GetVisualStudioCompilerVersionName() will still report that
value for Visual Studio 2017, 2019, and 2022, as they should all be backwards
compatible.
This change also configures the build to write files to a "deploy" directory for consistency
with the Linux and Mac builds. After building, header files and libraries should then be
copied from there into the "AlembicDeploy" directory, which is where AlembicLib.Build.cs
looks for them. The file and directory paths in all batch scripts were also changed to use
Windows-style paths with backslashes.
#rb anousack.kitisa
#preflight 612d17a1e68f05000143b702
#ROBOMERGE-SOURCE: CL 17392644 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17392652 by matt johnson in ue5-release-engine-test branch]
This includes a change to configure the build to write files to a "deploy" directory for
consistency with the Mac and Windows builds. After building, libraries should then be
copied from there into the "AlembicDeploy" directory, which is where AlembicLib.Build.cs
looks for them.
Alembic expects to find the HDF5 library with a "lib" prefix, and the HDF5 build script
was already configured correctly for this. The existing library file was renamed to
include the "lib" prefix (and the "-static" suffix, which the build also appends), and the
AlembicLib.Build.cs was updated to look for the library file with this name.
#rb anousack.kitisa
#ROBOMERGE-SOURCE: CL 17392559 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17392592 by matt johnson in ue5-release-engine-test branch]
Alembic expects to find the HDF5 library with a "lib" prefix, and the HDF5 build script
was already configured correctly for this. The existing library file was renamed to
include the "lib" prefix and the AlembicLib.Build.cs was updated to look for the library
file with this name.
#rb anousack.kitisa
#preflight 612d47f76a14cc000124dc07
#ROBOMERGE-SOURCE: CL 17392473 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17392503 by matt johnson in ue5-release-engine-test branch]
Since the Alembic libraries are currently built statically, there are no runtime paths
embedded in the object files that need updating, so the entire "Alembic" directory including
the source and the build products can be picked up and moved out of the AlembicImporter
plugin and into the Engine/Source/ThirdParty area. The "AlembicLib" module will now be
found there rather than inside "AlembicImporter".
The only modified file here is the .tps file to adjust the path to reflect the new source
location. Other than that, the rest of the changes here are all file moves.
Subsequent changes will update the build scripts for Linux, Mac, and Windows to ensure
that rebuilding HDF5 and Alembic work properly on all platforms. Some additional repairs
are needed there after external dependencies have been moved or changed.
#rb anousack.kitisa, jeanmichel.dignard
#preflight 61283f23c068e50001db4bac
#ROBOMERGE-SOURCE: CL 17353913 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17353925 by matt johnson in ue5-release-engine-test branch]