Skip to content

Commit 7a021a1

Browse files
authored
Merge pull request #1703 from CesiumGS/farewell-5.3
Remove support for UE 5.3
2 parents aca59bd + 378ece1 commit 7a021a1

20 files changed

+37
-313
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -36,124 +36,6 @@ jobs:
3636
with:
3737
name: ReferenceDocumentation
3838
path: Documentation/Reference
39-
Windows53:
40-
uses: ./.github/workflows/buildWindows.yml
41-
secrets: inherit
42-
with:
43-
runner-label: "windows-2022"
44-
unreal-engine-version: "5.3.0"
45-
unreal-engine-zip: "s3://cesium-unreal-engine/5.3.0/UE_5.3.zip"
46-
unreal-program-name: "UE_5.3"
47-
upload-package-base-name: "CesiumForUnreal-53-windows"
48-
# These are specified in the Unreal Engine release notes under "IDE Version the Build farm compiles against"
49-
# and using them ensures we're compiling our plugin in the exact same way that Unreal Engine itself is compiled.
50-
cmake-generator: "Visual Studio 17 2022"
51-
cmake-toolchain: "version=14.34"
52-
cmake-platform: "x64,version=10.0.18362.0"
53-
visual-studio-version: "2022"
54-
visual-studio-components: "Microsoft.VisualStudio.Component.VC.14.34.17.4.x86.x64,Microsoft.VisualStudio.Component.Windows10SDK.18362"
55-
TestWindows53:
56-
needs: [Windows53]
57-
uses: ./.github/workflows/testWindows.yml
58-
secrets: inherit
59-
with:
60-
runner-label: windows-2022
61-
unreal-engine-zip: "s3://cesium-unreal-engine/5.3.0/UE_5.3.zip"
62-
unreal-program-name: "UE_5.3"
63-
test-package-base-name: "CesiumForUnreal-53-windows"
64-
Android53:
65-
uses: ./.github/workflows/buildAndroid.yml
66-
secrets: inherit
67-
with:
68-
runner-label: windows-2022
69-
unreal-engine-version: "5.3.0"
70-
unreal-engine-zip: "s3://cesium-unreal-engine/5.3.0/UE_5.3.zip"
71-
unreal-program-name: "UE_5.3"
72-
upload-package-base-name: "CesiumForUnreal-53-android"
73-
android-ndk-version: "r25b"
74-
Linux53:
75-
uses: ./.github/workflows/buildLinux.yml
76-
secrets: inherit
77-
with:
78-
runner-label: ubuntu-22.04
79-
unreal-engine-version: "5.3.0"
80-
unreal-engine-zip: "s3://cesium-unreal-engine/5.3.0/Linux_Unreal_Engine_5.3.0.zip"
81-
unreal-program-name: "UE_5.3"
82-
upload-package-base-name: "CesiumForUnreal-53-linux"
83-
clang-version: "v22_clang-16.0.6-centos7"
84-
Apple53:
85-
uses: ./.github/workflows/buildApple.yml
86-
secrets: inherit
87-
with:
88-
runner-label: macos-14
89-
unreal-engine-version: "5.3.0"
90-
unreal-engine-zip: "s3://cesium-unreal-engine/5.3.0/UE_53_macOS.zip"
91-
unreal-program-name: "UE_5.3"
92-
upload-package-base-name: "CesiumForUnreal-53-apple"
93-
xcode-version: "15.4"
94-
Combine53:
95-
runs-on: ubuntu-latest
96-
needs: [Windows53, Android53, Linux53, Apple53]
97-
steps:
98-
- name: Check out repository code
99-
uses: actions/checkout@v4
100-
- name: Set environment variables
101-
run: |
102-
export CESIUM_UNREAL_VERSION=$GITHUB_REF_NAME
103-
export BUILD_CESIUM_UNREAL_PACKAGE_NAME="CesiumForUnreal-53-${CESIUM_UNREAL_VERSION}"
104-
export BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME="CesiumForUnreal-53-SourceOnly-${CESIUM_UNREAL_VERSION}"
105-
# Make these available to subsequent steps
106-
echo "CESIUM_UNREAL_VERSION=$CESIUM_UNREAL_VERSION" >> $GITHUB_ENV
107-
echo "BUILD_CESIUM_UNREAL_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_PACKAGE_NAME" >> $GITHUB_ENV
108-
echo "BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME" >> $GITHUB_ENV
109-
- name: Download Apple build
110-
uses: actions/download-artifact@v4
111-
with:
112-
name: CesiumForUnreal-53-apple-${{ env.CESIUM_UNREAL_VERSION}}
113-
path: combine
114-
- name: Download Android build
115-
uses: actions/download-artifact@v4
116-
with:
117-
name: CesiumForUnreal-53-android-${{ env.CESIUM_UNREAL_VERSION}}
118-
path: combine
119-
- name: Download Linux build
120-
uses: actions/download-artifact@v4
121-
with:
122-
name: CesiumForUnreal-53-linux-${{ env.CESIUM_UNREAL_VERSION}}
123-
path: combine
124-
- name: Download Windows build
125-
uses: actions/download-artifact@v4
126-
with:
127-
name: CesiumForUnreal-53-windows-${{ env.CESIUM_UNREAL_VERSION}}
128-
path: combine
129-
- name: Publish combined package artifact
130-
if: ${{ success() }}
131-
uses: actions/upload-artifact@v4
132-
with:
133-
name: ${{ env.BUILD_CESIUM_UNREAL_PACKAGE_NAME}}
134-
path: combine
135-
- name: Publish combined package artifact for the Unreal Marketplace
136-
if: ${{ success() }}
137-
uses: actions/upload-artifact@v4
138-
with:
139-
name: ${{ env.BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME}}
140-
path: |
141-
combine
142-
# These are built by Epic, and including them seems to confuse their process.
143-
!combine/CesiumForUnreal/Binaries/**/*
144-
!combine/CesiumForUnreal/Intermediate/**/*
145-
TestPackage53:
146-
needs: [Combine53]
147-
uses: ./.github/workflows/testPackageOnWindows.yml
148-
secrets: inherit
149-
with:
150-
runner-label: windows-2022
151-
unreal-engine-zip: "s3://cesium-unreal-engine/5.3.0/UE_5.3.zip"
152-
unreal-program-name: "UE_5.3"
153-
unreal-engine-association: "5.3"
154-
test-package-base-name: "CesiumForUnreal-53"
155-
visual-studio-version: "2022"
156-
visual-studio-components: "Microsoft.VisualStudio.Component.VC.14.34.17.4.x86.x64,Microsoft.VisualStudio.Component.Windows10SDK.18362"
15739
Windows54:
15840
uses: ./.github/workflows/buildWindows.yml
15941
secrets: inherit

