aboutsummaryrefslogtreecommitdiff
path: root/ports/libpng
diff options
context:
space:
mode:
authorAlexander Neumann <30894796+Neumann-A@users.noreply.github.com>2020-07-24 20:39:21 +0200
committerGitHub <noreply@github.com>2020-07-24 11:39:21 -0700
commit458c20e94b9f558b523f187ce403bd062e131cdb (patch)
tree20fd042b01a4c1090d7cb239dc17da0d9e97b02b /ports/libpng
parent077c0746be3773fdd443af52cbe5c3cc26379a15 (diff)
downloadvcpkg-458c20e94b9f558b523f187ce403bd062e131cdb.tar.gz
vcpkg-458c20e94b9f558b523f187ce403bd062e131cdb.zip
[vcpkg/scripts/pkgconfig] rewrite pkg-config check for libraries (#11550)
* [vcpkg/scripts/pkgconfig] rewrite pkgconfig check for libraries. * [vcpkg/scripts/pkgconfig] fix more details. * [vcpkg/scripts/pkgconfig] smaller improvements * ws change to check functionallity of script for testing. * [vcpkg/scripts/pkgconfig] update to latest test version * Revert "ws change to check functionallity of script for testing." This reverts commit 26269e9e776009230777d9390465715f2ebac465. * [nettle] bump control for vcpkg_fixup_pkgconfig test * [gmp] rerun CI to create new *.pc files * [gmp/nettle] enable port debug * [vcpkg/script/pkgconfig] fix path conversion regex for CI * [CI|OSX] install pkg-config on osx * [gmp/nettle] disable port debug * [vcpkg/scripts/pkgconfig] update to latest version of x windows pr * [zlib] add pkgconfig file * [zstd] add fixup pkgconfig * [libpng] add pc file installation * [bzip2] install pc file and leave a TODO for somebody else ;) * [bzip2] bump control * [vcpkg/scripts/pkgconfig] skip checks if pkgconfig cannot be found. - small bugfix in ignore flags regex * retry zstd and zlib * [libpng] retry by adding dl and m to system libraries for osx * [libpng] add missing vcpkg_fixup_pkgconfig() * [vcpkg/scripts/pkgconfig] unset var if found. fixes checks for other configurations which will be always succesful otherwise * [libpng] bump control * [libpng] enable port debug to debug osx regression * ws change to retrigger osx ci and hopeing that it works * fix typo * [libpng] remove -lm flag on apple platforms * ws change to rerun some ports in ci for good measure after the merge with master * Re-trigger CI test * [zstd] add pkgconfig * [zstd] correct debug link * [vcpkg/script/pkgconfig] - add more search suffixes for static libs - add additional debug messages for debuging - fix unsetting of cache variables hiding issues with debug libraries - fixed pkgconfig fix in the debug case * [pcre] add pthread dependency to pcre * [protobuf] fix pkgconfig * include quotes around the prefix in the case the prefix path was quoted (fixes some regressions) add option NOT_STATIC_PKGCONFIG to run pkg-config without the --static argument * [ignition-msgs5] get rid of a dev warning * [apr] fix apr regression * [protobuf] fix protobuf regression * [sdl1] fix regression due to variable expansion of pkg-config. Use similar regex to the library removal for ignored flags. * [ignition] fix regression * remove changes of zlib portfile. * reset changes in osx ci pipeline * add DISABLE_PARALLEL_CONFIGURE Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com> Co-authored-by: Billy Robert O'Neal <bion@microsoft.com>
Diffstat (limited to 'ports/libpng')
-rw-r--r--ports/libpng/CONTROL2
-rw-r--r--ports/libpng/pkgconfig.2.patch47
-rw-r--r--ports/libpng/pkgconfig.patch24
-rw-r--r--ports/libpng/portfile.cmake52
4 files changed, 116 insertions, 9 deletions
diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL
index 0258a720e..f05692745 100644
--- a/ports/libpng/CONTROL
+++ b/ports/libpng/CONTROL
@@ -1,5 +1,5 @@
Source: libpng
-Version: 1.6.37-9
+Version: 1.6.37-10
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.
diff --git a/ports/libpng/pkgconfig.2.patch b/ports/libpng/pkgconfig.2.patch
new file mode 100644
index 000000000..8deab06d2
--- /dev/null
+++ b/ports/libpng/pkgconfig.2.patch
@@ -0,0 +1,47 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6f85d17ef..8de0eb299 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -814,20 +814,31 @@ endif()
+ # Only do this on Windows for Cygwin - the files don't make much sense outside
+ # of a UNIX look-alike.
+ if(NOT WIN32 OR CYGWIN OR MINGW)
+- set(prefix ${CMAKE_INSTALL_PREFIX})
+- set(exec_prefix ${CMAKE_INSTALL_PREFIX})
+- set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+- set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
+- set(LIBS "-lz -lm")
++ set(LIBS "-lz")
++ if(NOT APPLE)
++ string(APPEND LIBS " -lm")
++ endif()
+- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
+- ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
+- create_symlink(libpng.pc FILE ${PNGLIB_NAME}.pc)
+-
+- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
+- ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
+ create_symlink(libpng-config FILE ${PNGLIB_NAME}-config)
++else()
++ if(CMAKE_BUILD_TYPE STREQUAL "DEBUG")
++ set(LIBS "-lzlibd")
++ else()
++ set(LIBS "-lzlib")
++ endif()
+ endif()
+
++set(prefix ${CMAKE_INSTALL_PREFIX})
++set(exec_prefix ${CMAKE_INSTALL_PREFIX})
++set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
++set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
++
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
++ ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
++create_symlink(libpng.pc FILE ${PNGLIB_NAME}.pc)
++
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
++ ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
++
+ # SET UP LINKS
+ if(PNG_SHARED)
+ set_target_properties(png PROPERTIES
diff --git a/ports/libpng/pkgconfig.patch b/ports/libpng/pkgconfig.patch
new file mode 100644
index 000000000..5640f3834
--- /dev/null
+++ b/ports/libpng/pkgconfig.patch
@@ -0,0 +1,24 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6599e1d7d..c0bb2fad2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -894,13 +894,13 @@ if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL)
+ install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3)
+ install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5)
+ # Install pkg-config files
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ if(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
+- DESTINATION bin)
++ DESTINATION tools/libpng)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
+- DESTINATION bin)
++ DESTINATION tools/libpng)
+ endif()
diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake
index 28fee46f3..d8c7f7193 100644
--- a/ports/libpng/portfile.cmake
+++ b/ports/libpng/portfile.cmake
@@ -14,16 +14,13 @@ if ("apng" IN_LIST FEATURES)
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()
@@ -37,6 +34,8 @@ vcpkg_from_github(
PATCHES
use_abort.patch
cmake.patch
+ pkgconfig.patch
+ pkgconfig.2.patch
${APNG_EXTRA_PATCH}
)
@@ -62,6 +61,7 @@ vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
+ -DPNG_MAN_DIR=share/${PORT}/man
${LIBPNG_APNG_OPTION}
${LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION}
${LD_VERSION_SCRIPT_OPTION}
@@ -71,15 +71,51 @@ vcpkg_configure_cmake(
-DPNG_TESTS=OFF
-DSKIP_INSTALL_PROGRAMS=ON
-DSKIP_INSTALL_EXECUTABLES=ON
- -DSKIP_INSTALL_FILES=ON
- OPTIONS_DEBUG
- -DSKIP_INSTALL_HEADERS=ON
+ -DSKIP_INSTALL_FILES=OFF
+ OPTIONS_DEBUG
+ -DSKIP_INSTALL_HEADERS=ON
)
-
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/libpng)
+set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng16.pc")
+if(EXISTS ${_file})
+ file(READ "${_file}" _contents)
+ if(VCPKG_TARGET_IS_WINDOWS)
+ string(REGEX REPLACE "-lpng16(d)?" "-llibpng16d" _contents "${_contents}")
+ else()
+ string(REGEX REPLACE "-lpng16(d)?" "-lpng16d" _contents "${_contents}")
+ endif()
+ string(REPLACE "-lzlib" "-lzlibd" _contents "${_contents}")
+ file(WRITE "${_file}" "${_contents}")
+endif()
+set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng.pc")
+if(EXISTS ${_file})
+ file(READ "${_file}" _contents)
+ if(VCPKG_TARGET_IS_WINDOWS)
+ string(REGEX REPLACE "-lpng16(d)?" "-llibpng16d" _contents "${_contents}")
+ else()
+ string(REGEX REPLACE "-lpng16(d)?" "-lpng16d" _contents "${_contents}")
+ endif()
+ string(REPLACE "-lzlib" "-lzlibd" _contents "${_contents}")
+ file(WRITE "${_file}" "${_contents}")
+endif()
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpng16.pc")
+ if(EXISTS ${_file})
+ file(READ "${_file}" _contents)
+ string(REPLACE "-lpng16" "-llibpng16" _contents "${_contents}")
+ file(WRITE "${_file}" "${_contents}")
+ endif()
+ set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpng.pc")
+ if(EXISTS ${_file})
+ file(READ "${_file}" _contents)
+ string(REPLACE "-lpng16" "-llibpng16" _contents "${_contents}")
+ file(WRITE "${_file}" "${_contents}")
+ endif()
+endif()
+vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
-
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)