forked from osmocom/wireshark
CMake: bail out if minimum GLib version is not satisfied
Require glibconfig.h to be found and extract the version from this file, this has been present since the original GLib commit and is still present in the meson build system introduced with 2.53.4. Bug: 15706 Change-Id: I2e938a339d48d6815ed7cc46462735b93418377f Reviewed-on: https://code.wireshark.org/review/32894 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
This commit is contained in:
parent
3f9579e3f5
commit
8c26217548
|
@ -994,9 +994,8 @@ endmacro()
|
|||
|
||||
# The minimum package list
|
||||
find_package(Git)
|
||||
set(GLIB2_MIN_VERSION 2.32.0)
|
||||
reset_find_package(GLIB2 GLIB2_MAIN_INCLUDE_DIR GLIB2_INTERNAL_INCLUDE_DIR)
|
||||
find_package(GLIB2 REQUIRED)
|
||||
find_package(GLIB2 "2.32.0" REQUIRED)
|
||||
include_directories(SYSTEM ${GLIB2_INCLUDE_DIRS})
|
||||
reset_find_package(GMODULE2)
|
||||
find_package(GMODULE2)
|
||||
|
|
|
@ -24,19 +24,14 @@ FindWSWinLibs( "vcpkg-export-*" "GLIB2_HINTS" )
|
|||
|
||||
if (NOT WIN32)
|
||||
find_package(PkgConfig)
|
||||
|
||||
if( GLIB2_MIN_VERSION )
|
||||
pkg_search_module( GLIB2 glib-2.0>=${GLIB2_MIN_VERSION} )
|
||||
else()
|
||||
pkg_search_module( GLIB2 glib-2.0 )
|
||||
endif()
|
||||
pkg_search_module( PC_GLIB2 glib-2.0 )
|
||||
endif()
|
||||
|
||||
find_path( GLIB2_MAIN_INCLUDE_DIR
|
||||
NAMES
|
||||
glib.h
|
||||
HINTS
|
||||
"${GLIB2_INCLUDEDIR}"
|
||||
"${PC_GLIB2_INCLUDEDIR}"
|
||||
"${GLIB2_HINTS}/include"
|
||||
PATH_SUFFIXES
|
||||
glib-2.0
|
||||
|
@ -54,7 +49,7 @@ find_library( GLIB2_LIBRARY
|
|||
glib-2.0
|
||||
libglib-2.0
|
||||
HINTS
|
||||
"${GLIB2_LIBDIR}"
|
||||
"${PC_GLIB2_LIBDIR}"
|
||||
"${GLIB2_HINTS}/lib"
|
||||
PATHS
|
||||
/opt/gnome/lib64
|
||||
|
@ -84,11 +79,29 @@ find_path( GLIB2_INTERNAL_INCLUDE_DIR
|
|||
|
||||
)
|
||||
|
||||
if(PC_GLIB2_VERSION)
|
||||
set(GLIB2_VERSION ${PC_GLIB2_VERSION})
|
||||
elseif(GLIB2_INTERNAL_INCLUDE_DIR)
|
||||
# On systems without pkg-config (e.g. Windows), search its header
|
||||
# (available since the initial commit of GLib).
|
||||
file(STRINGS ${GLIB2_INTERNAL_INCLUDE_DIR}/glibconfig.h GLIB_MAJOR_VERSION
|
||||
REGEX "#define[ ]+GLIB_MAJOR_VERSION[ ]+[0-9]+")
|
||||
string(REGEX MATCH "[0-9]+" GLIB_MAJOR_VERSION ${GLIB_MAJOR_VERSION})
|
||||
file(STRINGS ${GLIB2_INTERNAL_INCLUDE_DIR}/glibconfig.h GLIB_MINOR_VERSION
|
||||
REGEX "#define[ ]+GLIB_MINOR_VERSION[ ]+[0-9]+")
|
||||
string(REGEX MATCH "[0-9]+" GLIB_MINOR_VERSION ${GLIB_MINOR_VERSION})
|
||||
file(STRINGS ${GLIB2_INTERNAL_INCLUDE_DIR}/glibconfig.h GLIB_MICRO_VERSION
|
||||
REGEX "#define[ ]+GLIB_MICRO_VERSION[ ]+[0-9]+")
|
||||
string(REGEX MATCH "[0-9]+" GLIB_MICRO_VERSION ${GLIB_MICRO_VERSION})
|
||||
set(GLIB2_VERSION ${GLIB_MAJOR_VERSION}.${GLIB_MINOR_VERSION}.${GLIB_MICRO_VERSION})
|
||||
else()
|
||||
set(GLIB2_VERSION "")
|
||||
endif()
|
||||
|
||||
include( FindPackageHandleStandardArgs )
|
||||
find_package_handle_standard_args( GLIB2
|
||||
DEFAULT_MSG
|
||||
GLIB2_LIBRARY
|
||||
GLIB2_MAIN_INCLUDE_DIR
|
||||
REQUIRED_VARS GLIB2_LIBRARY GLIB2_MAIN_INCLUDE_DIR GLIB2_INTERNAL_INCLUDE_DIR
|
||||
VERSION_VAR GLIB2_VERSION
|
||||
)
|
||||
|
||||
if( GLIB2_FOUND )
|
||||
|
|
Loading…
Reference in New Issue