From 5b9a26ba6c1f2c6ec96c4f83079fd6c1590d6e09 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Tue, 20 May 2025 01:36:14 +0000 Subject: [PATCH] build: make some minor CMake improvements Default `ENABLE_SDL3` to whether `find_package(SDL3)` can find it. Only add libsamplerate for SDL2 with vcpkg. Install gettext tools on Windows if they are not available, not just under MSVC. This makes the `x86-mingw-static` triplet work as well. Fix syntax error. Signed-off-by: Rafael Kitover --- cmake/Dependencies.cmake | 6 +++--- cmake/Options.cmake | 5 ++++- cmake/SDL3 | 1 - src/wx/CMakeLists.txt | 10 ++++++++-- 4 files changed, 15 insertions(+), 7 deletions(-) delete mode 120000 cmake/SDL3 diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index be5216a7..224ce049 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -26,9 +26,9 @@ else() find_package(SDL2 REQUIRED) endif() -# Add libsamplerate to SDL3 with vcpkg +# Add libsamplerate to SDL2 with vcpkg unset(SDL_LIBRARY_TEMP) -if(CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg") +if((NOT ENABLE_SDL3) AND CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg") if(WIN32) unset(arch_suffix) unset(path_prefix) @@ -40,7 +40,7 @@ if(CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg") endif() set(installed_prefix ${_VCPKG_INSTALLED_DIR}/${WINARCH}-windows${arch_suffix}/${path_prefix}) - SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} ${installed_prefix}/lib/samplerate.lib) + SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} "${installed_prefix}/lib/samplerate${CMAKE_STATIC_LIBRARY_SUFFIX}") else() SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} -lsamplerate) endif() diff --git a/cmake/Options.cmake b/cmake/Options.cmake index 0c49780a..6336f3a6 100644 --- a/cmake/Options.cmake +++ b/cmake/Options.cmake @@ -14,7 +14,10 @@ if(WIN32 OR APPLE) set(ENABLE_SDL_DEFAULT OFF) endif() -option(ENABLE_SDL3 "Use SDL3" ON) +find_package(SDL3 QUIET) + +option(ENABLE_SDL3 "Use SDL3" "${SDL3_FOUND}") + option(ENABLE_GENERIC_FILE_DIALOGS "Use generic file dialogs" OFF) option(DISABLE_OPENGL "Disable OpenGL" OFF) option(ENABLE_SDL "Build the SDL port" ${ENABLE_SDL_DEFAULT}) diff --git a/cmake/SDL3 b/cmake/SDL3 deleted file mode 120000 index 3f817a9e..00000000 --- a/cmake/SDL3 +++ /dev/null @@ -1 +0,0 @@ -/Users/andyvand/vbam-build-mac-ARM64/root/lib/cmake/SDL3 \ No newline at end of file diff --git a/src/wx/CMakeLists.txt b/src/wx/CMakeLists.txt index c4cd4655..693e9a58 100644 --- a/src/wx/CMakeLists.txt +++ b/src/wx/CMakeLists.txt @@ -89,7 +89,10 @@ if(NOT ZIP_PROGRAM) endif() endif() -if(MSVC) +find_program(XGETTEXT xgettext) +find_program(MSGINIT msginit) + +if(CMAKE_HOST_WIN32 AND (NOT XGETTEXT OR NOT MSGINIT)) # Install gettext tools from nuget. # First fetch the nuget binary. @@ -117,6 +120,9 @@ if(MSVC) list(APPEND CMAKE_PROGRAM_PATH ${pkg}/tools/bin) endif() +unset(XGETTEXT) +unset(MSGINIT) + find_package(Gettext REQUIRED) find_program(XGETTEXT xgettext) find_program(MSGINIT msginit) @@ -386,7 +392,7 @@ if(APPLE) ) endif() endif() -/ + target_sources(visualboyadvance-m PRIVATE ${VBAM_WX_COMMON} ${VBAM_ICON_PATH}) if(ENABLE_SDL3)