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)
|
pkg_check_modules(PC_GOBJECT QUIET gobject-2.0)
|
||||||
|
|
||||||
find_path(GOBJECT_INCLUDE_DIRS
|
find_path(GLIB2_GOBJECT_INCLUDE_DIRS
|
||||||
NAMES glib-object.h
|
NAMES glib-object.h
|
||||||
HINTS ${PC_GOBJECT_INCLUDEDIR}
|
HINTS ${PC_GOBJECT_INCLUDEDIR}
|
||||||
PATH_SUFFIXES glib-2.0)
|
PATH_SUFFIXES glib-2.0)
|
||||||
|
|
||||||
find_library(GOBJECT_LIBRARIES
|
find_library(GLIB2_GOBJECT_LIBRARIES
|
||||||
NAMES gobject-2.0
|
NAMES gobject-2.0
|
||||||
HINTS ${PC_GOBJECT_LIBDIR}
|
HINTS ${PC_GOBJECT_LIBDIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
pkg_check_modules(PC_GIO QUIET gio-2.0)
|
pkg_check_modules(PC_GIO QUIET gio-2.0)
|
||||||
|
|
||||||
find_path(GIO_INCLUDE_DIRS
|
find_path(GLIB2_GIO_INCLUDE_DIRS
|
||||||
NAMES gio/gio.h
|
NAMES gio/gio.h
|
||||||
HINTS ${PC_GIO_INCLUDEDIR}
|
HINTS ${PC_GIO_INCLUDEDIR}
|
||||||
PATH_SUFFIXES glib-2.0)
|
PATH_SUFFIXES glib-2.0)
|
||||||
|
|
||||||
find_library(GIO_LIBRARIES
|
find_library(GLIB2_GIO_LIBRARIES
|
||||||
NAMES gio-2.0
|
NAMES gio-2.0
|
||||||
HINTS ${PC_GIO_LIBDIR}
|
HINTS ${PC_GIO_LIBDIR}
|
||||||
)
|
)
|
||||||
@ -106,18 +106,30 @@ find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h
|
|||||||
# for now it is optional
|
# for now it is optional
|
||||||
if(GLIB2_INTERNAL_INCLUDE_DIR)
|
if(GLIB2_INTERNAL_INCLUDE_DIR)
|
||||||
list(APPEND GLIB2_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
list(APPEND GLIB2_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||||
list(APPEND GOBJECT_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
list(APPEND GLIB2_GOBJECT_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||||
list(APPEND GIO_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
list(APPEND GLIB2_GIO_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Deprecated synonyms
|
# Deprecated synonyms
|
||||||
set(GLIB2_INCLUDE_DIR "${GLIB2_INCLUDE_DIRS}")
|
set(GLIB2_INCLUDE_DIR "${GLIB2_INCLUDE_DIRS}")
|
||||||
set(GLIB2_LIBRARY "${GLIB2_LIBRARIES}")
|
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)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS)
|
find_package_handle_standard_args(GLIB2
|
||||||
find_package_handle_standard_args(GOBJECT DEFAULT_MSG GOBJECT_LIBRARIES GOBJECT_INCLUDE_DIRS)
|
REQUIRED_VARS GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS
|
||||||
find_package_handle_standard_args(GIO DEFAULT_MSG GIO_LIBRARIES GIO_INCLUDE_DIRS)
|
HANDLE_COMPONENTS)
|
||||||
|
|
||||||
if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2)
|
if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2)
|
||||||
add_library(GLIB2::GLIB2 UNKNOWN IMPORTED)
|
add_library(GLIB2::GLIB2 UNKNOWN IMPORTED)
|
||||||
@ -127,26 +139,26 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2)
|
|||||||
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}")
|
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT)
|
if(GLIB2_GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT)
|
||||||
add_library(GLIB2::GOBJECT UNKNOWN IMPORTED)
|
add_library(GLIB2::GOBJECT UNKNOWN IMPORTED)
|
||||||
set_target_properties(GLIB2::GOBJECT PROPERTIES
|
set_target_properties(GLIB2::GOBJECT PROPERTIES
|
||||||
IMPORTED_LOCATION "${GOBJECT_LIBRARIES}"
|
IMPORTED_LOCATION "${GLIB2_GOBJECT_LIBRARIES}"
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${GOBJECT_INCLUDE_DIRS}")
|
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GOBJECT_INCLUDE_DIRS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(GIO_FOUND AND NOT TARGET GLIB2::GIO)
|
if(GLIB2_GIO_FOUND AND NOT TARGET GLIB2::GIO)
|
||||||
add_library(GLIB2::GIO UNKNOWN IMPORTED)
|
add_library(GLIB2::GIO UNKNOWN IMPORTED)
|
||||||
set_target_properties(GLIB2::GIO PROPERTIES
|
set_target_properties(GLIB2::GIO PROPERTIES
|
||||||
IMPORTED_LOCATION "${GIO_LIBRARIES}"
|
IMPORTED_LOCATION "${GLIB2_GIO_LIBRARIES}"
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${GIO_INCLUDE_DIRS}")
|
INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GIO_INCLUDE_DIRS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_INCLUDE_DIR
|
mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_INCLUDE_DIR
|
||||||
GLIB2_LIBRARIES GLIB2_LIBRARY
|
GLIB2_LIBRARIES GLIB2_LIBRARY
|
||||||
GOBJECT_INCLUDE_DIRS GOBJECT_INCLUDE_DIR
|
GLIB2_GOBJECT_INCLUDE_DIRS GLIB2_GOBJECT_INCLUDE_DIR
|
||||||
GOBJECT_LIBRARIES GOBJECT_LIBRARY
|
GLIB2_GOBJECT_LIBRARIES GLIB2_GOBJECT_LIBRARY
|
||||||
GIO_INCLUDE_DIRS GIO_INCLUDE_DIR
|
GLIB2_GIO_INCLUDE_DIRS GLIB2_GIO_INCLUDE_DIR
|
||||||
GIO_LIBRARIES GIO_LIBRARY)
|
GLIB2_GIO_LIBRARIES GLIB2_GIO_LIBRARY)
|
||||||
|
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
set_package_properties(GLIB2 PROPERTIES
|
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(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
|
#### Tests
|
||||||
|
@ -14,6 +14,6 @@ if(ANDROID)
|
|||||||
add_subdirectory(android)
|
add_subdirectory(android)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(QT_FEATURE_glib)
|
if(QT_FEATURE_glib AND TARGET GLIB2::GOBJECT AND TARGET GLIB2::GIO)
|
||||||
add_subdirectory(glib)
|
add_subdirectory(glib)
|
||||||
endif()
|
endif()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user