[fontconfig] Fix wrapper, usage (#28295)

* [Fontconfig] Fix wrapper

* Minor fixes

* Add usage doc

* Update versions

* Fixes
This commit is contained in:
Kai Pastor 2022-12-14 01:16:42 +01:00 committed by GitHub
parent c3091537af
commit 180ea20782
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 58 additions and 46 deletions

View File

@ -17,7 +17,7 @@ vcpkg_from_gitlab(
vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf")
vcpkg_configure_meson(
SOURCE_PATH ${SOURCE_PATH}
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-Ddoc=disabled
-Dcache-build=disabled
@ -27,8 +27,8 @@ vcpkg_install_meson(ADD_BIN_TO_PATH)
vcpkg_copy_pdbs()
#Fix missing libintl static dependency
if(NOT VCPKG_TARGET_IS_MINGW AND VCPKG_TARGET_IS_WINDOWS)
if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
if(NOT VCPKG_BUILD_TYPE)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/fontconfig.pc" "-liconv" "-liconv -lintl")
endif()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/fontconfig.pc" "-liconv" "-liconv -lintl")
@ -54,13 +54,13 @@ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/var"
"${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/debug/etc")
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
if(VCPKG_TARGET_IS_WINDOWS)
set(DEFINE_FC_PUBLIC "#define FcPublic __declspec(dllimport)")
else()
set(DEFINE_FC_PUBLIC "#define FcPublic __attribute__((visibility(\"default\")))")
endif()
foreach(HEADER fcfreetype.h fontconfig.h)
foreach(HEADER IN ITEMS fcfreetype.h fontconfig.h)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER}"
"#define FcPublic"
"${DEFINE_FC_PUBLIC}"
@ -68,14 +68,11 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
endforeach()
endif()
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
if(NOT VCPKG_TARGET_IS_LINUX)
set(VCPKG_TARGET_IS_LINUX 0) # To not leave empty AND statements in the wrapper
endif()
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
vcpkg_copy_tools(
TOOL_NAMES fc-match fc-cat fc-list fc-pattern fc-query fc-scan fc-cache fc-validate fc-conflist
AUTO_CLEAN
)
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

4
ports/fontconfig/usage Normal file
View File

@ -0,0 +1,4 @@
fontconfig is compatible with built-in CMake targets:
find_package(Fontconfig REQUIRED) # since CMake 3.14
target_link_libraries(main PRIVATE Fontconfig::Fontconfig)

View File

@ -1,46 +1,51 @@
_find_package(${ARGS})
if(Fontconfig_FOUND) # theoretically this could be skipped. If the wrapper is installed it should be found!
find_package(Freetype)
if(Freetype_FOUND AND TARGET Fontconfig::Fontconfig)
if(TARGET Freetype::Freetype)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Freetype::Freetype")
else()
# TODO link Freetype libraries to the target if the target Freetype::Freetype is not defined;
endif()
endif()
if(FREETYPE_LIBRARIES)
list(APPEND Fontconfig_LIBRARIES "${FREETYPE_LIBRARIES}")
endif()
find_package(EXPAT)
if(EXPAT_FOUND AND TARGET Fontconfig::Fontconfig)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "EXPAT::EXPAT")
endif()
if(EXPAT_LIBRARIES)
list(APPEND Fontconfig_LIBRARIES "${EXPAT_LIBRARIES}")
if(NOT TARGET Fontconfig::Fontconfig)
# Simplify wrapper for case of vendored FindFontconfig.cmake
add_library(Fontconfig::Fontconfig UNKNOWN IMPORTED)
endif()
include(SelectLibraryConfigurations)
find_library(Fontconfig_LIBRARY_DEBUG NAMES fontconfig fontconfigd NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_INSTALLED_DIR}/debug" NO_DEFAULT_PATH)
find_library(Fontconfig_LIBRARY_RELEASE NAMES fontconfig NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
select_library_configurations(Fontconfig)
if(@VCPKG_TARGET_IS_LINUX@)
set_target_properties(Fontconfig::Fontconfig PROPERTIES
IMPORTED_CONFIGURATIONS "Release"
IMPORTED_LOCATION_RELEASE "${Fontconfig_LIBRARY_RELEASE}"
)
if(Fontconfig_LIBRARY_DEBUG)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug")
set_target_properties(Fontconfig::Fontconfig PROPERTIES IMPORTED_LOCATION_DEBUG "${Fontconfig_LIBRARY_DEBUG}")
endif()
find_package(Freetype)
if(Freetype_FOUND)
list(APPEND Fontconfig_LIBRARIES "${FREETYPE_LIBRARIES}")
if(TARGET Freetype::Freetype)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Freetype::Freetype>")
else()
# TODO link FREETYPE_LIBRARIES transformed for $<CONFIG:...>.
endif()
endif()
find_package(EXPAT)
if(EXPAT_FOUND)
list(APPEND Fontconfig_LIBRARIES "${EXPAT_LIBRARIES}")
if(TARGET EXPAT::EXPAT)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:EXPAT::EXPAT>")
else()
# TODO link EXPAT_LIBRARIES transformed for $<CONFIG:...>.
endif()
endif()
if("@VCPKG_TARGET_IS_LINUX@")
find_library(UUID_LIBRARY_DEBUG NAMES uuid uuidd uuid_d NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_INSTALLED_DIR}/debug" NO_DEFAULT_PATH)
find_library(UUID_LIBRARY_RELEASE NAMES uuid NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
select_library_configurations(UUID)
endif()
if(Fontconfig_LIBRARY_DEBUG AND TARGET Fontconfig::Fontconfig)
set_target_properties(Fontconfig::Fontconfig PROPERTIES IMPORTED_LOCATION_DEBUG "${Fontconfig_LIBRARY_DEBUG}")
if(UUID_LIBRARY_DEBUG AND @VCPKG_TARGET_IS_LINUX@)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<$<CONFIG:DEBUG>:${UUID_LIBRARY_DEBUG}>")
if(UUID_LIBRARIES)
list(APPEND Fontconfig_LIBRARIES "${UUID_LIBRARIES}")
if(UUID_LIBRARY_DEBUG)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${UUID_LIBRARY_RELEASE}>")
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<$<CONFIG:DEBUG>:${UUID_LIBRARY_DEBUG}>")
else()
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${UUID_LIBRARY_RELEASE}")
endif()
endif()
endif()
if(Fontconfig_LIBRARY_RELEASE AND TARGET Fontconfig::Fontconfig)
set_target_properties(Fontconfig::Fontconfig PROPERTIES IMPORTED_LOCATION_RELEASE "${Fontconfig_LIBRARY_RELEASE}")
if(UUID_LIBRARY_RELEASE AND @VCPKG_TARGET_IS_LINUX@)
set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${UUID_LIBRARY_RELEASE}>")
endif()
endif()
if(UUID_LIBRARIES AND @VCPKG_TARGET_IS_LINUX@)
list(APPEND Fontconfig_LIBRARIES "${UUID_LIBRARIES}")
endif()
endif()

View File

@ -1,6 +1,7 @@
{
"name": "fontconfig",
"version": "2.14.1",
"port-version": 1,
"description": "Library for configuring and customizing font access.",
"homepage": "https://www.freedesktop.org/wiki/Software/fontconfig",
"license": "MIT",

View File

@ -2402,7 +2402,7 @@
},
"fontconfig": {
"baseline": "2.14.1",
"port-version": 0
"port-version": 1
},
"foonathan-memory": {
"baseline": "2019-07-21",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "8d149d92c9082b4aa83474ae25f2033574a9cd84",
"version": "2.14.1",
"port-version": 1
},
{
"git-tree": "6e8409679e92c3870efcfeed43890c7f7bd92f43",
"version": "2.14.1",