Make sure that pkgconf can find HarfBuzz
pkgconf is an alternative implementation of pkg-config, and it is mostly compatible with pkg-config, but in the case of HarfBuzz, it adds the `/usr/local/include` to `INTERFACE_INCLUDE_DIRECTORIES` when reports the include path, and if the path doesn't exist, the configuration fails. In the case of HarfBuzz, we do some extra work to make sure that we can always find the library, so, with a bit of modification, we can skip the faulty pkgconf intervention and create the correct imported target. Fixes: QTBUG-117905 Change-Id: Id628e4434633534b0d7bfad9e819a8c05da4944d Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
7398645292
commit
885d87488a
@ -32,8 +32,12 @@ endif()
|
|||||||
|
|
||||||
if(__harfbuzz_broken_config_file OR NOT __harfbuzz_found)
|
if(__harfbuzz_broken_config_file OR NOT __harfbuzz_found)
|
||||||
find_package(PkgConfig QUIET)
|
find_package(PkgConfig QUIET)
|
||||||
|
if(PKG_CONFIG_EXECUTABLE MATCHES "pkgconf")
|
||||||
|
# pkgconf is an alternative implementation of pkg-config
|
||||||
|
set(pkgconf_is_used TRUE)
|
||||||
|
endif()
|
||||||
pkg_check_modules(PC_HARFBUZZ IMPORTED_TARGET "harfbuzz")
|
pkg_check_modules(PC_HARFBUZZ IMPORTED_TARGET "harfbuzz")
|
||||||
if(PC_HARFBUZZ_FOUND)
|
if(PC_HARFBUZZ_FOUND AND NOT pkgconf_is_used)
|
||||||
set(__harfbuzz_target_name "PkgConfig::PC_HARFBUZZ")
|
set(__harfbuzz_target_name "PkgConfig::PC_HARFBUZZ")
|
||||||
set(__harfbuzz_find_include_dirs_hints
|
set(__harfbuzz_find_include_dirs_hints
|
||||||
HINTS ${PC_HARFBUZZ_INCLUDEDIR})
|
HINTS ${PC_HARFBUZZ_INCLUDEDIR})
|
||||||
@ -55,7 +59,7 @@ if(__harfbuzz_broken_config_file OR NOT __harfbuzz_found)
|
|||||||
|
|
||||||
if(HARFBUZZ_INCLUDE_DIRS AND HARFBUZZ_LIBRARIES)
|
if(HARFBUZZ_INCLUDE_DIRS AND HARFBUZZ_LIBRARIES)
|
||||||
set(__harfbuzz_found TRUE)
|
set(__harfbuzz_found TRUE)
|
||||||
if(NOT PC_HARFBUZZ_FOUND)
|
if(NOT PC_HARFBUZZ_FOUND OR pkgconf_is_used)
|
||||||
add_library(${__harfbuzz_target_name} UNKNOWN IMPORTED)
|
add_library(${__harfbuzz_target_name} UNKNOWN IMPORTED)
|
||||||
list(TRANSFORM HARFBUZZ_INCLUDE_DIRS APPEND "/harfbuzz")
|
list(TRANSFORM HARFBUZZ_INCLUDE_DIRS APPEND "/harfbuzz")
|
||||||
set_target_properties(${__harfbuzz_target_name} PROPERTIES
|
set_target_properties(${__harfbuzz_target_name} PROPERTIES
|
||||||
|
Loading…
x
Reference in New Issue
Block a user