[libraqm] Add new port (0.6.0) (#6659)

* Add libraqm

* [libraqm] Whitespace changes to force rebuild

* [harfbuzz] Propagate dependency on glib downstream

* [fribidi] Force rebuild on CI

* [libraqm] Force CI build
This commit is contained in:
Tobias Markus 2019-06-14 19:23:54 +02:00 committed by Victor Romero
parent b03f62e0eb
commit 9a24bd109e
6 changed files with 90 additions and 4 deletions

View File

@ -5,12 +5,15 @@ vcpkg_from_github(
REPO fribidi/fribidi
REF 58c6cb390a9a18c98b2cbaac555d8ea9352a9e4f
SHA512 1ec9c19faa87886786ce1589e2c66cab173b48e34d0e43487becc8606001f21f6ed17d0abd1c322fbbcaeb96a47ed882cad228be2e9beb019020ca2a475fc298
HEAD_REF master)
HEAD_REF master
)
vcpkg_configure_meson(SOURCE_PATH ${SOURCE_PATH}
vcpkg_configure_meson(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
-Ddocs=false
--backend=ninja)
--backend=ninja
)
vcpkg_install_meson()
vcpkg_copy_pdbs()
@ -28,4 +31,4 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
endif()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fribidi RENAME copyright)
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fribidi RENAME copyright)

View File

@ -17,9 +17,11 @@ vcpkg_from_github(
)
file(READ ${SOURCE_PATH}/CMakeLists.txt _contents)
if("${_contents}" MATCHES "include \\(FindFreetype\\)")
message(FATAL_ERROR "Harfbuzz's cmake must not directly include() FindFreetype.")
endif()
if("${_contents}" MATCHES "find_library\\(GLIB_LIBRARIES")
message(FATAL_ERROR "Harfbuzz's cmake must not directly find_library() glib.")
endif()

View File

@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.11)
project(raqm)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_MODULE_PATH}")
find_package(Freetype REQUIRED)
find_package(Fribidi REQUIRED)
find_package(harfbuzz CONFIG REQUIRED)
find_path(HARFBUZZ_INCLUDE_DIRS
NAMES hb.h
PATH_SUFFIXES harfbuzz)
find_path(FREETYPE_ADDITIONAL_INCLUDE_DIRS NAMES ft2build.h)
add_library(raqm ${CMAKE_CURRENT_SOURCE_DIR}/src/raqm.c ${CMAKE_CURRENT_SOURCE_DIR}/src/raqm.h)
target_include_directories(raqm SYSTEM PUBLIC ${FREETYPE_ADDITIONAL_INCLUDE_DIRS})
target_include_directories(raqm SYSTEM PUBLIC ${FREETYPE_INCLUDE_DIRS})
target_include_directories(raqm SYSTEM PUBLIC ${HARFBUZZ_INCLUDE_DIRS})
target_include_directories(raqm SYSTEM PUBLIC ${FRIBIDI_INCLUDE_DIR})
target_link_libraries(raqm PRIVATE Freetype::Freetype)
target_link_libraries(raqm PRIVATE harfbuzz::harfbuzz ${FRIBIDI_LIBRARY})
install(TARGETS raqm
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
set(RAQM_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(RAQM_LIBRARY raqm)
set(RAQM_LIBRARIES ${HARFBUZZ_LIBRARY} ${FRIBIDI_LIBRARY} ${RAQM_LIBRARY})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/src/raqm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)

4
ports/libraqm/CONTROL Normal file
View File

@ -0,0 +1,4 @@
Source: libraqm
Version: 0.6.0
Description: A library for complex text layout
Build-Depends: freetype, harfbuzz, fribidi

View File

@ -0,0 +1,12 @@
find_path(FRIBIDI_INCLUDE_DIR
NAMES fribidi/fribidi.h)
set(FRIBIDI_INCLUDE_DIR "${FRIBIDI_INCLUDE_DIR}/fribidi")
find_library(FRIBIDI_LIBRARY NAMES fribidi)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(FriBidi
FOUND_VAR FRIBIDI_FOUND
REQUIRED_VARS FRIBIDI_LIBRARY FRIBIDI_INCLUDE_DIR
VERSION_VAR FRIBIDI_VERSION_STRING
)

View File

@ -0,0 +1,31 @@
include(vcpkg_common_functions)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO HOST-Oman/libraqm
REF v0.6.0
SHA512 cd223d97b80e9d2cf26a5b68fbb84a87e53df819f12ffd06f84f1786a2207b34828d0888058a40c1d89a1466bb68b75dd326e25415afab029d51e1ed98f6a924
HEAD_REF master
)
file(COPY ${CURRENT_PORT_DIR}/FindFribidi.cmake DESTINATION ${SOURCE_PATH})
file(COPY ${CURRENT_PORT_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DCURRENT_PACKAGES_DIR=${CURRENT_PACKAGES_DIR}
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libraqm RENAME copyright)
# Post-build test for cmake libraries
vcpkg_test_cmake(PACKAGE_NAME raqm)