aboutsummaryrefslogtreecommitdiff
path: root/ports/libpng
diff options
context:
space:
mode:
authorJackBoosY <47264268+JackBoosY@users.noreply.github.com>2019-11-20 03:19:51 +0800
committerRobert Schumacher <roschuma@microsoft.com>2019-11-19 11:19:51 -0800
commitff6a725392fcffa647880293e4c0a1352f0d3473 (patch)
treef5dd5880c30d331dc09b148dd4f27d2c27811fa0 /ports/libpng
parenta6f38607ba85b2ab52964726cc49a4bc08891f68 (diff)
downloadvcpkg-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/CONTROL5
-rw-r--r--ports/libpng/portfile.cmake31
-rw-r--r--ports/libpng/skip-install-symlink.patch22
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}