summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/FindWrapFreetype.cmake26
-rw-r--r--src/gui/configure.cmake4
-rw-r--r--src/platformsupport/fontdatabases/CMakeLists.txt4
-rw-r--r--src/plugins/platforms/minimal/CMakeLists.txt4
-rw-r--r--src/plugins/platforms/xcb/CMakeLists.txt4
-rw-r--r--util/cmake/helper.py2
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),