diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-11-20 03:19:51 +0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2019-11-19 11:19:51 -0800 |
| commit | ff6a725392fcffa647880293e4c0a1352f0d3473 (patch) | |
| tree | f5dd5880c30d331dc09b148dd4f27d2c27811fa0 /ports/libpng | |
| parent | a6f38607ba85b2ab52964726cc49a4bc08891f68 (diff) | |
| download | vcpkg-ff6a725392fcffa647880293e4c0a1352f0d3473.tar.gz vcpkg-ff6a725392fcffa647880293e4c0a1352f0d3473.zip | |
[lipng/libpng-apng]Remove port libpng-apng and add apng as a feature with libpng. (#8622)
* [lipng/libpng-apng]Remove port libpng-apng and add apng as a feature with libpng.
* [libpng]Move feature apng operations before download libpng source.
* [libpng]Fix unset patch path.
* [libpng]Re-fix unset patch path.
Diffstat (limited to 'ports/libpng')
| -rw-r--r-- | ports/libpng/CONTROL | 5 | ||||
| -rw-r--r-- | ports/libpng/portfile.cmake | 31 | ||||
| -rw-r--r-- | ports/libpng/skip-install-symlink.patch | 22 |
3 files changed, 56 insertions, 2 deletions
diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL index bc06e8deb..e7e3f3f0e 100644 --- a/ports/libpng/CONTROL +++ b/ports/libpng/CONTROL @@ -1,5 +1,8 @@ Source: libpng -Version: 1.6.37-4 +Version: 1.6.37-5 Build-Depends: zlib Homepage: https://github.com/glennrp/libpng Description: libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files. + +Feature: apng +Description: This is backward compatible with the regular libpng, both in library usage and format. diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake index 24858f26c..36e2c245a 100644 --- a/ports/libpng/portfile.cmake +++ b/ports/libpng/portfile.cmake @@ -1,14 +1,42 @@ include(vcpkg_common_functions) +set(LIBPNG_VER 1.6.37) + +# Download the apng patch +set(LIBPNG_APNG_OPTION ) +if ("apng" IN_LIST FEATURES) + set(LIBPNG_APG_PATCH_NAME libpng-${LIBPNG_VER}-apng.patch) + set(LIBPNG_APG_PATCH_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIBPNG_APG_PATCH_NAME}) + if (NOT EXISTS ${LIBPNG_APG_PATCH_PATH}) + vcpkg_download_distfile(LIBPNG_APNG_PATCH_ARCHIVE + URLS "https://downloads.sourceforge.net/project/libpng-apng/libpng16/${LIBPNG_VER}/${LIBPNG_APG_PATCH_NAME}.gz" + FILENAME "${LIBPNG_APG_PATCH_NAME}.gz" + SHA512 226adcb3a8c60f2267fe2976ab531329ae43c2603dab4d0cf8f16217d64069936b879f3d6516b75d259c47d6f5c5b1f24f887602206c8e46abde0fb7f5c7946b + ) + + vcpkg_find_acquire_program(7Z) + + vcpkg_execute_required_process( + COMMAND ${7Z} x ${LIBPNG_APNG_PATCH_ARCHIVE} -aoa + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src + LOGNAME extract-patch.log + ) + endif() + + set(APNG_EXTRA_PATCH ${LIBPNG_APG_PATCH_PATH}) + set(LIBPNG_APNG_OPTION "-DPNG_PREFIX=a") +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO glennrp/libpng - REF v1.6.37 + REF v${LIBPNG_VER} SHA512 ccb3705c23b2724e86d072e2ac8cfc380f41fadfd6977a248d588a8ad57b6abe0e4155e525243011f245e98d9b7afbe2e8cc7fd4ff7d82fcefb40c0f48f88918 HEAD_REF master PATCHES use-abort-on-all-platforms.patch fix-libm-unix.patch + ${APNG_EXTRA_PATCH} ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) @@ -23,6 +51,7 @@ vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS + ${LIBPNG_APNG_OPTION} -DPNG_STATIC=${PNG_STATIC_LIBS} -DPNG_SHARED=${PNG_SHARED_LIBS} -DPNG_TESTS=OFF diff --git a/ports/libpng/skip-install-symlink.patch b/ports/libpng/skip-install-symlink.patch new file mode 100644 index 000000000..c25075941 --- /dev/null +++ b/ports/libpng/skip-install-symlink.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48c6fa2..589e5f9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -853,7 +853,7 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+- if(PNG_SHARED)
++ if(PNG_SHARED AND NOT SKIP_INSTALL_SYMLINK)
+ # Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin
+ if(CYGWIN OR MINGW)
+ create_symlink(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png)
+@@ -868,7 +868,7 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+ endif()
+ endif()
+
+- if(PNG_STATIC)
++ if(PNG_STATIC AND NOT SKIP_INSTALL_SYMLINK)
+ if(NOT WIN32 OR CYGWIN OR MINGW)
+ create_symlink(libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static)
+ install(FILES $<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
|
