From bad10342bd8cb55b4c727c6f20857c3dd2605efe Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Sat, 2 Aug 2025 06:20:37 +0000 Subject: [PATCH] build: use pkg-config on UNIX for SDL3 Signed-off-by: Rafael Kitover --- CMakeLists.txt | 1 + cmake/Dependencies.cmake | 14 +++++++++----- cmake/Options.cmake | 24 +++++++++++++++--------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 212b6045..f4127af3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ cmake_policy(VERSION 3.19...3.28.3) # Use new link library de-duplication behavior. cmake_policy(SET CMP0156 NEW) cmake_policy(SET CMP0179 NEW) +cmake_policy(SET CMP0181 NEW) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index e8e44c94..a721dc75 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -48,16 +48,20 @@ if((NOT ENABLE_SDL3) AND CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg") endif() if(ENABLE_SDL3) - if(VBAM_STATIC) - set(VBAM_SDL_LIBS SDL3::SDL3-static ${SDL_LIBRARY_TEMP}) + if(UNIX) + set(VBAM_SDL_LIBS "${SDL3_LIBRARIES}") else() - set(VBAM_SDL_LIBS SDL3::SDL3 ${SDL_LIBRARY_TEMP}) + if(VBAM_STATIC) + set(VBAM_SDL_LIBS SDL3::SDL3-static ${SDL_LIBRARY_TEMP}) + else() + set(VBAM_SDL_LIBS SDL3::SDL3 ${SDL_LIBRARY_TEMP}) + endif() endif() else() if(VBAM_STATIC) - set(VBAM_SDL_LIBS SDL2::SDL2-static ${SDL_LIBRARY_TEMP}) + set(VBAM_SDL_LIBS SDL2::SDL2-static ${SDL_LIBRARY_TEMP}) else() - set(VBAM_SDL_LIBS SDL2::SDL2 ${SDL_LIBRARY_TEMP}) + set(VBAM_SDL_LIBS SDL2::SDL2 ${SDL_LIBRARY_TEMP}) endif() endif() diff --git a/cmake/Options.cmake b/cmake/Options.cmake index 10cce55b..8f013988 100644 --- a/cmake/Options.cmake +++ b/cmake/Options.cmake @@ -40,15 +40,27 @@ if(VBAM_STATIC) endif() endif() -find_package(SDL3 QUIET) +if(CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg" AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^([xX]86_64|[aA][mM][dD]64)$") + set(PKG_CONFIG_EXECUTABLE "$ENV{VCPKG_ROOT}/installed/x64-windows/tools/pkgconf/pkgconf.exe") +endif() + +find_package(PkgConfig) + +if(UNIX) + pkg_check_modules(SDL3 sdl3 QUIET) +else() + find_package(SDL3 QUIET) +endif() option(ENABLE_SDL3 "Use SDL3" "${SDL3_FOUND}") if(NOT TRANSLATIONS_ONLY) if(ENABLE_SDL3) - find_package(SDL3 CONFIG REQUIRED) + if(NOT UNIX) + find_package(SDL3 REQUIRED) + endif() else() - find_package(SDL2 CONFIG REQUIRED) + find_package(SDL2 REQUIRED) endif() endif() @@ -93,12 +105,6 @@ if(APPLE AND NOT DISABLE_MACOS_PACKAGE_MANAGERS) include(MacPackageManagers) endif() -if(CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg" AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^([xX]86_64|[aA][mM][dD]64)$") - set(PKG_CONFIG_EXECUTABLE "$ENV{VCPKG_ROOT}/installed/x64-windows/tools/pkgconf/pkgconf.exe") -endif() - -find_package(PkgConfig) - # Link / SFML if(NOT TRANSLATIONS_ONLY) set(ENABLE_LINK_DEFAULT ON)