diff options
Diffstat (limited to 'vcpkg/ports/libgd')
| -rw-r--r-- | vcpkg/ports/libgd/cmake-project-include.cmake | 3 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/control-build.patch | 59 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/fix-dependencies.cmake | 39 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/fix-static-usage.patch | 15 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/fix_msvc_build.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/portfile.cmake | 88 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/usage | 6 | ||||
| -rw-r--r-- | vcpkg/ports/libgd/vcpkg.json | 67 |
8 files changed, 289 insertions, 0 deletions
diff --git a/vcpkg/ports/libgd/cmake-project-include.cmake b/vcpkg/ports/libgd/cmake-project-include.cmake new file mode 100644 index 0000000..9993db0 --- /dev/null +++ b/vcpkg/ports/libgd/cmake-project-include.cmake @@ -0,0 +1,3 @@ +if(NOT BUILD_SHARED_LIBS)
+ add_definitions(-DNONDLL)
+endif()
diff --git a/vcpkg/ports/libgd/control-build.patch b/vcpkg/ports/libgd/control-build.patch new file mode 100644 index 0000000..ba87b3a --- /dev/null +++ b/vcpkg/ports/libgd/control-build.patch @@ -0,0 +1,59 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6b3e5b3..bab784a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -182,6 +182,21 @@ else (USE_EXT_GD) + + SET(ENABLE_GD_FORMATS ${ENABLE_GD_FORMATS}) + ++ # The remaining code uses <Pkg>_FOUND, but this could be set as side effect. ++ # Restore explicit control. <Pkg>_FOUND is implied by <Pkg>_REQUIRED. ++ set(FONTCONFIG_FOUND ${ENABLE_FONTCONFIG}) ++ set(FREETYPE_FOUND ${ENABLE_FREETYPE}) ++ set(HEIF_FOUND ${ENABLE_HEIF}) ++ set(ICONV_FOUND ${ENABLE_ICONV}) ++ set(JPEG_FOUND ${ENABLE_JPEG}) ++ set(LIQ_FOUND ${ENABLE_LIQ}) ++ set(PNG_FOUND ${ENABLE_PNG}) ++ set(RAQM_FOUND ${ENABLE_RAQM}) ++ set(TIFF_FOUND ${ENABLE_TIFF}) ++ set(WEBP_FOUND ${ENABLE_WEBP}) ++ set(XPM_FOUND ${ENABLE_XPM}) ++ set(ZLIB_FOUND ${ENABLE_GD_FORMATS}) ++ + if (FREETYPE_FOUND) + INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS}) + SET(HAVE_FT2BUILD_H 1) +@@ -299,8 +299,6 @@ else (USE_EXT_GD) + endif (USE_EXT_GD) + + add_subdirectory(tests) +-add_subdirectory(examples) +-add_subdirectory(docs) + + add_custom_target(distclean ${GD_SOURCE_DIR}/cmake/distclean.sh) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3839bc7..4cb56eb 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -150,6 +150,9 @@ if (ZLIB_FOUND) + set(GD_PROGRAMS ${GD_PROGRAMS} gd2copypal gd2togif giftogd2) + endif() + ++if(NOT ENABLE_TOOLS) ++ set(GD_PROGRAMS "") ++endif() + foreach(program ${GD_PROGRAMS}) + add_executable(${program} ${program}.c) + if (WIN32) +@@ -180,7 +183,9 @@ install(TARGETS ${GD_INSTALL_TARGETS} + RUNTIME DESTINATION bin + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++if(ENABLE_TOOLS) + install(PROGRAMS bdftogd DESTINATION bin) ++endif() + install(FILES + gd.h + gd_color_map.h diff --git a/vcpkg/ports/libgd/fix-dependencies.cmake b/vcpkg/ports/libgd/fix-dependencies.cmake new file mode 100644 index 0000000..48ad1fd --- /dev/null +++ b/vcpkg/ports/libgd/fix-dependencies.cmake @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bab784a..76c20e8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -134,7 +134,10 @@ else (USE_EXT_GD) + endif (ENABLE_ICONV) + + IF (ENABLE_WEBP) +- FIND_PACKAGE(WEBP REQUIRED) ++ find_package(WEBP NAMES WebP CONFIG REQUIRED) ++ set(WEBP_INCLUDE_DIR "") ++ set(WEBP_LIBRARIES WebP::webp) ++ list(APPEND PKG_REQUIRES_PRIVATES libwebp) + ENDIF (ENABLE_WEBP) + + IF (ENABLE_HEIF) +@@ -173,7 +176,9 @@ else (USE_EXT_GD) + endif (ENABLE_XPM) + + if (ENABLE_FONTCONFIG) +- FIND_PACKAGE(FontConfig REQUIRED) ++ FIND_PACKAGE(Fontconfig REQUIRED) ++ set(FONTCONFIG_INCLUDE_DIR "") ++ set(FONTCONFIG_LIBRARY Fontconfig::Fontconfig) + endif (ENABLE_FONTCONFIG) + + if (ENABLE_RAQM) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 4cb56eb..74fa26b 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -125,7 +125,6 @@ endif() + SET(LIBS_PRIVATES + ${ICONV_LIBRARIES} + ${LIQ_LIBRARIES} +- ${WEBP_LIBRARIES} + ) + + set(GD_PROGRAMS gdcmpgif) diff --git a/vcpkg/ports/libgd/fix-static-usage.patch b/vcpkg/ports/libgd/fix-static-usage.patch new file mode 100644 index 0000000..96fb88d --- /dev/null +++ b/vcpkg/ports/libgd/fix-static-usage.patch @@ -0,0 +1,15 @@ +diff --git a/src/gd.h b/src/gd.h +index 3056039..8a7608a 100644 +--- a/src/gd.h ++++ b/src/gd.h +@@ -62,6 +62,10 @@ extern "C" { + # else + # define BGD_EXPORT_DATA_PROT __declspec(dllimport) + # endif ++# ifdef NONDLL ++# undef BGD_EXPORT_DATA_PROT ++# define BGD_EXPORT_DATA_PROT ++# endif + # endif + # define BGD_STDCALL __stdcall + # define BGD_EXPORT_DATA_IMPL diff --git a/vcpkg/ports/libgd/fix_msvc_build.patch b/vcpkg/ports/libgd/fix_msvc_build.patch new file mode 100644 index 0000000..eff795d --- /dev/null +++ b/vcpkg/ports/libgd/fix_msvc_build.patch @@ -0,0 +1,12 @@ +diff --git a/src/gd_webp.c b/src/gd_webp.c +index e9ad802..7631f27 100644 +--- a/src/gd_webp.c ++++ b/src/gd_webp.c +@@ -16,6 +16,7 @@ + #include "gd.h" + #include "gd_errors.h" + #include "gdhelpers.h" ++#include "gd_intern.h" # for ssize_t + + #ifdef HAVE_LIBWEBP + #include "webp/decode.h" diff --git a/vcpkg/ports/libgd/portfile.cmake b/vcpkg/ports/libgd/portfile.cmake new file mode 100644 index 0000000..cd78ebc --- /dev/null +++ b/vcpkg/ports/libgd/portfile.cmake @@ -0,0 +1,88 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libgd/libgd + REF b5319a41286107b53daa0e08e402aa1819764bdc # gd-2.3.3 + SHA512 b4c6ca1d9575048de35a38b0db69e7380e160293133c1f72ae570f83ce614d4f2fd2615d217f7a0023e2265652c1089561b906beabca56c15e6ec0250e4394b2 + HEAD_REF master + PATCHES + control-build.patch + fix-dependencies.cmake + fix_msvc_build.patch + fix-static-usage.patch +) + +# Delete vendored Find modules +file(REMOVE + "${SOURCE_PATH}/cmake/modules/CMakeParseArguments.cmake" + "${SOURCE_PATH}/cmake/modules/FindFontConfig.cmake" + "${SOURCE_PATH}/cmake/modules/FindFreetype.cmake" + "${SOURCE_PATH}/cmake/modules/FindJPEG.cmake" + "${SOURCE_PATH}/cmake/modules/FindPackageHandleStandardArgs.cmake" + "${SOURCE_PATH}/cmake/modules/FindPNG.cmake" + "${SOURCE_PATH}/cmake/modules/FindWEBP.cmake" +) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + fontconfig ENABLE_FONTCONFIG + freetype ENABLE_FREETYPE + jpeg ENABLE_JPEG + tiff ENABLE_TIFF + png ENABLE_PNG + tools ENABLE_TOOLS + webp ENABLE_WEBP +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DBUILD_STATIC_LIBS=${BUILD_STATIC} + "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" + OPTIONS_DEBUG + -DENABLE_TOOLS=OFF +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +if(BUILD_STATIC) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gd.h" "ifdef NONDLL" "if 1") +endif() +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + string(REPLACE "_dynamic" "" suffix "_${VCPKG_LIBRARY_LINKAGE}") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gdlib.pc" " -lgd" " -llibgd${suffix}") + if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gdlib.pc" " -lgd" " -llibgd${suffix}") + endif() +endif() +vcpkg_fixup_pkgconfig() + +if(ENABLE_TOOLS) + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") + file(RENAME "${CURRENT_PACKAGES_DIR}/bin/bdftogd" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bdftogd") + vcpkg_list(SET tool_names gdcmpgif) + if(ENABLE_PNG) + vcpkg_list(APPEND tool_names gdtopng pngtogd) + endif() + if(NOT VCPKG_TARGET_IS_WINDOWS) + if(ENABLE_FREETYPE AND ENABLE_JPEG) + vcpkg_list(APPEND tool_names annotate) + endif() + if(ENABLE_PNG) + vcpkg_list(APPEND tool_names webpng) + endif() + endif() + vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/share/doc" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libgd/usage b/vcpkg/ports/libgd/usage new file mode 100644 index 0000000..35bb9a4 --- /dev/null +++ b/vcpkg/ports/libgd/usage @@ -0,0 +1,6 @@ +libgd can be imported via CMake FindPkgConfig module: + + find_package(PkgConfig) + pkg_check_modules(LIBGD REQUIRED IMPORTED_TARGET gdlib) + + target_link_libraries(main PRIVATE PkgConfig::LIBGD) diff --git a/vcpkg/ports/libgd/vcpkg.json b/vcpkg/ports/libgd/vcpkg.json new file mode 100644 index 0000000..eb0eb79 --- /dev/null +++ b/vcpkg/ports/libgd/vcpkg.json @@ -0,0 +1,67 @@ +{ + "name": "libgd", + "version-semver": "2.3.3", + "port-version": 3, + "description": "Open source code library for the dynamic creation of images by programmers.", + "homepage": "https://github.com/libgd/libgd", + "license": "GD", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + } + ], + "default-features": [ + "fontconfig", + "freetype", + "jpeg", + "png", + "tiff", + "webp" + ], + "features": { + "fontconfig": { + "description": "Support for Fontconfig", + "dependencies": [ + "fontconfig" + ] + }, + "freetype": { + "description": "Support for FreeType", + "dependencies": [ + "freetype" + ] + }, + "jpeg": { + "description": "Support for JPEG", + "dependencies": [ + "libjpeg-turbo" + ] + }, + "png": { + "description": "Support for PNG", + "dependencies": [ + "libpng", + "zlib" + ] + }, + "tiff": { + "description": "Support for TIFF", + "dependencies": [ + { + "name": "tiff", + "default-features": false + } + ] + }, + "tools": { + "description": "Build tools" + }, + "webp": { + "description": "Support for WebP", + "dependencies": [ + "libwebp" + ] + } + } +} |