From fae5691c7f78f8a0154c9cea28b6639327a90550 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 4 Jun 2019 12:02:14 +0200 Subject: [PATCH] CMake: Allow build with MinGW and Hunter 3rd party packages Hunter has recently added aliased target names that conform with upstream CMake find module target names. Extended the WrapFreetype to work with Hunter's freetype (lowercase) package name. Change-Id: I0e25f342c6930658f07f05d2e6a58cf94d2d168d Reviewed-by: Alexandru Croitor --- cmake/FindWrapFreetype.cmake | 9 ++++++++- cmake/QtBuild.cmake | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cmake/FindWrapFreetype.cmake b/cmake/FindWrapFreetype.cmake index 521346cc233..ec7d2a8d243 100644 --- a/cmake/FindWrapFreetype.cmake +++ b/cmake/FindWrapFreetype.cmake @@ -6,7 +6,14 @@ if(TARGET WrapFreetype::WrapFreetype) endif() set(WrapFreetype_FOUND OFF) -find_package(Freetype) + +# Hunter has the package named freetype, but exports the Freetype::Freetype target as upstream +# First try the CONFIG package, and afterwards the MODULE if not found + +find_package(Freetype CONFIG NAMES Freetype freetype QUIET) +if(NOT Freetype_FOUND) + find_package(Freetype MODULE) +endif() if(Freetype_FOUND) # vcpkg defines a lower case target name, while upstream Find module defines a prefixed diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 20b7c5bec84..591c752f77e 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -2036,6 +2036,12 @@ macro(qt_find_package) # all scopes. foreach(qt_find_package_target_name ${arg_PROVIDED_TARGETS}) if(TARGET ${qt_find_package_target_name}) + # Allow usage of aliased targets by setting properties on the actual target + get_target_property(aliased_target ${qt_find_package_target_name} ALIASED_TARGET) + if(aliased_target) + set(qt_find_package_target_name ${aliased_target}) + endif() + set_target_properties(${qt_find_package_target_name} PROPERTIES INTERFACE_QT_PACKAGE_NAME ${ARGV0}) if(package_version)