aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2020-11-12 14:25:03 -0800
committerGitHub <noreply@github.com>2020-11-12 14:25:03 -0800
commitf50c0eae60fb1391d610451289e877784228eb18 (patch)
tree8c6bce21814cb278599b59db64b0966a1bfb4715
parent2f847cedfa76ccb1ce7ca69974af13088f3054ba (diff)
downloadvcpkg-f50c0eae60fb1391d610451289e877784228eb18.tar.gz
vcpkg-f50c0eae60fb1391d610451289e877784228eb18.zip
[freetype] Fix INTERFACE_LINK_LIBRARIES in exported cmake file (#14499)
* [freetype] Fix INTERFACE_LINK_LIBRARIES in exported cmake file * [freetype] Bump version * [libpng] Fix dependency zlib in INTERFACE_LINK_LIBRARIES * [freetype] Revert changes about keyword PUBLIC and pkgconfig
-rw-r--r--ports/freetype/CONTROL2
-rw-r--r--ports/freetype/fix-exports.patch30
-rw-r--r--ports/freetype/portfile.cmake34
-rw-r--r--ports/libpng/CONTROL2
-rw-r--r--ports/libpng/fix-export-targets.patch65
-rw-r--r--ports/libpng/portfile.cmake1
6 files changed, 114 insertions, 20 deletions
diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL
index eb2b10272..47ae9d67b 100644
--- a/ports/freetype/CONTROL
+++ b/ports/freetype/CONTROL
@@ -1,6 +1,6 @@
Source: freetype
Version: 2.10.2
-Port-Version: 4
+Port-Version: 5
Build-Depends: zlib, brotli
Homepage: https://www.freetype.org/
Description: A library to render fonts.
diff --git a/ports/freetype/fix-exports.patch b/ports/freetype/fix-exports.patch
new file mode 100644
index 000000000..f0ef422d3
--- /dev/null
+++ b/ports/freetype/fix-exports.patch
@@ -0,0 +1,30 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 04ce73a..ee3cc05 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -454,7 +454,7 @@ endif ()
+ set(PKG_CONFIG_REQUIRED_PRIVATE "")
+
+ if (ZLIB_FOUND)
+- target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES})
++ target_link_libraries(freetype PRIVATE ZLIB::ZLIB)
+ target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS})
+ list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib")
+ endif ()
+@@ -562,8 +562,15 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
+ install(
+ EXPORT freetype-targets
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
+- FILE freetype-config.cmake
+ COMPONENT headers)
++
++ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake"
++[[include(CMakeFindDependencyMacro)
++find_dependency(ZLIB)
++include("${CMAKE_CURRENT_LIST_DIR}/freetype-targets.cmake")
++]])
++
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype)
+ endif ()
+
+
diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake
index ed8cbcbf3..08260fa55 100644
--- a/ports/freetype/portfile.cmake
+++ b/ports/freetype/portfile.cmake
@@ -1,19 +1,17 @@
set(FT_VERSION 2.10.2)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.xz" "https://downloads.sourceforge.net/project/freetype/freetype2/${FT_VERSION}/freetype-${FT_VERSION}.tar.xz"
- FILENAME "freetype-${FT_VERSION}.tar.xz"
- SHA512 cf45089bd8893d7de2cdcb59d91bbb300e13dd0f0a9ef80ed697464ba7aeaf46a5a81b82b59638e6b21691754d8f300f23e1f0d11683604541d77f0f581affaa
-)
-vcpkg_extract_source_archive_ex(
+vcpkg_from_sourceforge(
OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
+ REPO freetype/freetype2
REF ${FT_VERSION}
+ FILENAME freetype-${FT_VERSION}.tar.xz
+ SHA512 cf45089bd8893d7de2cdcb59d91bbb300e13dd0f0a9ef80ed697464ba7aeaf46a5a81b82b59638e6b21691754d8f300f23e1f0d11683604541d77f0f581affaa
PATCHES
0001-Fix-install-command.patch
0003-Fix-UWP.patch
pkgconfig.patch
brotli-static.patch
+ fix-exports.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@@ -36,6 +34,7 @@ vcpkg_configure_cmake(
)
vcpkg_install_cmake()
+vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/freetype)
# Rename for easy usage (VS integration; CMake and autotools will not care)
@@ -45,13 +44,13 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/freetype2)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Fix the include dir [freetype2 -> freetype]
-file(READ ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config.cmake CONFIG_MODULE)
+file(READ ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-targets.cmake CONFIG_MODULE)
string(REPLACE "\${_IMPORT_PREFIX}/include/freetype2" "\${_IMPORT_PREFIX}/include" CONFIG_MODULE "${CONFIG_MODULE}")
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlicommon-static.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlicommon-static.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlicommon-static.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec-static.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlidec-static.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlidec-static.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlidec.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlidec.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec.lib" [[\$<\$<NOT:\$<CONFIG:DEBUG>>:${_IMPORT_PREFIX}/lib/brotlidec.lib>;\$<\$<CONFIG:DEBUG>:${_IMPORT_PREFIX}/debug/lib/brotlidec.lib>]] CONFIG_MODULE "${CONFIG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config.cmake "${CONFIG_MODULE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-targets.cmake "${CONFIG_MODULE}")
find_library(FREETYPE_DEBUG NAMES freetyped PATHS "${CURRENT_PACKAGES_DIR}/debug/lib/" NO_DEFAULT_PATH)
if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freetype2.pc")
@@ -67,20 +66,12 @@ if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc")
string(REPLACE "-I\${includedir}/freetype2" "-I\${includedir}" _contents "${_contents}")
file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc" "${_contents}")
endif()
+
vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(COPY
- ${SOURCE_PATH}/docs/FTL.TXT
- ${SOURCE_PATH}/docs/GPLv2.TXT
- DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
-)
-file(INSTALL ${SOURCE_PATH}/docs/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
-
-vcpkg_copy_pdbs()
-
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
if("bzip2" IN_LIST FEATURES)
set(USE_BZIP2 ON)
@@ -93,3 +84,10 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake @ONLY)
endif()
+
+file(COPY
+ ${SOURCE_PATH}/docs/FTL.TXT
+ ${SOURCE_PATH}/docs/GPLv2.TXT
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
+)
+file(INSTALL ${SOURCE_PATH}/docs/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL
index 7c953c3fa..d45c0268e 100644
--- a/ports/libpng/CONTROL
+++ b/ports/libpng/CONTROL
@@ -1,6 +1,6 @@
Source: libpng
Version: 1.6.37
-Port-Version: 12
+Port-Version: 13
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/fix-export-targets.patch b/ports/libpng/fix-export-targets.patch
new file mode 100644
index 000000000..ec331c48d
--- /dev/null
+++ b/ports/libpng/fix-export-targets.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b45e878..19f8692 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -536,7 +536,7 @@ if(PNG_SHARED)
+ set_target_properties(png PROPERTIES PREFIX "lib")
+ set_target_properties(png PROPERTIES IMPORT_PREFIX "lib")
+ endif()
+- target_link_libraries(png ${ZLIB_LIBRARY} ${M_LIBRARY})
++ target_link_libraries(png ZLIB::ZLIB ${M_LIBRARY})
+
+ if(UNIX AND AWK)
+ if(HAVE_LD_VERSION_SCRIPT)
+@@ -564,7 +564,7 @@ if(PNG_STATIC)
+ # msvc does not append 'lib' - do it here to have consistent name
+ set_target_properties(png_static PROPERTIES PREFIX "lib")
+ endif()
+- target_link_libraries(png_static ${ZLIB_LIBRARY} ${M_LIBRARY})
++ target_link_libraries(png_static ZLIB::ZLIB ${M_LIBRARY})
+ endif()
+
+ if(PNG_FRAMEWORK)
+@@ -581,7 +581,7 @@ if(PNG_FRAMEWORK)
+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ PUBLIC_HEADER "${libpng_public_hdrs}"
+ OUTPUT_NAME png)
+- target_link_libraries(png_framework ${ZLIB_LIBRARY} ${M_LIBRARY})
++ target_link_libraries(png_framework ZLIB::ZLIB ${M_LIBRARY})
+ endif()
+
+ if(NOT PNG_LIB_TARGETS)
+@@ -746,7 +746,7 @@ if(PNG_SHARED)
+ set(PNG_BIN_TARGETS pngfix)
+
+ add_executable(png-fix-itxt ${png_fix_itxt_sources})
+- target_link_libraries(png-fix-itxt ${ZLIB_LIBRARY} ${M_LIBRARY})
++ target_link_libraries(png-fix-itxt ZLIB::ZLIB ${M_LIBRARY})
+ list(APPEND PNG_BIN_TARGETS png-fix-itxt)
+ endif()
+
+@@ -851,7 +851,7 @@ endif()
+ # INSTALL
+ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
+ install(TARGETS ${PNG_LIB_TARGETS}
+- EXPORT libpng
++ EXPORT libpng-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+@@ -919,7 +919,14 @@ endif()
+
+ # Create an export file that CMake users can include() to import our targets.
+ if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL)
+- install(EXPORT libpng DESTINATION lib/libpng FILE libpngConfig.cmake)
++ install(EXPORT libpng-targets DESTINATION lib/libpng)
++ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/libpng-config.cmake"
++ [[include(CMakeFindDependencyMacro)
++find_dependency(ZLIB)
++include("${CMAKE_CURRENT_LIST_DIR}/libpng-targets.cmake")
++ ]])
++
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/libpng)
+ endif()
+
+ # what's with libpng-manual.txt and all the extra files?
diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake
index d2087caa6..d75eedb4b 100644
--- a/ports/libpng/portfile.cmake
+++ b/ports/libpng/portfile.cmake
@@ -42,6 +42,7 @@ vcpkg_from_github(
pkgconfig.patch
pkgconfig.2.patch
${APNG_EXTRA_PATCH}
+ fix-export-targets.patch
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)