CesiumForUnreal.uplugin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"DocsURL": "https://cesium.com/learn/unreal/",
1111
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/87b0d05800a545d49bf858ef3458c4f7",
1212
"SupportURL": "https://community.cesium.com",
13-
"EngineVersion": "5.3.0",
13+
"EngineVersion": "5.4.0",
1414
"CanContainContent": true,
1515
"IsBetaVersion": false,
1616
"IsExperimentalVersion": false,

Documentation/developer-setup-linux.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ After compiling Unreal Engine, set the following environment variables in your `
1313

1414
```bash
1515
export UNREAL_ENGINE_DIR=<path_to_unreal_engine>
16-
export UNREAL_ENGINE_COMPILER_DIR=$UNREAL_ENGINE_DIR/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v20_clang-13.0.1-centos7/x86_64-unknown-linux-gnu
16+
export UNREAL_ENGINE_COMPILER_DIR=$UNREAL_ENGINE_DIR/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu
1717
export UNREAL_ENGINE_LIBCXX_DIR=$UNREAL_ENGINE_DIR/Engine/Source/ThirdParty/Unix/LibCxx
1818
```
1919
> [!note]
20-
> `v20_clang-13.0.1-centos7` is correct for Unreal Engine v5.0.3. It may be different for other versions of Unreal Engine. See [https://docs.unrealengine.com/5.0/en-US/SharingAndReleasing/Linux/GettingStarted/](https://docs.unrealengine.com/5.0/en-US/linux-development-requirements-for-unreal-engine/) or the equivalent for your version of Unreal Engine.
20+
> `v22_clang-16.0.6-centos7` is correct for Unreal Engine v5.4. It may be different for other versions of Unreal Engine. See the [Unreal documentation](https://dev.epicgames.com/documentation/en-us/unreal-engine/linux-development-requirements-for-unreal-engine?application_version=5.4) for the equivalent for your version of Unreal Engine.
2121
2222
# Cloning the git repos
2323

@@ -99,4 +99,4 @@ The Cesium for Unreal Samples project demonstrates a bunch of features of Cesium
9999
cd ~/dev
100100
git clone https://github.com/CesiumGS/cesium-unreal-samples.git
101101

102-
Then, launch the Unreal Editor and open `~/dev/cesium-unreal-samples/CesiumForUnrealSamples.uproject`. Because we've already installed the plugin to the Engine Plugins directory, the samples project should pick it up automatically.
102+
Then, launch the Unreal Editor and open `~/dev/cesium-unreal-samples/CesiumForUnrealSamples.uproject`. Because we've already installed the plugin to the Engine Plugins directory, the samples project should pick it up automatically.

Documentation/developer-setup-osx.md

Lines changed: 14 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ Detailed instructions for setting up a Cesium for Unreal development environment
66
# Prerequisities
77

88
- Install CMake (version 3.15 or newer) from https://cmake.org/install/
9-
- Install Xcode 14.2+ from https://developer.apple.com/xcode/resources/
9+
- Install Xcode 14.1+ from https://developer.apple.com/xcode/resources/
1010
- For best JPEG-decoding performance, you must have [nasm](https://www.nasm.us/) installed so that CMake can find it. Everything will work fine without it, just slower.
11-
- Install the minimum supported version of Unreal Engine (version 5.3 as of this writing) from https://www.unrealengine.com/en-US/download
11+
- Install the minimum supported version of Unreal Engine (version 5.4 as of this writing) from https://www.unrealengine.com/en-US/download
12+
13+
These instructions are intended for Unreal Engine 5.4. The process is similar for newer versions of Unreal Engine. Supported Xcode versions are specified in `/Users/Shared/Epic Games/UE_5.4/Engine/Config/Apple/Apple_SDK.json`.
1214

1315
# Cloning the git repos
1416

@@ -35,88 +37,14 @@ git clone --recursive https://github.com/CesiumGS/cesium-unreal.git
3537
git submodule update --init --recursive
3638
```
3739

