From 4350091117bfadc4da698e31e7eb07727b0b5cc1 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Thu, 16 Oct 2025 17:11:34 +0900 Subject: [PATCH] [Build] Remove gtk deps --- .github/workflows/CI.yml | 2 +- docs/building.md | 2 +- premake5.lua | 12 +++++++++++- src/xenia/base/main_init_posix.cc | 11 +++-------- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 35007b418..a4461a772 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -78,7 +78,7 @@ jobs: wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc sudo apt-add-repository "deb http://apt.llvm.org/${UBUNTU_BASE}/ llvm-toolchain-${UBUNTU_BASE}-20 main" sudo apt-get -y update - sudo apt-get -y install mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libgtk-3-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-20 ninja-build spirv-tools libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-cursor0 libxcb-shape0 + sudo apt-get -y install mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-20 ninja-build spirv-tools libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-cursor0 libxcb-shape0 libfontconfig1-dev libxtst-dev # Install Qt 6.9.2 via aqtinstall if [ '${{ steps.cache-qt-linux.outputs.cache-hit }}' != 'true' ]; then diff --git a/docs/building.md b/docs/building.md index add13fd6b..7156452f9 100644 --- a/docs/building.md +++ b/docs/building.md @@ -115,7 +115,7 @@ Clang-19 or newer should be available from system repositories on all up to date You will also need some development libraries. To get them on an Ubuntu system: ```sh -sudo apt-get install build-essential mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libgtk-3-dev liblz4-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-19 llvm-19 ninja-build libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-cursor0 +sudo apt-get install build-essential mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev liblz4-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-19 llvm-19 ninja-build libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-cursor0 ``` In addition, you will need up to date Vulkan libraries and drivers for your hardware, which most distributions have in their standard repositories nowadays. diff --git a/premake5.lua b/premake5.lua index 96b11f259..1583568ac 100644 --- a/premake5.lua +++ b/premake5.lua @@ -136,7 +136,6 @@ filter({"configurations:Release", "platforms:Windows"}) -- "toolset:msc" filter("platforms:Linux") system("linux") toolset("clang") - pkg_config.all("gtk+-x11-3.0") local qt_dir = os.getenv("QT_DIR") if qt_dir then includedirs({ @@ -400,6 +399,17 @@ workspace("xenia") }) removefatalwarnings("All") + -- Add POSIX feature test macros for FFmpeg on Linux + if prj.name == "libavutil" or prj.name == "libavcodec" or prj.name == "libavformat" then + filter({"platforms:Linux"}) + defines({ + "_GNU_SOURCE", + "_POSIX_C_SOURCE=200809L", + "_XOPEN_SOURCE=700", + }) + filter({}) + end + -- Suppress warnings for third_party modules on Windows filter({"platforms:Windows"}) if string.startswith(prj.name, "third_party") or diff --git a/src/xenia/base/main_init_posix.cc b/src/xenia/base/main_init_posix.cc index 324846ee5..b1da2ad09 100644 --- a/src/xenia/base/main_init_posix.cc +++ b/src/xenia/base/main_init_posix.cc @@ -6,9 +6,9 @@ * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ -#include -#include #include +#include +#include class StartupCpuFeatureCheck { public: @@ -24,12 +24,7 @@ class StartupCpuFeatureCheck { if (error_message == nullptr) { return; } else { - GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT; - auto dialog = - gtk_message_dialog_new(nullptr, flags, GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, "%s", error_message); - gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); + fprintf(stderr, "ERROR: %s\n", error_message); exit(1); } }