diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake index 1d47a748ea6..24a194c9cb3 100644 --- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake +++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake @@ -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 diff --git a/src/network/configure.cmake b/src/network/configure.cmake index 0b86c4b6bf1..e47affb6b59 100644 --- a/src/network/configure.cmake +++ b/src/network/configure.cmake @@ -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 diff --git a/src/plugins/networkinformation/CMakeLists.txt b/src/plugins/networkinformation/CMakeLists.txt index ddb907d1e7f..06bbe891211 100644 --- a/src/plugins/networkinformation/CMakeLists.txt +++ b/src/plugins/networkinformation/CMakeLists.txt @@ -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()