From deb4322e50b5d5bcdf7e697548b31c14d29947f3 Mon Sep 17 00:00:00 2001 From: Mikhail Paulyshka Date: Sat, 1 Apr 2017 23:20:26 +0300 Subject: [PATCH] [libgd] add version 2.2.4 --- ports/libgd/0001-fix-cmake.patch | 181 +++++++++++++++++++++++++++++++ ports/libgd/CONTROL | 4 + ports/libgd/portfile.cmake | 52 +++++++++ 3 files changed, 237 insertions(+) create mode 100644 ports/libgd/0001-fix-cmake.patch create mode 100644 ports/libgd/CONTROL create mode 100644 ports/libgd/portfile.cmake diff --git a/ports/libgd/0001-fix-cmake.patch b/ports/libgd/0001-fix-cmake.patch new file mode 100644 index 000000000..a1a316639 --- /dev/null +++ b/ports/libgd/0001-fix-cmake.patch @@ -0,0 +1,181 @@ +From 26fdb0f43b2d994de9a3d62f85fc650e8c495f18 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka +Date: Sat, 1 Apr 2017 23:16:18 +0300 +Subject: [PATCH] fix cmake + +--- + CMakeLists.txt | 53 +++++++++++++++++++++++---------------------- + src/CMakeLists.txt | 63 +++++++++++++++++++++++++++++------------------------- + 2 files changed, 62 insertions(+), 54 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 42934d0..796fa47 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -223,8 +223,10 @@ else (USE_EXT_GD) + add_subdirectory(src) + endif (USE_EXT_GD) + +-add_subdirectory(tests) +-add_subdirectory(examples) ++if(BUILD_TEST) ++ add_subdirectory(tests) ++ add_subdirectory(examples) ++endif() + + add_custom_target(distclean ${GD_SOURCE_DIR}/cmake/distclean.sh) + +@@ -246,29 +248,30 @@ IF (ENABLE_LIQ AND LIQ_BUILD) + ADD_DEPENDENCIES(${GD_LIB_STATIC} libimagequant) + ENDIF(ENABLE_LIQ AND LIQ_BUILD) + +- +-INSTALL(FILES docs/INSTALL DESTINATION share/docs) +-INSTALL(FILES docs/README.JPN DESTINATION share/docs) +-INSTALL(FILES docs/README.CMAKE DESTINATION share/docs) +-INSTALL(FILES docs/README.TESTING DESTINATION share/docs) +-INSTALL(FILES docs/README.TXT DESTINATION share/docs) +- +- +-INSTALL(FILES examples/arc.c DESTINATION share/docs) +-INSTALL(FILES examples/copyrotated.c DESTINATION share/docs) +-INSTALL(FILES examples/crop.c DESTINATION share/docs) +-INSTALL(FILES examples/flip.c DESTINATION share/docs) +-INSTALL(FILES examples/gif.c DESTINATION share/docs) +-INSTALL(FILES examples/nnquant.c DESTINATION share/docs) +-INSTALL(FILES examples/noIcon.pic DESTINATION share/docs) +-INSTALL(FILES examples/noIcon.sgi DESTINATION share/docs) +-INSTALL(FILES examples/noIcon.tga DESTINATION share/docs) +-INSTALL(FILES examples/noIconAlpha.tga DESTINATION share/docs) +-INSTALL(FILES examples/test_crop_threshold.png DESTINATION share/docs) +-INSTALL(FILES examples/tgaread.c DESTINATION share/docs) +-INSTALL(FILES examples/tiffread.c DESTINATION share/docs) +-INSTALL(FILES examples/windows.c DESTINATION share/docs) +- ++if(BUILD_DOCS) ++ INSTALL(FILES docs/INSTALL DESTINATION share/docs) ++ INSTALL(FILES docs/README.JPN DESTINATION share/docs) ++ INSTALL(FILES docs/README.CMAKE DESTINATION share/docs) ++ INSTALL(FILES docs/README.TESTING DESTINATION share/docs) ++ INSTALL(FILES docs/README.TXT DESTINATION share/docs) ++endif() ++ ++if(BUILD_EXAMPLES) ++ INSTALL(FILES examples/arc.c DESTINATION share/docs) ++ INSTALL(FILES examples/copyrotated.c DESTINATION share/docs) ++ INSTALL(FILES examples/crop.c DESTINATION share/docs) ++ INSTALL(FILES examples/flip.c DESTINATION share/docs) ++ INSTALL(FILES examples/gif.c DESTINATION share/docs) ++ INSTALL(FILES examples/nnquant.c DESTINATION share/docs) ++ INSTALL(FILES examples/noIcon.pic DESTINATION share/docs) ++ INSTALL(FILES examples/noIcon.sgi DESTINATION share/docs) ++ INSTALL(FILES examples/noIcon.tga DESTINATION share/docs) ++ INSTALL(FILES examples/noIconAlpha.tga DESTINATION share/docs) ++ INSTALL(FILES examples/test_crop_threshold.png DESTINATION share/docs) ++ INSTALL(FILES examples/tgaread.c DESTINATION share/docs) ++ INSTALL(FILES examples/tiffread.c DESTINATION share/docs) ++ INSTALL(FILES examples/windows.c DESTINATION share/docs) ++endif() + + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 08fd699..497dd93 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -90,17 +90,17 @@ if (BUILD_STATIC_LIBS) + if (UNIX) + set_target_properties(${GD_LIB_STATIC} PROPERTIES OUTPUT_NAME ${GD_LIB}) + endif() +-endif() + +-if (WIN32 AND NOT MINGW AND NOT MSYS) +- # SET_TARGET_PROPERTIES(${GD_LIB} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:msvcrt.lib") +- SET_PROPERTY(TARGET ${GD_LIB_STATIC} APPEND PROPERTY COMPILE_DEFINITIONS NONDLL=1) +-ENDIF(WIN32 AND NOT MINGW AND NOT MSYS) ++ if (WIN32 AND NOT MINGW AND NOT MSYS) ++ # SET_TARGET_PROPERTIES(${GD_LIB} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:msvcrt.lib") ++ SET_PROPERTY(TARGET ${GD_LIB_STATIC} APPEND PROPERTY COMPILE_DEFINITIONS NONDLL=1) ++ ENDIF(WIN32 AND NOT MINGW AND NOT MSYS) + +-if (MINGW OR MSYS) +- ADD_DEFINITIONS("-mms-bitfields") +- set_target_properties(${GD_LIB_STATIC} PROPERTIES OUTPUT_NAME ${GD_LIB}) +-endif (MINGW OR MSYS) ++ if (MINGW OR MSYS) ++ ADD_DEFINITIONS("-mms-bitfields") ++ set_target_properties(${GD_LIB_STATIC} PROPERTIES OUTPUT_NAME ${GD_LIB}) ++ endif (MINGW OR MSYS) ++endif() + + INCLUDE_DIRECTORIES(BEFORE "${PROJECT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" "${GD_SOURCE_DIR}/src") + +@@ -123,32 +123,37 @@ if (BUILD_STATIC_LIBS) + target_link_libraries(${GD_LIB_STATIC} ${LIBGD_DEP_LIBS}) + endif() + +-set(GD_PROGRAMS gdcmpgif) + +-if (PNG_FOUND) +- set(GD_PROGRAMS ${GD_PROGRAMS} gdtopng pngtogd webpng) ++if(BUILD_PROGRAMS) ++ set(GD_PROGRAMS gdcmpgif) ++ ++ if (PNG_FOUND) ++ set(GD_PROGRAMS ${GD_PROGRAMS} gdtopng pngtogd webpng) ++ if (ZLIB_FOUND) ++ set(GD_PROGRAMS ${GD_PROGRAMS} gdparttopng gd2topng pngtogd2) ++ endif() ++ endif() ++ ++ if (FREETYPE_FOUND) ++ set(GD_PROGRAMS ${GD_PROGRAMS} annotate) ++ endif() ++ + if (ZLIB_FOUND) +- set(GD_PROGRAMS ${GD_PROGRAMS} gdparttopng gd2topng pngtogd2) ++ set(GD_PROGRAMS ${GD_PROGRAMS} gd2copypal gd2togif giftogd2) + endif() +-endif() + +-if (FREETYPE_FOUND) +- set(GD_PROGRAMS ${GD_PROGRAMS} annotate) +-endif() ++ foreach(program ${GD_PROGRAMS}) ++ add_executable(${program} ${program}.c) ++ if (BUILD_SHARED_LIBS) ++ target_link_libraries(${program} ${GD_LIB}) ++ else() ++ target_link_libraries(${program} ${GD_LIB_STATIC}) ++ endif() ++ endforeach(program) + +-if (ZLIB_FOUND) +- set(GD_PROGRAMS ${GD_PROGRAMS} gd2copypal gd2togif giftogd2) ++ install(PROGRAMS bdftogd DESTINATION bin) + endif() + +-foreach(program ${GD_PROGRAMS}) +- add_executable(${program} ${program}.c) +- if (BUILD_SHARED_LIBS) +- target_link_libraries(${program} ${GD_LIB}) +- else() +- target_link_libraries(${program} ${GD_LIB_STATIC}) +- endif() +-endforeach(program) +- + set(GD_INSTALL_TARGETS ${GD_PROGRAMS}) + if (BUILD_SHARED_LIBS) + set(GD_INSTALL_TARGETS ${GD_INSTALL_TARGETS} ${GD_LIB}) +@@ -161,7 +166,7 @@ install(TARGETS ${GD_INSTALL_TARGETS} + RUNTIME DESTINATION bin + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +-install(PROGRAMS bdftogd DESTINATION bin) ++ + install(FILES + entities.h + gd.h +-- +2.11.0.windows.1 + diff --git a/ports/libgd/CONTROL b/ports/libgd/CONTROL new file mode 100644 index 000000000..8fd9fc05f --- /dev/null +++ b/ports/libgd/CONTROL @@ -0,0 +1,4 @@ +Source: libgd +Version: 2.2.4-1 +Description: Open source code library for the dynamic creation of images by programmers. +Build-Depends: freetype, libjpeg-turbo, libpng, libwebp, tiff diff --git a/ports/libgd/portfile.cmake b/ports/libgd/portfile.cmake new file mode 100644 index 000000000..db0c4cdd5 --- /dev/null +++ b/ports/libgd/portfile.cmake @@ -0,0 +1,52 @@ +include(vcpkg_common_functions) + +set(LIBGD_VERSION 2.2.4) +set(LIBGD_HASH 02ce40c45f31cf1645ad1d3fd9b9b498323b2709d40b0681cd403c11072a1f2149f5af844a6bf9e695c29e3247013bb94c57c0225a54189d728f64caf0a938ee) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libgd-gd-${LIBGD_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/libgd/libgd/archive/gd-${LIBGD_VERSION}.tar.gz" + FILENAME "gd-${LIBGD_VERSION}.tar.gz" + SHA512 ${LIBGD_HASH}) + +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-cmake.patch") + +#delete CMake builtins modules +file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/modules/CMakeParseArguments.cmake) +file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/modules/FindFreetype.cmake) +file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/modules/FindJPEG.cmake) +file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/modules/FindPackageHandleStandardArgs.cmake) +file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/modules/FindPNG.cmake) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(LIBGD_SHARED_LIBS ON) + set(LIBGD_STATIC_LIBS OFF) +else() + set(LIBGD_SHARED_LIBS OFF) + set(LIBGD_STATIC_LIBS ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DENABLE_PNG=ON + -DENABLE_JPEG=ON + -DENABLE_TIFF=ON + -DENABLE_FREETYPE=ON + -DEENABLE_WEBP=ON + -DBUILD_SHARED_LIBS=${LIBGD_SHARED_LIBS} + -DBUILD_STATIC_LIBS=${LIBGD_STATIC_LIBS} +) + +vcpkg_build_cmake() +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgd) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libgd/COPYING ${CURRENT_PACKAGES_DIR}/share/libgd/copyright)