Skip to content

Commit e9eee4b

Browse files
authored
Merge pull request #1691 from CesiumGS/ue56
Add support for Unreal Engine 5.6
2 parents 946dc2b + 7d009b3 commit e9eee4b

File tree

7 files changed

+144
-7
lines changed

7 files changed

+144
-7
lines changed

.github/actions/install-unreal-windows/action.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,14 @@ runs:
2929
run: |
3030
7z x -mmt=8 "D:/Program Files/Epic Games/UE.zip" "-oD:/Program Files/Epic Games/"
3131
del "D:/Program Files/Epic Games/UE.zip"
32-
- name: Install Unreal Engine
32+
- name: Install Unreal Engine (older versions)
33+
if: ${{ inputs.unreal-program-name != 'UE_5.6' }}
3334
shell: pwsh
3435
run: |
3536
Start-Process "D:/Program Files/Epic Games/${{ inputs.unreal-program-name }}/Engine/Extras/Redist/en-us/UEPrereqSetup_x64.exe" -Args "-q" -Wait
37+
- name: Install Unreal Engine (5.6+)
38+
if: ${{ inputs.unreal-program-name == 'UE_5.6' }}
39+
shell: pwsh
40+
run: |
41+
Start-Process "D:/Program Files/Epic Games/${{ inputs.unreal-program-name }}/Engine/Extras/Redist/en-us/vc_redist.x64.exe" -Args "-q" -Wait
42+

