CMake build / macOS: Find QtDesignerComponents framework

Enables building of Widget Designer integration on macOS

Change-Id: I84a2ee78ccf99941a0be517e089ece810154699d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Eike Ziller
2019-05-20 10:19:02 +02:00
parent 36daca80f3
commit f498f577e6

View File

@@ -26,20 +26,38 @@ if (NOT Qt5Designer_FOUND)
return()
endif()
get_target_property(_designer_location Qt5::Designer IMPORTED_LOCATION_DEBUG)
if (NOT _designer_location)
get_target_property(_designer_location Qt5::Designer IMPORTED_LOCATION_RELEASE)
endif()
if (NOT _designer_location)
get_target_property(_designer_location Qt5::Designer IMPORTED_LOCATION)
endif()
get_target_property(_designer_is_framework Qt5::Designer FRAMEWORK)
find_library(DesignerComponents_LIBRARIES NAMES Qt5DesignerComponents QtDesignerComponents
NO_DEFAULT_PATH PATHS "${_designer_location}/.." "${_designer_location}/../..")
find_path(DesignerComponents_INCLUDE_DIRS NAMES qtdesignercomponentsversion.h PATH_SUFFIXES QtDesignerComponents HINTS ${Qt5Designer_INCLUDE_DIRS})
find_library(DesignerComponents_LIBRARIES NAMES Qt5DesignerComponents)
if (_designer_is_framework)
if (DesignerComponents_LIBRARIES)
set(DesignerComponents_LIBRARIES "${DesignerComponents_LIBRARIES}/QtDesignerComponents")
endif()
else()
find_path(DesignerComponents_INCLUDE_DIRS NAMES qtdesignercomponentsversion.h PATH_SUFFIXES QtDesignerComponents HINTS ${Qt5Designer_INCLUDE_DIRS})
set(_required_vars Qt5Designer_INCLUDE_DIRS)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(DesignerComponents DEFAULT_MSG
DesignerComponents_LIBRARIES DesignerComponents_INCLUDE_DIRS)
DesignerComponents_LIBRARIES ${_required_vars})
if(DesignerComponents_FOUND AND NOT TARGET DesignerComponents::DesignerComponents)
add_library(Qt5::DesignerComponents UNKNOWN IMPORTED)
set_target_properties(Qt5::DesignerComponents PROPERTIES
IMPORTED_LOCATION "${DesignerComponents_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${DesignerComponents_INCLUDE_DIRS}")
IMPORTED_LOCATION "${DesignerComponents_LIBRARIES}")
if (NOT _designer_is_framework)
set_target_properties(Qt5::DesignerComponents PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${DesignerComponents_INCLUDE_DIRS}")
endif()
endif()
mark_as_advanced(DesignerComponents_INCLUDE_DIRS DesignerComponents_LIBRARIES)