diff --git a/build.sh b/build.sh index 0e6e0cd..f8674db 100755 --- a/build.sh +++ b/build.sh @@ -32,10 +32,12 @@ if [[ $RUNNER_OS == 'Linux' ]]; then $SUDO apt-get install -y \ $GCC \ $GPP \ + git \ cmake \ ninja-build \ wayland-scanner++ \ wayland-protocols \ + meson \ pkg-config$TARGET_APT_ARCH \ libasound2-dev$TARGET_APT_ARCH \ libdbus-1-dev$TARGET_APT_ARCH \ @@ -43,7 +45,9 @@ if [[ $RUNNER_OS == 'Linux' ]]; then libgl1-mesa-dev$TARGET_APT_ARCH \ libgles2-mesa-dev$TARGET_APT_ARCH \ libglu1-mesa-dev$TARGET_APT_ARCH \ + libgtk-3-dev$TARGET_APT_ARCH \ libibus-1.0-dev$TARGET_APT_ARCH \ + libpango1.0-dev$TARGET_APT_ARCH \ libpulse-dev$TARGET_APT_ARCH \ libsndio-dev$TARGET_APT_ARCH \ libudev-dev$TARGET_APT_ARCH \ @@ -62,8 +66,24 @@ if [[ $RUNNER_OS == 'Linux' ]]; then libdrm-dev$TARGET_APT_ARCH \ libgbm-dev$TARGET_APT_ARCH \ libpulse-dev$TARGET_APT_ARCH + + if [[ $TARGET_APT_ARCH != :i386 ]]; then + # Build libdecor. + # This is required so that window decorations can work on wayland. + # The support will only be enabled in SDL, but we're not shipping the libdecor binaries + # because making them work from a c# app as everything else does (via runtimes) is too difficult. + # Also skip i386 because attempting to support this for i386 is a pain. + # Special shoutouts to gnome for refusing to support server-side decorations. + git clone https://gitlab.freedesktop.org/libdecor/libdecor.git + cd libdecor + git checkout 0.2.2 + meson build --buildtype release + $SUDO meson install -C build + cd .. + fi fi + cmake -B build $FLAGS -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON # Build