aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/sdl2-image
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/sdl2-image')
-rw-r--r--vcpkg/ports/sdl2-image/fix-findwebp.patch26
-rw-r--r--vcpkg/ports/sdl2-image/portfile.cmake62
-rw-r--r--vcpkg/ports/sdl2-image/usage4
-rw-r--r--vcpkg/ports/sdl2-image/vcpkg.json52
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
+ }
+ ]
+ }
+ }
+}