diff --git a/ports/sdl2/alsa-dep-fix.patch b/ports/sdl2/alsa-dep-fix.patch index 5b2c77b937d803..5ee6eefe22f1f5 100644 --- a/ports/sdl2/alsa-dep-fix.patch +++ b/ports/sdl2/alsa-dep-fix.patch @@ -2,12 +2,13 @@ diff --git a/SDL2Config.cmake.in b/SDL2Config.cmake.in index cc8bcf26d..ead829767 100644 --- a/SDL2Config.cmake.in +++ b/SDL2Config.cmake.in -@@ -35,7 +35,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/sdlfind.cmake") +@@ -35,7 +35,8 @@ include("${CMAKE_CURRENT_LIST_DIR}/sdlfind.cmake") set(SDL_ALSA @SDL_ALSA@) set(SDL_ALSA_SHARED @SDL_ALSA_SHARED@) -if(SDL_ALSA AND NOT SDL_ALSA_SHARED AND TARGET SDL2::SDL2-static) +if(SDL_ALSA) ++ set(CMAKE_REQUIRE_FIND_PACKAGE_ALSA 1) sdlFindALSA() endif() unset(SDL_ALSA) diff --git a/ports/sdl2/cxx-linkage-pkgconfig.diff b/ports/sdl2/cxx-linkage-pkgconfig.diff new file mode 100644 index 00000000000000..beaed424cf916d --- /dev/null +++ b/ports/sdl2/cxx-linkage-pkgconfig.diff @@ -0,0 +1,24 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2a91824..a8e9de4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3162,6 +3162,19 @@ set(SDL_STATIC_LIBS ${SDL_LIBS} ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) + list(REMOVE_DUPLICATES SDL_STATIC_LIBS) + listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS) + set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS}) ++if("${SOURCE_FILES};" MATCHES "[.]cpp;") ++ set(FAKE_CXX_LINKAGE "") ++ foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) ++ if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) ++ continue() ++ elseif(EXISTS "${lib}") ++ string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") ++ else() ++ string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") ++ endif() ++ endforeach() ++ string(APPEND SDL_STATIC_LIBS "${FAKE_CXX_LINKAGE}") ++endif() + listtostr(SDL_LIBS _SDL_LIBS) + set(SDL_LIBS ${_SDL_LIBS}) + listtostr(SDL_CFLAGS _SDL_CFLAGS "") diff --git a/ports/sdl2/portfile.cmake b/ports/sdl2/portfile.cmake index 5ed78165721312..18a2633a2dd3f4 100644 --- a/ports/sdl2/portfile.cmake +++ b/ports/sdl2/portfile.cmake @@ -7,6 +7,7 @@ vcpkg_from_github( PATCHES deps.patch alsa-dep-fix.patch + cxx-linkage-pkgconfig.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL_STATIC) @@ -16,14 +17,11 @@ string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FORCE_STATIC_VCRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES alsa SDL_ALSA - alsa CMAKE_REQUIRE_FIND_PACKAGE_ALSA ibus SDL_IBUS samplerate SDL_LIBSAMPLERATE vulkan SDL_VULKAN wayland SDL_WAYLAND x11 SDL_X11 - INVERTED_FEATURES - alsa CMAKE_DISABLE_FIND_PACKAGE_ALSA ) if ("x11" IN_LIST FEATURES) @@ -49,13 +47,11 @@ vcpkg_cmake_configure( -DSDL_FORCE_STATIC_VCRT=${FORCE_STATIC_VCRT} -DSDL_LIBC=ON -DSDL_TEST=OFF - -DSDL_INSTALL_CMAKEDIR="cmake" + -DSDL_INSTALL_CMAKEDIR=cmake -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON - -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON -DSDL_LIBSAMPLERATE_SHARED=OFF MAYBE_UNUSED_VARIABLES SDL_FORCE_STATIC_VCRT - PKG_CONFIG_USE_CMAKE_PREFIX_PATH ) vcpkg_cmake_install() @@ -105,7 +101,7 @@ file(STRINGS "${SOURCE_PATH}/CMakeLists.txt" DYLIB_CURRENT_VERSION REGEX ${DYLIB string(REGEX REPLACE ${DYLIB_COMPATIBILITY_VERSION_REGEX} "\\1" DYLIB_COMPATIBILITY_VERSION "${DYLIB_COMPATIBILITY_VERSION}") string(REGEX REPLACE ${DYLIB_CURRENT_VERSION_REGEX} "\\1" DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION}") -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" AND NOT VCPKG_TARGET_IS_ANDROID) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2main" "-lSDL2maind" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2 " "-lSDL2d " IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2-static " "-lSDL2-staticd " IGNORE_UNCHANGED) diff --git a/ports/sdl2/vcpkg.json b/ports/sdl2/vcpkg.json index 830ec5925c86d7..26f7a4e9151cfb 100644 --- a/ports/sdl2/vcpkg.json +++ b/ports/sdl2/vcpkg.json @@ -1,6 +1,7 @@ { "name": "sdl2", "version": "2.30.5", + "port-version": 1, "description": "Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.", "homepage": "https://www.libsdl.org/download-2.0.php", "license": "Zlib", diff --git a/versions/baseline.json b/versions/baseline.json index b4fd3891634b40..7cfc5240314b07 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -8034,7 +8034,7 @@ }, "sdl2": { "baseline": "2.30.5", - "port-version": 0 + "port-version": 1 }, "sdl2-gfx": { "baseline": "1.0.4", diff --git a/versions/s-/sdl2.json b/versions/s-/sdl2.json index d7ded1dee66a1d..892de334df1588 100644 --- a/versions/s-/sdl2.json +++ b/versions/s-/sdl2.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "e28edc448b13fae33fc8956adc9017e691a9a735", + "version": "2.30.5", + "port-version": 1 + }, { "git-tree": "ba79a866e3193439c7d9e2ec3ac1ceea368088d9", "version": "2.30.5",