38-
# Setting up Xcode
39-
40-
Unreal Engine 5.3 requires a version of Xcode _no later_ than Xcode 15.x. This means that Xcode 16, which is the earliest version supported on macOS 15.3 Sequoia, cannot be used to build a UE 5.3 project without some tricks. You will see an error like this when you attempt to generate project files:
41-
42-
> Exception while generating include data for UnrealEditor: Platform Mac is not a valid platform to build. Check that the SDK is installed properly.
43-
44-
We have a few options:
45-
46-
1. Use an earlier version of macOS
47-
2. Use a later version of Unreal Engine
48-
3. [Hack UnrealBuildTool to allow us to build for UE 5.3 using Xcode 16](#modify-unrealbuildtool-for-xcode-16)
49-
4. [Hack Xcode 15.4 to run on macOS 15.2 Sequoia](#modify-xcode-for-sequoia)
50-
51-
## Modify UnrealBuildTool for Xcode 16
52-
53-
The source code for the UnrealBuildTool is installed with Unreal Engine, which makes it easy to modify it for our purposes. The file to edit in Unreal Engine 5.3 is here (or equivalent on your system):
54-
55-
```
56-
/Users/Shared/Epic Games/UE_5.3/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/ApplePlatformSDK.Versions.cs
57-
```
58-
59-
Find a line in that file that looks like this:
60-
61-
```
62-
MaxVersion = "15.9.9";
63-
```
64-
65-
If you have Xcode 16, change it to:
66-
67-
```
68-
MaxVersion = "16.9.9";
69-
```
70-
71-
Now we need to build our modifications into a new binary, which we can do by running:
72-
73-
```
74-
cd "/Users/Shared/Epic Games/UE_5.3/Engine/Source/Programs/UnrealBuildTool"
75-
"/Users/Shared/Epic Games/UE_5.3/Engine/Binaries/ThirdParty/DotNet/6.0.302/mac-x64/dotnet" build UnrealBuildTool.csproj
76-
```
77-
78-
> [!note]
79-
> The path to the `dotnet` executable may be different in different Unreal Engine versions. You can also install a system `dotnet` if desired with `brew install dotnet`.
80-
81-
This will build UnrealBuildTool to the place all of Unreal's build scripts expect to find it. You should now be able to [generate project files](#building-cesium-for-unreal) successfully.
82-
83-
However, because this version of Unreal Engine has not been tested on this Xcode version, you may run into compiler errors, and these may be easy or difficult to fix. With Unreal Engine 5.3 and Xcode 16.2, you'll likely see errors like this:
84-
85-
> /Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/RenderCore/Public/ShaderParameterStructDeclaration.h:22:3: encoding prefix 'u' on an unevaluated string literal has no effect and is incompatible with c++2c [-Werror,-Winvalid-unevaluated-string]
86-
87-
We can "fix" this by suppressing this warning. Open `/Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/Core/Public/Apple/ApplePlatformCompilerPreSetup.h` and add a line to disable this warning:
88-
89-
```
90-
#pragma clang diagnostic ignored "-Winvalid-unevaluated-string"
91-
```
92-
93-
## Modify Xcode for Sequoia
94-
95-
It's possible to run Xcode 15.4 on macOS 15.3 Sequoia, and probably later versions:
96-
97-
* Download Xcode 15.4 from https://developer.apple.com/download/all/.
98-
* Extract the download to your home directory:
99-
100-
```
101-
cd
102-
xip -x ./Downloads/Xcode_15.4.xip
103-
mv Xcode.app Xcode_15.4.app
104-
```
105-
106-
* Launch this version of Xcode:
107-
108-
```
109-
./Xcode_15.4.app/Contents/MacOS/Xcode
110-
```
111-
112-
* Xcode should launch and ask you to select or create a project. Choose `Xcode` on the menu at the top and then `Settings`. Click the `Locations` tab.
113-
* Under `Command Line Tools` choose `Xcode_15 15.4`.
114-
11540
# Building cesium-native
11641

11742
The cesium-native libraries and their dependencies use CMake and must be built separately from Cesium for Unreal. Cesium for Unreal supports both Intel and Apple Silicon processors. In development, we usually just want to build for the host's architecture, which is done as follows:
11843

44+
(It may be helpful to place these commands in a shell script for future use.)
45+
11946
```
47+
export UNREAL_ENGINE_ROOT='/Users/Shared/Epic Games/UE_5.4'
12048
cd ~/dev/cesium-unreal-samples/Plugins/cesium-unreal/extern
12149
cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug
12250
cmake --build build --target install --parallel 14
@@ -125,6 +53,7 @@ cmake --build build --target install --parallel 14
12553
Or to build a Release version:
12654

12755
```
56+
export UNREAL_ENGINE_ROOT='/Users/Shared/Epic Games/UE_5.4'
12857
cd ~/dev/cesium-unreal-samples/Plugins/cesium-unreal/extern
12958
cmake -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo
13059
cmake --build build --target install --parallel 14
@@ -190,6 +119,7 @@ Configure the CMake project in the `~/dev/cesium-unreal-samples/Plugins/cesium-u
190119
Execute the following commands to build and install a Release version of cesium-native:
191120

192121
```
122+
export UNREAL_ENGINE_ROOT='/Users/Shared/Epic Games/UE_5.4'
193123
cd ~/dev/cesium-unreal-samples/Plugins/cesium-unreal/extern
194124
cmake -B build-ios -S . -GXcode -DCMAKE_TOOLCHAIN_FILE="unreal-ios-toolchain.cmake" -DCMAKE_BUILD_TYPE=Release
195125
cmake --build build-ios --target install --config Release --parallel 14
@@ -210,14 +140,15 @@ Now we can generate Xcode project files for the Samples project and the plugin:
210140

211141
```
212142
cd ~/dev/cesium-unreal-samples
213-
"/Users/Shared/Epic Games/UE_5.3/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh" -game -project="$PWD/CesiumForUnrealSamples.uproject"
143+
"/Users/Shared/Epic Games/UE_5.4/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh" -game -project="$PWD/CesiumForUnrealSamples.uproject"
214144
```
215145

216146
You may see an error message like this:
217147

218148
> Your Mac is set to use CommandLineTools for its build tools (/Library/Developer/CommandLineTools). Unreal expects Xcode as the build tools. Please install Xcode if it's not already, then do one of the following:
219149
> - Run Xcode, go to Settings, and in the Locations tab, choose your Xcode in Command Line Tools dropdown.
220150
> - In Terminal, run 'sudo xcode-select -s /Applications/Xcode.app' (or an alternate location if you installed Xcode to a non-standard location)
151+
>
221152
> Either way, you will need to enter your Mac password.
222153
223154
In which case, do what it says.
@@ -226,11 +157,11 @@ If you see a message like this:
226157

227158
> Exception while generating include data for UnrealEditor: Platform Mac is not a valid platform to build. Check that the SDK is installed properly.
228159
229-
It probably means Unreal doesn't like your Xcode version. Be sure that Xcode is installed and that you have followed the [Xcode setup instructions](#setting-up-xcode).
160+
It probably means Unreal doesn't like your Xcode version. Be sure that a supported version of Xcode is installed. Supported Xcode versions are specified in `/Users/Shared/Epic Games/UE_5.4/Engine/Config/Apple/Apple_SDK.json`.
230161

231162
If the project file generation succeeds, you should see a file named `CesiumForUnrealSamples (Mac).xcworkspace` in the same directory as your uproject. Double-click it to open Xcode.
232163

233-
In Xcode, on the Product -> Scheme menu, choose `devEditor`. If you want to build a debug configuration, go to Product -> Scheme -> Edit Scheme... and then change the "Build Configuration" to "DebugGame".
164+
In Xcode, on the Product -> Scheme menu, choose `devEditor`. If you want to build a debug configuration, go to Product -> Scheme -> Edit Scheme -> Run, select the Info tab and then change the "Build Configuration" to "DebugGame".
234165

235166
Build by choosing Product -> Build. Watch the progress in the "Report Navigator" which is the rightmost icon above the tree on the left.
236167

@@ -247,7 +178,7 @@ To get a call stack from a crash on an iOS device...
247178
- Copy this file to a separate directory.
248179
- Convert it to a .crash file using https://github.com/tomieq/AppleCrashScripts and convertFromJSON.swift. The input path must be a relative path, not an absolute one. So run it in the directory where you copied the ips file above.
249180
- `swift ~/github/AppleCrashScripts/convertFromJSON.swift -i dev-IOS-DebugGame-2025-02-06-204209.ips -o dev-IOS-DebugGame-2025-02-06-204209.crash`
250-
- Run symbolicatecrash, which comes with Xcode but is buried here /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/
181+
- Run `symbolicatecrash`, which comes with Xcode but is buried here /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/
251182
- `export PATH=$PATH:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/`
252183
- `export DEVELOPER_DIR=$(xcode-select --print-path)`
253184
- `symbolicatecrash ./dev-IOS-DebugGame-2025-02-06-204209.crash`

Documentation/developer-setup-windows-gotchas.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ Some important facts to understand before continuing:
1313

1414
The Cesium for Unreal plugin code includes and links with a great deal of Unreal Engine code. It is built by the Unreal Build Tool, even when you compile from within Visual Studio.
1515

16-
The MSVC compiler version that Epic used to build a release version of Unreal Engine can be found in that version's release notes. For example, the [release notes for Unreal Engine 5.3](https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.3-release-notes) include this information:
16+
The MSVC compiler version that Epic used to build a release version of Unreal Engine can be found in that version's release notes. For example, the [release notes for Unreal Engine 5.4](https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.4-release-notes?application_version=5.4) include this information:
1717

1818
> * IDE Version the Build farm compiles against
19-
> * Visual Studio: Visual Studio 2022 17.4 14.34.31933 toolchain and Windows 10 SDK (10.0.18362.0)
19+
> * Visual Studio: Visual Studio 2022 17.8 14.38.33130 toolchain and Windows 10 SDK (10.0.18362.0)
2020
21-
For maximum compatibility, released versions of Cesium for Unreal should be built with _exactly_ this version, v14.34.31933, and this is what we do on CI.
21+
For maximum compatibility, released versions of Cesium for Unreal should be built with _exactly_ this version, v14.38.33130, and this is what we do on CI.
2222

23-
However, when compiling for your own development purposes, you can use this version or any compatible newer one. In general, newer compilers work just fine, but not always. A change in the v14.42 compiler (and later versions) means that some Unreal Engine 5.3 header files cannot be compiled with it. So, on development systems, we usually use the v14.38 toolchain, because this version works with all currently-supported versions of Unreal Engine: 5.4, 5.5, and 5.6. Install it from Add/Remove Programs by following the instructions in the top section.
23+
However, when compiling for your own development purposes, you can use this version or any compatible newer one. In general, newer compilers work just fine, but not always. A change in the v14.42 compiler (and later versions) means that some Unreal Engine 5.4 header files cannot be compiled with it. So, on development systems, we usually use the v14.38 toolchain, because this version works with all currently-supported versions of Unreal Engine: 5.4, 5.5, and 5.6. Install it from Add/Remove Programs by following the instructions in the top section.
2424

2525
The Unreal Build Tool will use the latest compiler version that you have installed. So even after installing v14.38, Cesium for Unreal will likely attempt to compile with a later version like v14.44, and fail. It's possible to uninstall all the newer versions, but this is a huge hassle if you need the newer compiler for other projects.
2626

0 commit comments

Comments
 (0)