Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the vcpkg-enabled version of cesium-native. #1447

Draft
wants to merge 114 commits into
base: main
Choose a base branch
from
Draft

Use the vcpkg-enabled version of cesium-native. #1447

wants to merge 114 commits into from

Conversation

kring
Copy link
Member

@kring kring commented Jun 6, 2024

This depends on CesiumGS/cesium-native#820.

To do:

  • Create an overlay triplet for Unreal so the above steps aren't necessary.
  • Get all the platforms building on CI.
  • Test the Editor on all platforms:
    • Windows
    • macOS
    • Linux
  • Test packaging for all platforms
    • Windows
    • macOS
    • Linux
    • Android
    • iOS
  • Create overlay ports for abseil and sqlite that rename our symbols to avoid conflicts with the same libraries included in other Unreal plugins.
  • Investigate why the distributions are bigger. Probably because of this.

CC @jherico (thanks for all your work on this on the cesium-native side!)

# On Mac and Linux, Unreal uses -fvisibility-ms-compat.
# On Android, it uses -fvisibility=hidden
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-ms-compat -fvisibility-inlines-hidden")
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Android")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidde\n -fvisibility-inlines-hidden")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uh... what?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😆 I don't know where that came from. I must have fat-fingered it. Thanks for flagging it!

kring added 28 commits June 20, 2024 19:33
We can't use macos-14 because it doesn't have xcode 14.2, which Unreal
requires.
Apparently macos-13-arm64 isn't actually a thing.
Hopefully that will be good enough.
It should be less necessary now that we're using swl-variant, and it
causes problems packaging for Linux from Windows.
Use C++20 and swl::variant instead of std::variant.
@kring
Copy link
Member Author

kring commented Jun 30, 2024

Just dropping a reminder for myself here that this PR also removes the debug section compression on Linux. The compressed debug sections cause linker errors when cross-compiling for Linux from Windows:

PackagingResults: Error: C:/Program Files/Epic Games/UE_5.2/Engine/Plugins/Marketplace/CesiumForUnreal/Intermediate/Build/Linux/x64/UnrealGame/Development/CesiumRuntime/Module.CesiumRuntime.2_of_11.cpp.o:(.debug_gnu_pubtypes) is compressed with ELFCOMPRESS_ZLIB, but lld is not built with zlib support

Now that the binaries aren't so enormous, compressing the debug sections isn't as essential.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants