[libraqm] Use meson instead of custom CMakeLists.txt (#49025)

Co-authored-by: Kai Pastor <dg0yt@darc.de>
This commit is contained in:
Tobias Markus
2025-12-22 22:15:27 +01:00
committed by GitHub
parent 2c7f61d36e
commit b40e45313a
6 changed files with 16 additions and 74 deletions

View File

@@ -1,38 +0,0 @@
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 PATH_SUFFIXES freetype2)
configure_file(src/raqm-version.h.in src/raqm-version.h)
add_library(raqm src/raqm.c src/raqm.h src/raqm-version.h)
target_include_directories(raqm PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/src)
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})
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/raqm.h ${CMAKE_CURRENT_BINARY_DIR}/src/raqm-version.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)

View File

@@ -1,12 +0,0 @@
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

@@ -1,34 +1,17 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" RAQM_VERSION "${VERSION}")
set(RAQM_VERSION_MAJOR ${CMAKE_MATCH_1})
set(RAQM_VERSION_MINOR ${CMAKE_MATCH_2})
set(RAQM_VERSION_MICRO ${CMAKE_MATCH_3})
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO HOST-Oman/libraqm
REF v${RAQM_VERSION_MAJOR}.${RAQM_VERSION_MINOR}.${RAQM_VERSION_MICRO}
REF v${VERSION}
SHA512 ba0b16ac2240580c3091ff8b673c10345b94c54dff7e102b893855e3d33a1396c681025d3326e53f5ebcde97ceef6ab4dfd9366d0864b422e578d38146692b62
HEAD_REF master
)
file(COPY "${CURRENT_PORT_DIR}/FindFribidi.cmake" DESTINATION "${SOURCE_PATH}")
file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
-DCURRENT_PACKAGES_DIR=${CURRENT_PACKAGES_DIR}
-DRAQM_VERSION_MAJOR=${RAQM_VERSION_MAJOR}
-DRAQM_VERSION_MINOR=${RAQM_VERSION_MINOR}
-DRAQM_VERSION_MICRO=${RAQM_VERSION_MICRO}
vcpkg_configure_meson(
SOURCE_PATH "${SOURCE_PATH}"
)
vcpkg_cmake_install()
vcpkg_install_meson()
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
# Handle copyright
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")

View File

@@ -1,12 +1,16 @@
{
"name": "libraqm",
"version": "0.10.3",
"port-version": 1,
"description": "A library for complex text layout",
"homepage": "https://github.com/HOST-Oman/libraqm",
"dependencies": [
"freetype",
"fribidi",
"harfbuzz",
"vcpkg-cmake"
{
"name": "vcpkg-tool-meson",
"host": true
}
]
}

View File

@@ -5402,7 +5402,7 @@
},
"libraqm": {
"baseline": "0.10.3",
"port-version": 0
"port-version": 1
},
"libraw": {
"baseline": "0.21.4",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "6cce9442205ea0de55a378a0cacb5d04626215df",
"version": "0.10.3",
"port-version": 1
},
{
"git-tree": "989595b30569f9e17a2e1a5c2d3423f676f1d8a1",
"version": "0.10.3",