|
|
|
@ -83,54 +83,60 @@ else()
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(GLIB_INCLUDE_DIRS ${GLIB_INCLUDE_DIR} ${GLIBCONFIG_INCLUDE_DIR})
|
|
|
|
|
if (GLIBCONFIG_INCLUDE_DIR)
|
|
|
|
|
|
|
|
|
|
# Version detection
|
|
|
|
|
file(READ "${GLIBCONFIG_INCLUDE_DIR}/glibconfig.h" GLIBCONFIG_H_CONTENTS)
|
|
|
|
|
string(REGEX MATCH "#define GLIB_MAJOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
|
|
|
|
|
set(GLIB_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
|
|
|
string(REGEX MATCH "#define GLIB_MINOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
|
|
|
|
|
set(GLIB_VERSION_MINOR "${CMAKE_MATCH_1}")
|
|
|
|
|
string(REGEX MATCH "#define GLIB_MICRO_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
|
|
|
|
|
set(GLIB_VERSION_MICRO "${CMAKE_MATCH_1}")
|
|
|
|
|
set(GLIB_VERSION "${GLIB_VERSION_MAJOR}.${GLIB_VERSION_MINOR}.${GLIB_VERSION_MICRO}")
|
|
|
|
|
set(GLIB_INCLUDE_DIRS ${GLIB_INCLUDE_DIR} ${GLIBCONFIG_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
# Additional Glib components. We only look for libraries, as not all of them
|
|
|
|
|
# have corresponding headers and all headers are installed alongside the main
|
|
|
|
|
# glib ones.
|
|
|
|
|
foreach (_component ${GLIB_FIND_COMPONENTS})
|
|
|
|
|
if (${_component} STREQUAL "gio")
|
|
|
|
|
find_library(GLIB_GIO_LIBRARIES NAMES gio-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GIO_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gobject")
|
|
|
|
|
find_library(GLIB_GOBJECT_LIBRARIES NAMES gobject-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GOBJECT_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gmodule")
|
|
|
|
|
find_library(GLIB_GMODULE_LIBRARIES NAMES gmodule-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GMODULE_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gthread")
|
|
|
|
|
find_library(GLIB_GTHREAD_LIBRARIES NAMES gthread-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GTHREAD_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gio-unix")
|
|
|
|
|
# gio-unix is compiled as part of the gio library, but the include paths
|
|
|
|
|
# are separate from the shared glib ones. Since this is currently only used
|
|
|
|
|
# by WebKitGTK+ we don't go to extraordinary measures beyond pkg-config.
|
|
|
|
|
pkg_check_modules(GIO_UNIX QUIET gio-unix-2.0)
|
|
|
|
|
endif ()
|
|
|
|
|
endforeach ()
|
|
|
|
|
# Version detection
|
|
|
|
|
file(READ "${GLIBCONFIG_INCLUDE_DIR}/glibconfig.h" GLIBCONFIG_H_CONTENTS)
|
|
|
|
|
string(REGEX MATCH "#define GLIB_MAJOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
|
|
|
|
|
set(GLIB_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
|
|
|
string(REGEX MATCH "#define GLIB_MINOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
|
|
|
|
|
set(GLIB_VERSION_MINOR "${CMAKE_MATCH_1}")
|
|
|
|
|
string(REGEX MATCH "#define GLIB_MICRO_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}")
|
|
|
|
|
set(GLIB_VERSION_MICRO "${CMAKE_MATCH_1}")
|
|
|
|
|
set(GLIB_VERSION "${GLIB_VERSION_MAJOR}.${GLIB_VERSION_MINOR}.${GLIB_VERSION_MICRO}")
|
|
|
|
|
|
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLIB REQUIRED_VARS GLIB_INCLUDE_DIRS GLIB_LIBRARIES ${ADDITIONAL_REQUIRED_VARS}
|
|
|
|
|
VERSION_VAR GLIB_VERSION)
|
|
|
|
|
# Additional Glib components. We only look for libraries, as not all of them
|
|
|
|
|
# have corresponding headers and all headers are installed alongside the main
|
|
|
|
|
# glib ones.
|
|
|
|
|
foreach (_component ${GLIB_FIND_COMPONENTS})
|
|
|
|
|
if (${_component} STREQUAL "gio")
|
|
|
|
|
find_library(GLIB_GIO_LIBRARIES NAMES gio-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GIO_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gobject")
|
|
|
|
|
find_library(GLIB_GOBJECT_LIBRARIES NAMES gobject-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GOBJECT_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gmodule")
|
|
|
|
|
find_library(GLIB_GMODULE_LIBRARIES NAMES gmodule-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GMODULE_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gthread")
|
|
|
|
|
find_library(GLIB_GTHREAD_LIBRARIES NAMES gthread-2.0 HINTS ${_GLIB_LIBRARY_DIR})
|
|
|
|
|
set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GTHREAD_LIBRARIES)
|
|
|
|
|
elseif (${_component} STREQUAL "gio-unix")
|
|
|
|
|
# gio-unix is compiled as part of the gio library, but the include paths
|
|
|
|
|
# are separate from the shared glib ones. Since this is currently only used
|
|
|
|
|
# by WebKitGTK+ we don't go to extraordinary measures beyond pkg-config.
|
|
|
|
|
pkg_check_modules(GIO_UNIX QUIET gio-unix-2.0)
|
|
|
|
|
endif ()
|
|
|
|
|
endforeach ()
|
|
|
|
|
|
|
|
|
|
mark_as_advanced(
|
|
|
|
|
GLIBCONFIG_INCLUDE_DIR
|
|
|
|
|
GLIB_GIO_LIBRARIES
|
|
|
|
|
GLIB_GIO_UNIX_LIBRARIES
|
|
|
|
|
GLIB_GMODULE_LIBRARIES
|
|
|
|
|
GLIB_GOBJECT_LIBRARIES
|
|
|
|
|
GLIB_GTHREAD_LIBRARIES
|
|
|
|
|
GLIB_INCLUDE_DIR
|
|
|
|
|
GLIB_INCLUDE_DIRS
|
|
|
|
|
GLIB_LIBRARIES
|
|
|
|
|
)
|
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLIB REQUIRED_VARS GLIB_INCLUDE_DIRS GLIB_LIBRARIES ${ADDITIONAL_REQUIRED_VARS}
|
|
|
|
|
VERSION_VAR GLIB_VERSION)
|
|
|
|
|
|
|
|
|
|
mark_as_advanced(
|
|
|
|
|
GLIBCONFIG_INCLUDE_DIR
|
|
|
|
|
GLIB_GIO_LIBRARIES
|
|
|
|
|
GLIB_GIO_UNIX_LIBRARIES
|
|
|
|
|
GLIB_GMODULE_LIBRARIES
|
|
|
|
|
GLIB_GOBJECT_LIBRARIES
|
|
|
|
|
GLIB_GTHREAD_LIBRARIES
|
|
|
|
|
GLIB_INCLUDE_DIR
|
|
|
|
|
GLIB_INCLUDE_DIRS
|
|
|
|
|
GLIB_LIBRARIES
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
else()
|
|
|
|
|
|
|
|
|
|
endif ()
|
|
|
|
|