.github/workflows/build.yml

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,3 +390,121 @@ jobs:
390390
test-package-base-name: "CesiumForUnreal-55"
391391
visual-studio-version: "2022"
392392
visual-studio-components: "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64,Microsoft.VisualStudio.Component.Windows11SDK.22621"
393+
Windows56:
394+
uses: ./.github/workflows/buildWindows.yml
395+
secrets: inherit
396+
with:
397+
runner-label: "windows-2022"
398+
unreal-engine-version: "5.6.0"
399+
unreal-engine-zip: "s3://cesium-unreal-engine/5.6.0/UE_5.6.zip"
400+
unreal-program-name: "UE_5.6"
401+
upload-package-base-name: "CesiumForUnreal-56-windows"
402+
# These are specified in the Unreal Engine release notes under "IDE Version the Build farm compiles against"
403+
# and using them ensures we're compiling our plugin in the exact same way that Unreal Engine itself is compiled.
404+
cmake-generator: "Visual Studio 17 2022"
405+
cmake-toolchain: "version=14.38"
406+
cmake-platform: "x64,version=10.0.22621.0"
407+
visual-studio-version: "2022"
408+
visual-studio-components: "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64,Microsoft.VisualStudio.Component.Windows11SDK.22621"
409+
TestWindows56:
410+
needs: [Windows56]
411+
uses: ./.github/workflows/testWindows.yml
412+
secrets: inherit
413+
with:
414+
runner-label: windows-2022
415+
unreal-engine-zip: "s3://cesium-unreal-engine/5.6.0/UE_5.6.zip"
416+
unreal-program-name: "UE_5.6"
417+
test-package-base-name: "CesiumForUnreal-56-windows"
418+
Android56:
419+
uses: ./.github/workflows/buildAndroid.yml
420+
secrets: inherit
421+
with:
422+
runner-label: windows-2022
423+
unreal-engine-version: "5.6.0"
424+
unreal-engine-zip: "s3://cesium-unreal-engine/5.6.0/UE_5.6.zip"
425+
unreal-program-name: "UE_5.6"
426+
upload-package-base-name: "CesiumForUnreal-56-android"
427+
android-ndk-version: "r25b"
428+
Linux56:
429+
uses: ./.github/workflows/buildLinux.yml
430+
secrets: inherit
431+
with:
432+
runner-label: ubuntu-22.04
433+
unreal-engine-version: "5.6.0"
434+
unreal-engine-zip: "s3://cesium-unreal-engine/5.6.0/Linux_Unreal_Engine_5.6.0.zip"
435+
unreal-program-name: "UE_5.6"
436+
upload-package-base-name: "CesiumForUnreal-56-linux"
437+
clang-version: "v25_clang-18.1.0-rockylinux8"
438+
Apple56:
439+
uses: ./.github/workflows/buildApple.yml
440+
secrets: inherit
441+
with:
442+
runner-label: macos-14
443+
unreal-engine-version: "5.6.0"
444+
unreal-engine-zip: "s3://cesium-unreal-engine/5.6.0/UE_56-mac.zip"
445+
unreal-program-name: "UE_5.6"
446+
upload-package-base-name: "CesiumForUnreal-56-apple"
447+
xcode-version: "16.1"
448+
Combine56:
449+
runs-on: ubuntu-latest
450+
needs: [Windows56, Android56, Linux56, Apple56]
451+
steps:
452+
- name: Check out repository code
453+
uses: actions/checkout@v4
454+
- name: Set environment variables
455+
run: |
456+
export CESIUM_UNREAL_VERSION=$GITHUB_REF_NAME
457+
export BUILD_CESIUM_UNREAL_PACKAGE_NAME="CesiumForUnreal-56-${CESIUM_UNREAL_VERSION}"
458+
export BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME="CesiumForUnreal-56-SourceOnly-${CESIUM_UNREAL_VERSION}"
459+
# Make these available to subsequent steps
460+
echo "CESIUM_UNREAL_VERSION=$CESIUM_UNREAL_VERSION" >> $GITHUB_ENV
461+
echo "BUILD_CESIUM_UNREAL_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_PACKAGE_NAME" >> $GITHUB_ENV
462+
echo "BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME" >> $GITHUB_ENV
463+
- name: Download Apple build
464+
uses: actions/download-artifact@v4
465+
with:
466+
name: CesiumForUnreal-56-apple-${{ env.CESIUM_UNREAL_VERSION}}
467+
path: combine
468+
- name: Download Android build
469+
uses: actions/download-artifact@v4
470+
with:
471+
name: CesiumForUnreal-56-android-${{ env.CESIUM_UNREAL_VERSION}}
472+
path: combine
473+
- name: Download Linux build
474+
uses: actions/download-artifact@v4
475+
with:
476+
name: CesiumForUnreal-56-linux-${{ env.CESIUM_UNREAL_VERSION}}
477+
path: combine
478+
- name: Download Windows build
479+
uses: actions/download-artifact@v4
480+
with:
481+
name: CesiumForUnreal-56-windows-${{ env.CESIUM_UNREAL_VERSION}}
482+
path: combine
483+
- name: Publish combined package artifact
484+
if: ${{ success() }}
485+
uses: actions/upload-artifact@v4
486+
with:
487+
name: ${{ env.BUILD_CESIUM_UNREAL_PACKAGE_NAME}}
488+
path: combine
489+
- name: Publish combined package artifact for the Unreal Marketplace
490+
if: ${{ success() }}
491+
uses: actions/upload-artifact@v4
492+
with:
493+
name: ${{ env.BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME}}
494+
path: |
495+
combine
496+
# These are built by Epic, and including them seems to confuse their process.
497+
!combine/CesiumForUnreal/Binaries/**/*
498+
!combine/CesiumForUnreal/Intermediate/**/*
499+
TestPackage56:
500+
needs: [Combine56]
501+
uses: ./.github/workflows/testPackageOnWindows.yml
502+
secrets: inherit
503+
with:
504+
runner-label: windows-2022
505+
unreal-engine-zip: "s3://cesium-unreal-engine/5.6.0/UE_5.6.zip"
506+
unreal-program-name: "UE_5.6"
507+
unreal-engine-association: "5.6"
508+
test-package-base-name: "CesiumForUnreal-56"
509+
visual-studio-version: "2022"
510+
visual-studio-components: "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64,Microsoft.VisualStudio.Component.Windows11SDK.22621"

