diff options
Diffstat (limited to 'vcpkg/ports/sdl2-image')
| -rw-r--r-- | vcpkg/ports/sdl2-image/fix-findwebp.patch | 26 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2-image/portfile.cmake | 62 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2-image/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2-image/vcpkg.json | 52 |
4 files changed, 144 insertions, 0 deletions
diff --git a/vcpkg/ports/sdl2-image/fix-findwebp.patch b/vcpkg/ports/sdl2-image/fix-findwebp.patch new file mode 100644 index 0000000..4ec2972 --- /dev/null +++ b/vcpkg/ports/sdl2-image/fix-findwebp.patch @@ -0,0 +1,26 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4ceee1d..9354718 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -810,7 +810,7 @@ if(SDL2IMAGE_WEBP) + set_target_properties(webp PROPERTIES EXPORT_NAME "external_libwebp") + add_library(SDL2_image::external_libwebp ALIAS webp) + else() +- find_package(webp ${required}) ++ find_package(webp NAMES WebP CONFIG ${required}) + if(webp_FOUND) + set(SDL2IMAGE_WEBP_ENABLED TRUE) + message(STATUS "${PROJECT_NAME}: Using system libwebp") +diff --git a/SDL2_imageConfig.cmake.in b/SDL2_imageConfig.cmake.in +index 7c7efab..925bbc4 100644 +--- a/SDL2_imageConfig.cmake.in ++++ b/SDL2_imageConfig.cmake.in +@@ -74,7 +74,7 @@ endif() + + if(SDL2IMAGE_WEBP AND NOT SDL2IMAGE_VENDORED AND NOT TARGET WebP::webp) + list(APPEND webp_ROOT "${CMAKE_CURRENT_LIST_DIR}") +- find_dependency(webp) ++ find_dependency(webp NAMES WebP CONFIG) + endif() + + #FIXME: can't add SDL2IMAGE_SDL2_REQUIRED_VERSION since not all SDL2 installs ship SDL2ConfigVersion.cmake diff --git a/vcpkg/ports/sdl2-image/portfile.cmake b/vcpkg/ports/sdl2-image/portfile.cmake new file mode 100644 index 0000000..a21ce36 --- /dev/null +++ b/vcpkg/ports/sdl2-image/portfile.cmake @@ -0,0 +1,62 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libsdl-org/SDL_image + REF "release-${VERSION}" + SHA512 3fef846eb0ad51a8b346bb421c87eb81f0e2f186d700a219ebf17146397da404b3683853322989ed939b1672cc36b799582f24bc58a0393fc6c698a65cda2b82 + HEAD_REF main + PATCHES + fix-findwebp.patch +) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + avif SDL2IMAGE_AVIF + libjpeg-turbo SDL2IMAGE_JPG + libwebp SDL2IMAGE_WEBP + tiff SDL2IMAGE_TIF +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DSDL2IMAGE_BACKEND_IMAGEIO=OFF + -DSDL2IMAGE_BACKEND_STB=OFF + -DSDL2IMAGE_DEPS_SHARED=OFF + -DSDL2IMAGE_SAMPLES=OFF + -DSDL2IMAGE_VENDORED=OFF +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") + vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_image CONFIG_PATH cmake) +elseif(EXISTS "${CURRENT_PACKAGES_DIR}/SDL2_image.framework/Resources") + vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_image CONFIG_PATH SDL2_image.framework/Resources) +else() + vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_image CONFIG_PATH lib/cmake/SDL2_image) +endif() + +vcpkg_fixup_pkgconfig() + +set(debug_libname "SDL2_imaged") +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/SDL2_image.pc" "-lSDL2_image" "-lSDL2_image-static") + set(debug_libname "SDL2_image-staticd") +endif() + +if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/SDL2_image.pc" "-lSDL2_image" "-l${debug_libname}") +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/SDL2_image.framework" + "${CURRENT_PACKAGES_DIR}/debug/SDL2_image.framework" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") diff --git a/vcpkg/ports/sdl2-image/usage b/vcpkg/ports/sdl2-image/usage new file mode 100644 index 0000000..ab9d322 --- /dev/null +++ b/vcpkg/ports/sdl2-image/usage @@ -0,0 +1,4 @@ +sdl2-image provides CMake targets: + + find_package(SDL2_image CONFIG REQUIRED) + target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:SDL2_image::SDL2_image>,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static>) diff --git a/vcpkg/ports/sdl2-image/vcpkg.json b/vcpkg/ports/sdl2-image/vcpkg.json new file mode 100644 index 0000000..7e11673 --- /dev/null +++ b/vcpkg/ports/sdl2-image/vcpkg.json @@ -0,0 +1,52 @@ +{ + "name": "sdl2-image", + "version": "2.8.8", + "port-version": 2, + "description": "SDL_image is an image file loading library. It loads images as SDL surfaces and textures, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV", + "homepage": "https://github.com/libsdl-org/SDL_image", + "license": "Zlib", + "dependencies": [ + "libpng", + { + "name": "sdl2", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "avif": { + "description": "Support for AVIF image format", + "dependencies": [ + "libavif" + ] + }, + "libjpeg-turbo": { + "description": "Support for JPEG image format", + "dependencies": [ + "libjpeg-turbo" + ] + }, + "libwebp": { + "description": "Support for WEBP image format.", + "dependencies": [ + "libwebp" + ] + }, + "tiff": { + "description": "Support for TIFF image format", + "dependencies": [ + { + "name": "tiff", + "default-features": false + } + ] + } + } +} |