Conversation
|
Oh I almost forgot about one other thing that needs to happen before this is merged. For maximum compatibility across Linux distributions, we should use a lowest common denominator build environment like Alma Linux 8 to produce our build. I think this may be as simple as adding |
The lack of a X framebufffer is probably the reason the tests are failing instantly.
|
This should be ready to merge now. The package builds, the tests run and pass, and the native code build happens in an Alma Linux 8 container for wide compatibility across Linux distributions. |
|
What are the odds this might make it into the June release of Cesium for Unity? It would solve a lot of CI/CD pipeline woes for us. |
|
Sorry @Canright-Jared-BoozAllen, we wanted to get this into the upcoming release but couldn't find the bandwidth. We'll definitely target next month, though! |
No worries; thank you for the update! |
|
Hello! Just wanted to re-up that Linux support would solve a major pain point for us. We don't have access to anything other than Ubuntu CI/CD runners, so the Cesium for Unity dependency in our project prevents automated builds and tests. Bringing this pull request into a Cesium for Unity release would be cause for our team to dance joyfully through the streets. |
|
@Canright-Jared-BoozAllen Sorry for the delay. We are actively working on this for the August 1 release. Still hoping this incites joyful dancing. |
Should we be doing this in Cesium for Unreal and Cesium Native too? |
| @@ -0,0 +1,7 @@ | |||
| include("${CMAKE_CURRENT_LIST_DIR}/shared/common.cmake") | |||
|
|
|||
| set(VCPKG_TARGET_ARCHITECTURE x64) | |||
There was a problem hiding this comment.
These are the defaults for Linux in vcpkg, so I'm assuming the reason for having a triplet is just to pass through CESIUM_VCPKG_RELEASE_ONLY? That might merit a comment.
There was a problem hiding this comment.
Passing that through will save CI time, yes. But I think overall the idea is that we have triplets for all of our target platforms, allowing us to precisely control how the shared library is built. The fact that we happen to match the x64-linux defaults is coincidence. I'm actually slightly surprised VCPKG_LIBRARY_LINKAGE=static by default on Linux; it's dynamic on Windows, where dynamic linking is usually more problematic.
Unreal supplies its own Alma 8 "cross-compiling" toolchain (even though it's Linux-to-Linux), which we use. So no benefit there. (or it's already effectively done, is another way of looking at it) In Native, we never ship the built binaries, so no need there, either. |
Copilot did the work but I checked it and it looks right to me. The CI build succeeds, but the tests fail (very quickly!) for unknown reasons. The next step is probably to try it on an actual Linux system and see what's going on.