.github/workflows/buildApple.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,16 @@ jobs:
5050
sudo rm -rf /Applications/Xcode_15.2.app
5151
sudo rm -rf /Applications/Xcode_15.3.0.app
5252
sudo rm -rf /Applications/Xcode_15.3.app
53+
if [ "${{ inputs.xcode-version }}" != "15.4" ]; then
54+
sudo rm -rf /Applications/Xcode_15.4.0.app
55+
sudo rm -rf /Applications/Xcode_15.4.app
56+
fi
5357
sudo rm -rf /Applications/Xcode_16.0.0.app
5458
sudo rm -rf /Applications/Xcode_16.0.app
55-
sudo rm -rf /Applications/Xcode_16.1.0.app
56-
sudo rm -rf /Applications/Xcode_16.1.app
59+
if [ "${{ inputs.xcode-version }}" != "16.1" ]; then
60+
sudo rm -rf /Applications/Xcode_16.1.0.app
61+
sudo rm -rf /Applications/Xcode_16.1.app
62+
fi
5763
sudo rm -rf /Applications/Xcode_16.1_beta.app
5864
sudo rm -rf /Applications/Xcode_16_beta_6.app
5965
ls /Applications

.github/workflows/buildLinux.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- name: Removed unneeded packages to gain disk space
4040
run: |
4141
sudo apt update
42-
sudo apt remove google-chrome-stable clang-13 clang-14 clang-15 llvm-13-dev llvm-13-linker-tools llvm-13-runtime llvm-13-tools llvm-13 llvm-14-dev llvm-14-linker-tools llvm-14-runtime llvm-14-tools llvm-14 llvm-15-dev llvm-15-linker-tools llvm-15-runtime llvm-15-tools llvm-15 x11-common xserver-common aspnetcore-runtime-6.0 aspnetcore-runtime-7.0 aspnetcore-runtime-8.0 aspnetcore-targeting-pack-6.0 aspnetcore-targeting-pack-7.0 aspnetcore-targeting-pack-8.0 docker-ce-cli docker-ce dotnet-apphost-pack-6.0 dotnet-apphost-pack-7.0 dotnet-apphost-pack-8.0 dotnet-host dotnet-hostfxr-6.0 dotnet-hostfxr-7.0 dotnet-hostfxr-8.0 dotnet-runtime-6.0 dotnet-runtime-7.0 dotnet-runtime-8.0 dotnet-runtime-deps-6.0 dotnet-runtime-deps-7.0 dotnet-runtime-deps-8.0 dotnet-sdk-6.0 dotnet-sdk-7.0 dotnet-sdk-8.0 dotnet-targeting-pack-6.0 dotnet-targeting-pack-7.0 dotnet-targeting-pack-8.0 eatmydata emacsen-common firebird3.0-common-doc firebird3.0-common firefox kubectl mercurial-common mercurial microsoft-edge-stable mssql-tools mysql-client-8.0 mysql-client-core-8.0 mysql-client mysql-common mysql-server-8.0 php8.1 postgresql-14 azure-cli microsoft-edge-stable google-cloud-cli temurin-21-jdk temurin-17-jdk temurin-11-jdk temurin-8-jdk powershell google-cloud-cli-anthoscli mysql-server-core-8.0 containerd.io libllvm15 libllvm14 libllvm13 mono-devel libclang-common-15-dev libclang-common-14-dev libclang-common-13-dev
42+
sudo apt remove google-chrome-stable clang-13 clang-14 clang-15 clang-format-13 clang-format-14 clang-format-15 llvm-13-dev llvm-13-linker-tools llvm-13-runtime llvm-13-tools llvm-13 llvm-14-dev llvm-14-linker-tools llvm-14-runtime llvm-14-tools llvm-14 llvm-15-dev llvm-15-linker-tools llvm-15-runtime llvm-15-tools llvm-15 x11-common xserver-common aspnetcore-runtime-6.0 aspnetcore-runtime-7.0 aspnetcore-runtime-8.0 aspnetcore-runtime-9.0 aspnetcore-targeting-pack-6.0 aspnetcore-targeting-pack-7.0 aspnetcore-targeting-pack-8.0 aspnetcore-targeting-pack-9.0 docker-ce-cli docker-ce dotnet-apphost-pack-6.0 dotnet-apphost-pack-7.0 dotnet-apphost-pack-8.0 dotnet-apphost-pack-9.0 dotnet-host dotnet-hostfxr-6.0 dotnet-hostfxr-7.0 dotnet-hostfxr-8.0 dotnet-hostfxr-9.0 dotnet-runtime-6.0 dotnet-runtime-7.0 dotnet-runtime-8.0 dotnet-runtime-9.0 dotnet-runtime-deps-6.0 dotnet-runtime-deps-7.0 dotnet-runtime-deps-8.0 dotnet-runtime-deps-9.0 dotnet-sdk-6.0 dotnet-sdk-7.0 dotnet-sdk-8.0 dotnet-sdk-9.0 dotnet-targeting-pack-6.0 dotnet-targeting-pack-7.0 dotnet-targeting-pack-8.0 dotnet-targeting-pack-9.0 eatmydata emacsen-common firebird3.0-common-doc firebird3.0-common firefox kubectl mercurial-common mercurial microsoft-edge-stable mssql-tools mysql-client-8.0 mysql-client-core-8.0 mysql-client mysql-common mysql-server-8.0 php8.1 postgresql-14 azure-cli microsoft-edge-stable google-cloud-cli temurin-21-jdk temurin-17-jdk temurin-11-jdk temurin-8-jdk powershell google-cloud-cli-anthoscli mysql-server-core-8.0 containerd.io libllvm15 libllvm14 libllvm13 mono-devel libclang-common-15-dev libclang-common-14-dev libclang-common-13-dev apache2-bin apache2-data apache2-utils apache2 containerd.io cpp-9 cpp-10 cpp-11 cpp-12 cpp docker-ce-cli docker-ce emacsen-common g++-9 g++-10 g++-11 g++-12 g++ gcc-9-base gcc-10-base gcc-11-base gcc-9 gcc-10 gcc-11 gcc-12 gcc gfortran-9 gfortran-10 gfortran-11 gfortran-12 gfortran
4343
df -h
4444
- name: Create some space to work in /mnt
4545
run: |
@@ -60,8 +60,6 @@ jobs:
6060
unreal-program-name: ${{ inputs.unreal-program-name }}
6161
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
6262
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
63-
- name: Install nasm
64-
uses: ilammy/[email protected]
6563
- name: Install Ninja and patchelf
6664
run: |
6765
sudo apt install -y ninja-build patchelf

