Handle glib optional components properly
Fixes: QTBUG-97929 Pick-to: 6.3 Change-Id: Ic73548cb10680a2ccd60faed2b0548c82892eaa1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
2a192c5f18
commit
5a0849ed6b
@ -73,24 +73,24 @@ find_library(GTHREAD2_LIBRARIES
|
||||
|
||||
pkg_check_modules(PC_GOBJECT QUIET gobject-2.0)
|
||||
|
||||
find_path(GOBJECT_INCLUDE_DIRS
|
||||
find_path(GLIB2_GOBJECT_INCLUDE_DIRS
|
||||
NAMES glib-object.h
|
||||
HINTS ${PC_GOBJECT_INCLUDEDIR}
|
||||
PATH_SUFFIXES glib-2.0)
|
||||
|
||||
find_library(GOBJECT_LIBRARIES
|
||||
find_library(GLIB2_GOBJECT_LIBRARIES
|
||||
NAMES gobject-2.0
|
||||
HINTS ${PC_GOBJECT_LIBDIR}
|
||||
)
|
||||
|
||||
pkg_check_modules(PC_GIO QUIET gio-2.0)
|
||||
|
||||
find_path(GIO_INCLUDE_DIRS
|
||||
find_path(GLIB2_GIO_INCLUDE_DIRS
|
||||
NAMES gio/gio.h
|
||||
HINTS ${PC_GIO_INCLUDEDIR}
|
||||
PATH_SUFFIXES glib-2.0)
|
||||
|
||||
find_library(GIO_LIBRARIES
|
||||
find_library(GLIB2_GIO_LIBRARIES
|
||||
NAMES gio-2.0
|
||||
HINTS ${PC_GIO_LIBDIR}
|
||||
)
|
||||
@ -106,18 +106,30 @@ find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h
|
||||
# for now it is optional
|
||||
if(GLIB2_INTERNAL_INCLUDE_DIR)
|
||||
list(APPEND GLIB2_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||
list(APPEND GOBJECT_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||
list(APPEND GIO_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||
list(APPEND GLIB2_GOBJECT_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||
list(APPEND GLIB2_GIO_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
# Deprecated synonyms
|
||||
set(GLIB2_INCLUDE_DIR "${GLIB2_INCLUDE_DIRS}")
|
||||
set(GLIB2_LIBRARY "${GLIB2_LIBRARIES}")
|
||||
set(GLIB2_GOBJECT_INCLUDE_DIR "${GLIB2_GOBJECT_INCLUDE_DIRS}")
|
||||
set(GLIB2_GOBJECT_LIBRARY "${GLIB2_GOBJECT_LIBRARIES}")
|
||||
set(GLIB2_GIO_INCLUDE_DIR "${GLIB2_GIO_INCLUDE_DIRS}")
|
||||
set(GLIB2_GIO_LIBRARY "${GLIB2_GIO_LIBRARIES}")
|
||||
|
||||
if(GLIB2_GOBJECT_LIBRARIES AND GLIB2_GOBJECT_INCLUDE_DIRS)
|
||||
set(GLIB2_GOBJECT_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
if(GLIB2_GIO_LIBRARIES AND GLIB2_GIO_INCLUDE_DIRS)
|
||||
set(GLIB2_GIO_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(GOBJECT DEFAULT_MSG GOBJECT_LIBRARIES GOBJECT_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(GIO DEFAULT_MSG GIO_LIBRARIES GIO_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(GLIB2
|
||||
REQUIRED_VARS GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS
|
||||
HANDLE_COMPONENTS)
|
||||
|
||||
if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2)
|
||||
add_library(GLIB2::GLIB2 UNKNOWN IMPORTED)
|
||||
@ -127,26 +139,26 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2)
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
if(GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT)
|
||||
if(GLIB2_GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT)
|
||||
add_library(GLIB2::GOBJECT UNKNOWN IMPORTED)
|
||||
set_target_properties(GLIB2::GOBJECT PROPERTIES
|
||||
IMPORTED_LOCATION "${GOBJECT_LIBRARIES}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GOBJECT_INCLUDE_DIRS}")
|
||||
IMPORTED_LOCATION "${GLIB2_GOBJECT_LIBRARIES}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GOBJECT_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
if(GIO_FOUND AND NOT TARGET GLIB2::GIO)
|
||||
if(GLIB2_GIO_FOUND AND NOT TARGET GLIB2::GIO)
|
||||
add_library(GLIB2::GIO UNKNOWN IMPORTED)
|
||||
set_target_properties(GLIB2::GIO PROPERTIES
|
||||
IMPORTED_LOCATION "${GIO_LIBRARIES}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GIO_INCLUDE_DIRS}")
|
||||
IMPORTED_LOCATION "${GLIB2_GIO_LIBRARIES}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GIO_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_INCLUDE_DIR
|
||||
GLIB2_LIBRARIES GLIB2_LIBRARY
|
||||
GOBJECT_INCLUDE_DIRS GOBJECT_INCLUDE_DIR
|
||||
GOBJECT_LIBRARIES GOBJECT_LIBRARY
|
||||
GIO_INCLUDE_DIRS GIO_INCLUDE_DIR
|
||||
GIO_LIBRARIES GIO_LIBRARY)
|
||||
GLIB2_GOBJECT_INCLUDE_DIRS GLIB2_GOBJECT_INCLUDE_DIR
|
||||
GLIB2_GOBJECT_LIBRARIES GLIB2_GOBJECT_LIBRARY
|
||||
GLIB2_GIO_INCLUDE_DIRS GLIB2_GIO_INCLUDE_DIR
|
||||
GLIB2_GIO_LIBRARIES GLIB2_GIO_LIBRARY)
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(GLIB2 PROPERTIES
|
||||
|
@ -54,6 +54,8 @@ SSL_free(SSL_new(0));
|
||||
")
|
||||
|
||||
qt_find_package(GSSAPI PROVIDED_TARGETS GSSAPI::GSSAPI MODULE_NAME network QMAKE_LIB gssapi)
|
||||
qt_find_package(GLIB2 OPTIONAL_COMPONENTS GOBJECT PROVIDED_TARGETS GLIB2::GOBJECT MODULE_NAME core QMAKE_LIB gobject)
|
||||
qt_find_package(GLIB2 OPTIONAL_COMPONENTS GIO PROVIDED_TARGETS GLIB2::GIO MODULE_NAME core QMAKE_LIB gio)
|
||||
|
||||
|
||||
#### Tests
|
||||
|
@ -14,6 +14,6 @@ if(ANDROID)
|
||||
add_subdirectory(android)
|
||||
endif()
|
||||
|
||||
if(QT_FEATURE_glib)
|
||||
if(QT_FEATURE_glib AND TARGET GLIB2::GOBJECT AND TARGET GLIB2::GIO)
|
||||
add_subdirectory(glib)
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user