diff options
Diffstat (limited to 'cmake/FindWrapHarfbuzz.cmake')
-rw-r--r-- | cmake/FindWrapHarfbuzz.cmake | 56 |
1 files changed, 14 insertions, 42 deletions
diff --git a/cmake/FindWrapHarfbuzz.cmake b/cmake/FindWrapHarfbuzz.cmake index f7845b28bd..eac95b669d 100644 --- a/cmake/FindWrapHarfbuzz.cmake +++ b/cmake/FindWrapHarfbuzz.cmake @@ -1,45 +1,17 @@ -# We can't create the same interface imported target multiple times, CMake will complain if we do -# that. This can happen if the find_package call is done in multiple different subdirectories. -if(TARGET WrapHarfbuzz::WrapHarfbuzz) - set(WrapHarfbuzz_FOUND ON) - return() -endif() - -set(WrapHarfbuzz_FOUND OFF) - -find_package(harfbuzz) +include(QtFindWrapHelper NO_POLICY_SCOPE) -# Gentoo has some buggy version of a harfbuzz Config file. Check if include paths are valid. -set(__harfbuzz_target_name "harfbuzz::harfbuzz") -if(harfbuzz_FOUND AND TARGET "${__harfbuzz_target_name}") - get_property(__harfbuzz_include_paths TARGET "${__harfbuzz_target_name}" - PROPERTY INTERFACE_INCLUDE_DIRECTORIES) - foreach(__harfbuzz_include_dir ${__harfbuzz_include_paths}) - if(NOT EXISTS "${__harfbuzz_include_dir}") - # Must be the broken Gentoo harfbuzzConfig.cmake file. Try to use pkg-config instead. - set(__harfbuzz_broken_config_file TRUE) - break() - endif() - endforeach() +set(_qt_wrap_use_bundled FALSE) +if(QT_FEATURE_harfbuzz AND NOT QT_FEATURE_system_harfbuzz) + set(_qt_wrap_use_bundled TRUE) endif() -if(__harfbuzz_broken_config_file) - find_package(PkgConfig) - - pkg_check_modules(harfbuzz harfbuzz IMPORTED_TARGET) - set(__harfbuzz_target_name "PkgConfig::harfbuzz") - - if (NOT TARGET "${__harfbuzz_target_name}") - set(harfbuzz_FOUND 0) - endif() -endif() - -if(TARGET "${__harfbuzz_target_name}") - set(WrapHarfbuzz_FOUND ON) - - add_library(WrapHarfbuzz::WrapHarfbuzz INTERFACE IMPORTED) - target_link_libraries(WrapHarfbuzz::WrapHarfbuzz INTERFACE ${__harfbuzz_target_name}) -endif() -unset(__harfbuzz_target_name) -unset(__harfbuzz_include_dir) -unset(__harfbuzz_broken_config_file) +qt_find_package_system_or_bundled(wrap_harfbuzz + FRIENDLY_PACKAGE_NAME "Harfbuzz" + WRAP_PACKAGE_TARGET "WrapHarfbuzz::WrapHarfbuzz" + WRAP_PACKAGE_FOUND_VAR_NAME "WrapHarfbuzz_FOUND" + BUNDLED_PACKAGE_NAME "Qt6BundledHarfbuzz" + BUNDLED_PACKAGE_TARGET "Qt6::BundledHarfbuzz" + SYSTEM_PACKAGE_NAME "WrapSystemHarfbuzz" + SYSTEM_PACKAGE_TARGET "WrapSystemHarfbuzz::WrapSystemHarfbuzz" + USE_BUNDLED_PACKAGE "${_qt_wrap_use_bundled}" +) |