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