|
| 1 | +vcpkg_from_github( |
| 2 | + OUT_SOURCE_PATH SOURCE_PATH |
| 3 | + REPO libsdl-org/SDL |
| 4 | + REF "release-${VERSION}" |
| 5 | + SHA512 0ce3aa0bd340465039c4dad8e562b4ac612932e23f011629522ceaf9cd3317b2a1905b30f190a5e6d79ac43a7a5db75dff712600570776e5bbef41fbedaab5c4 |
| 6 | + HEAD_REF main |
| 7 | + PATCHES |
| 8 | + deps.patch |
| 9 | + alsa-dep-fix.patch |
| 10 | + cxx-linkage-pkgconfig.diff |
| 11 | +) |
| 12 | + |
| 13 | +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL_STATIC) |
| 14 | +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SDL_SHARED) |
| 15 | +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FORCE_STATIC_VCRT) |
| 16 | + |
| 17 | +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS |
| 18 | + FEATURES |
| 19 | + alsa SDL_ALSA |
| 20 | + dbus SDL_DBUS |
| 21 | + ibus SDL_IBUS |
| 22 | + samplerate SDL_LIBSAMPLERATE |
| 23 | + vulkan SDL_VULKAN |
| 24 | + wayland SDL_WAYLAND |
| 25 | + x11 SDL_X11 |
| 26 | +) |
| 27 | + |
| 28 | +if ("x11" IN_LIST FEATURES) |
| 29 | + message(WARNING "You will need to install Xorg dependencies to use feature x11:\nsudo apt install libx11-dev libxft-dev libxext-dev\n") |
| 30 | +endif() |
| 31 | +if ("wayland" IN_LIST FEATURES) |
| 32 | + message(WARNING "You will need to install Wayland dependencies to use feature wayland:\nsudo apt install libwayland-dev libxkbcommon-dev libegl1-mesa-dev\n") |
| 33 | +endif() |
| 34 | +if ("ibus" IN_LIST FEATURES) |
| 35 | + message(WARNING "You will need to install ibus dependencies to use feature ibus:\nsudo apt install libibus-1.0-dev\n") |
| 36 | +endif() |
| 37 | + |
| 38 | +if(VCPKG_TARGET_IS_UWP) |
| 39 | + set(configure_opts WINDOWS_USE_MSBUILD) |
| 40 | +endif() |
| 41 | + |
| 42 | +vcpkg_cmake_configure( |
| 43 | + SOURCE_PATH "${SOURCE_PATH}" |
| 44 | + ${configure_opts} |
| 45 | + OPTIONS ${FEATURE_OPTIONS} |
| 46 | + -DSDL_STATIC=${SDL_STATIC} |
| 47 | + -DSDL_SHARED=${SDL_SHARED} |
| 48 | + -DSDL_FORCE_STATIC_VCRT=${FORCE_STATIC_VCRT} |
| 49 | + -DSDL_LIBC=ON |
| 50 | + -DSDL_TEST=OFF |
| 51 | + -DSDL_INSTALL_CMAKEDIR=cmake |
| 52 | + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON |
| 53 | + -DSDL_LIBSAMPLERATE_SHARED=OFF |
| 54 | + MAYBE_UNUSED_VARIABLES |
| 55 | + SDL_FORCE_STATIC_VCRT |
| 56 | +) |
| 57 | + |
| 58 | +vcpkg_cmake_install() |
| 59 | +vcpkg_cmake_config_fixup(CONFIG_PATH cmake) |
| 60 | + |
| 61 | +file(REMOVE_RECURSE |
| 62 | + "${CURRENT_PACKAGES_DIR}/debug/include" |
| 63 | + "${CURRENT_PACKAGES_DIR}/debug/share" |
| 64 | + "${CURRENT_PACKAGES_DIR}/bin/sdl2-config" |
| 65 | + "${CURRENT_PACKAGES_DIR}/debug/bin/sdl2-config" |
| 66 | + "${CURRENT_PACKAGES_DIR}/SDL2.framework" |
| 67 | + "${CURRENT_PACKAGES_DIR}/debug/SDL2.framework" |
| 68 | + "${CURRENT_PACKAGES_DIR}/share/licenses" |
| 69 | + "${CURRENT_PACKAGES_DIR}/share/aclocal" |
| 70 | +) |
| 71 | + |
| 72 | +file(GLOB BINS "${CURRENT_PACKAGES_DIR}/debug/bin/*" "${CURRENT_PACKAGES_DIR}/bin/*") |
| 73 | +if(NOT BINS) |
| 74 | + file(REMOVE_RECURSE |
| 75 | + "${CURRENT_PACKAGES_DIR}/bin" |
| 76 | + "${CURRENT_PACKAGES_DIR}/debug/bin" |
| 77 | + ) |
| 78 | +endif() |
| 79 | + |
| 80 | +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_UWP AND NOT VCPKG_TARGET_IS_MINGW) |
| 81 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") |
| 82 | + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") |
| 83 | + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/SDL2main.lib") |
| 84 | + endif() |
| 85 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") |
| 86 | + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") |
| 87 | + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/SDL2maind.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDL2maind.lib") |
| 88 | + endif() |
| 89 | + |
| 90 | + file(GLOB SHARE_FILES "${CURRENT_PACKAGES_DIR}/share/sdl2/*.cmake") |
| 91 | + foreach(SHARE_FILE ${SHARE_FILES}) |
| 92 | + vcpkg_replace_string("${SHARE_FILE}" "lib/SDL2main" "lib/manual-link/SDL2main" IGNORE_UNCHANGED) |
| 93 | + endforeach() |
| 94 | +endif() |
| 95 | + |
| 96 | +vcpkg_copy_pdbs() |
| 97 | + |
| 98 | +set(DYLIB_COMPATIBILITY_VERSION_REGEX "set\\(DYLIB_COMPATIBILITY_VERSION (.+)\\)") |
| 99 | +set(DYLIB_CURRENT_VERSION_REGEX "set\\(DYLIB_CURRENT_VERSION (.+)\\)") |
| 100 | +file(STRINGS "${SOURCE_PATH}/CMakeLists.txt" DYLIB_COMPATIBILITY_VERSION REGEX ${DYLIB_COMPATIBILITY_VERSION_REGEX}) |
| 101 | +file(STRINGS "${SOURCE_PATH}/CMakeLists.txt" DYLIB_CURRENT_VERSION REGEX ${DYLIB_CURRENT_VERSION_REGEX}) |
| 102 | +string(REGEX REPLACE ${DYLIB_COMPATIBILITY_VERSION_REGEX} "\\1" DYLIB_COMPATIBILITY_VERSION "${DYLIB_COMPATIBILITY_VERSION}") |
| 103 | +string(REGEX REPLACE ${DYLIB_CURRENT_VERSION_REGEX} "\\1" DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION}") |
| 104 | + |
| 105 | +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" AND NOT VCPKG_TARGET_IS_ANDROID) |
| 106 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2main" "-lSDL2maind" IGNORE_UNCHANGED) |
| 107 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2 " "-lSDL2d " IGNORE_UNCHANGED) |
| 108 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2-static " "-lSDL2-staticd " IGNORE_UNCHANGED) |
| 109 | +endif() |
| 110 | + |
| 111 | +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) |
| 112 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") |
| 113 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/sdl2.pc" "-lSDL2-static " " ") |
| 114 | + endif() |
| 115 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") |
| 116 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2-staticd " " ") |
| 117 | + endif() |
| 118 | +endif() |
| 119 | + |
| 120 | +if(VCPKG_TARGET_IS_UWP) |
| 121 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") |
| 122 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/sdl2.pc" "$<$<CONFIG:Debug>:d>.lib" "") |
| 123 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/sdl2.pc" "-l-nodefaultlib:" "-nodefaultlib:") |
| 124 | + endif() |
| 125 | + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") |
| 126 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "$<$<CONFIG:Debug>:d>.lib" "d") |
| 127 | + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-l-nodefaultlib:" "-nodefaultlib:") |
| 128 | + endif() |
| 129 | +endif() |
| 130 | + |
| 131 | +vcpkg_fixup_pkgconfig() |
| 132 | + |
| 133 | +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") |
| 134 | +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") |
0 commit comments