CHANGES.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
### ? - ?
44

5+
This is the last release of Cesium for Unreal that will support Unreal Engine v5.3. Future versions will require Unreal Engine v5.4+.
6+
7+
##### Additions :tada:
8+
9+
- Added support for Unreal Engine 5.6.
10+
511
##### Breaking Changes :mega:
612

713
- Feature IDs that are encoded by `UCesiumFeaturesMetadataComponent` will now use a default null feature ID of `-1` instead of `0`.

Source/CesiumRuntime/CesiumRuntime.Build.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public CesiumRuntime(ReadOnlyTargetRules Target) : base(Target)
1919

2020
PrivateIncludePaths.AddRange(
2121
new string[] {
22-
Path.Combine(GetModuleDirectory("Renderer"), "Private")
22+
Path.Combine(GetModuleDirectory("Renderer"), "Private"),
23+
Path.Combine(GetModuleDirectory("Renderer"), "Internal")
2324
}
2425
);
2526

Source/CesiumRuntime/Private/CesiumGltfPointsSceneProxy.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "RHIResources.h"
88
#include "Runtime/Launch/Resources/Version.h"
99
#include "SceneInterface.h"
10+
#include "SceneView.h"
1011
#include "StaticMeshResources.h"
1112

1213
FCesiumGltfPointsSceneProxyTilesetData::FCesiumGltfPointsSceneProxyTilesetData()

0 commit comments

Comments
 (0)