diff options
-rw-r--r-- | cmake/FindWrapFreetype.cmake | 26 | ||||
-rw-r--r-- | src/gui/configure.cmake | 4 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/plugins/platforms/minimal/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/CMakeLists.txt | 4 | ||||
-rw-r--r-- | util/cmake/helper.py | 2 |
6 files changed, 35 insertions, 9 deletions
diff --git a/cmake/FindWrapFreetype.cmake b/cmake/FindWrapFreetype.cmake new file mode 100644 index 0000000000..521346cc23 --- /dev/null +++ b/cmake/FindWrapFreetype.cmake @@ -0,0 +1,26 @@ +# 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 WrapFreetype::WrapFreetype) + set(WrapFreetype_FOUND ON) + return() +endif() + +set(WrapFreetype_FOUND OFF) +find_package(Freetype) + +if(Freetype_FOUND) + # vcpkg defines a lower case target name, while upstream Find module defines a prefixed + # upper case name. + set(potential_target_names Freetype::Freetype freetype) + foreach(target_name ${potential_target_names}) + if(TARGET ${target_name}) + set(WrapFreetype_FOUND ON) + set(final_target_name ${target_name}) + + add_library(WrapFreetype::WrapFreetype INTERFACE IMPORTED) + target_link_libraries(WrapFreetype::WrapFreetype INTERFACE ${final_target_name}) + + break() + endif() + endforeach() +endif() diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake index 476b77d8d1..f3799eabdb 100644 --- a/src/gui/configure.cmake +++ b/src/gui/configure.cmake @@ -25,8 +25,8 @@ set_property(CACHE INPUT_xcb PROPERTY STRINGS undefined no yes qt system) qt_find_package(ATSPI2 PROVIDED_TARGETS PkgConfig::ATSPI2) qt_find_package(Libdrm PROVIDED_TARGETS Libdrm::Libdrm) qt_find_package(EGL PROVIDED_TARGETS EGL::EGL) -qt_find_package(Freetype PROVIDED_TARGETS Freetype::Freetype) -set_package_properties(Freetype PROPERTIES TYPE REQUIRED) +qt_find_package(WrapFreetype PROVIDED_TARGETS WrapFreetype::WrapFreetype) +set_package_properties(WrapFreetype::WrapFreetype PROPERTIES TYPE REQUIRED) qt_find_package(Fontconfig PROVIDED_TARGETS Fontconfig::Fontconfig) qt_find_package(gbm PROVIDED_TARGETS gbm::gbm) qt_find_package(harfbuzz PROVIDED_TARGETS harfbuzz::harfbuzz) diff --git a/src/platformsupport/fontdatabases/CMakeLists.txt b/src/platformsupport/fontdatabases/CMakeLists.txt index 140882691c..6ffc2fb2f3 100644 --- a/src/platformsupport/fontdatabases/CMakeLists.txt +++ b/src/platformsupport/fontdatabases/CMakeLists.txt @@ -1,6 +1,6 @@ # Generated from fontdatabases.pro. -qt_find_package(Freetype) # special case +qt_find_package(WrapFreetype) # special case qt_find_package(Fontconfig) # special case ##################################################################### @@ -54,7 +54,7 @@ extend_target(FontDatabaseSupport CONDITION QT_FEATURE_freetype freetype/qfontengine_ft.cpp freetype/qfontengine_ft_p.h freetype/qfreetypefontdatabase.cpp freetype/qfreetypefontdatabase_p.h LIBRARIES - Freetype::Freetype + WrapFreetype::WrapFreetype ) extend_target(FontDatabaseSupport CONDITION UNIX diff --git a/src/plugins/platforms/minimal/CMakeLists.txt b/src/plugins/platforms/minimal/CMakeLists.txt index 203a9e3920..58cd506e96 100644 --- a/src/plugins/platforms/minimal/CMakeLists.txt +++ b/src/plugins/platforms/minimal/CMakeLists.txt @@ -1,4 +1,4 @@ -qt_find_package(Freetype) # special case +qt_find_package(WrapFreetype) # special case ##################################################################### ## qminimal Plugin: @@ -29,7 +29,7 @@ add_qt_plugin(qminimal extend_target(qminimal CONDITION QT_FEATURE_freetype LIBRARIES - Freetype::Freetype + WrapFreetype::WrapFreetype ) #### Keys ignored in scope 3:.:minimal.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN: diff --git a/src/plugins/platforms/xcb/CMakeLists.txt b/src/plugins/platforms/xcb/CMakeLists.txt index c6c0c90b25..77fda139cf 100644 --- a/src/plugins/platforms/xcb/CMakeLists.txt +++ b/src/plugins/platforms/xcb/CMakeLists.txt @@ -6,7 +6,7 @@ qt_find_package(X11) qt_find_package(XCB) qt_find_package(XKB) qt_find_package(PkgConfig) -qt_find_package(Freetype) +qt_find_package(WrapFreetype) qt_find_package(GLIB2) pkg_check_modules(XKB_COMMON_X11 xkbcommon-x11>=0.4.1 IMPORTED_TARGET) # special case @@ -165,7 +165,7 @@ extend_target(XcbQpa CONDITION QT_FEATURE_xcb_native_painting AND QT_FEATURE_xre extend_target(XcbQpa CONDITION QT_FEATURE_fontconfig AND QT_FEATURE_xcb_native_painting LIBRARIES - Freetype::Freetype + WrapFreetype::WrapFreetype ) ##################################################################### ## qxcb Plugin: diff --git a/util/cmake/helper.py b/util/cmake/helper.py index 1833df0bd3..1873b5bfe0 100644 --- a/util/cmake/helper.py +++ b/util/cmake/helper.py @@ -181,7 +181,7 @@ _library_map = [ LibraryMapping('drm', 'Libdrm', 'Libdrm::Libdrm'), LibraryMapping('egl', 'EGL', 'EGL::EGL'), LibraryMapping('fontconfig', 'Fontconfig', 'Fontconfig::Fontconfig', resultVariable="FONTCONFIG"), - LibraryMapping('freetype', 'Freetype', 'Freetype::Freetype', extra=['REQUIRED']), + LibraryMapping('freetype', 'WrapFreetype', 'WrapFreetype::WrapFreetype', extra=['REQUIRED']), LibraryMapping('gbm', 'gbm', 'gbm::gbm'), LibraryMapping('glib', 'GLIB2', 'GLIB2::GLIB2'), LibraryMapping('gnu_iconv', None, None), |