meson: add yajl build dependency

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
Pavel Hrdina 2020-07-29 14:22:23 +02:00
parent 45d6cf3a1e
commit 88ab32a4e5
4 changed files with 26 additions and 45 deletions

View File

@ -109,11 +109,9 @@ fi
LIBVIRT_ARG_NSS LIBVIRT_ARG_NSS
LIBVIRT_ARG_PM_UTILS LIBVIRT_ARG_PM_UTILS
LIBVIRT_ARG_YAJL
LIBVIRT_CHECK_NWFILTER LIBVIRT_CHECK_NWFILTER
LIBVIRT_CHECK_PM_UTILS LIBVIRT_CHECK_PM_UTILS
LIBVIRT_CHECK_YAJL
@ -390,7 +388,6 @@ LIBVIRT_RESULT_LIBXL
LIBVIRT_RESULT_NSS LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_PM_UTILS LIBVIRT_RESULT_PM_UTILS
LIBVIRT_RESULT_RBD LIBVIRT_RESULT_RBD
LIBVIRT_RESULT_YAJL
AC_MSG_NOTICE([]) AC_MSG_NOTICE([])
AC_MSG_NOTICE([Windows]) AC_MSG_NOTICE([Windows])
AC_MSG_NOTICE([]) AC_MSG_NOTICE([])

View File

@ -1,42 +0,0 @@
dnl The libyajl.so library
dnl
dnl Copyright (C) 2012-2013 Red Hat, Inc.
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
dnl
AC_DEFUN([LIBVIRT_ARG_YAJL],[
LIBVIRT_ARG_WITH_FEATURE([YAJL], [yajl], [check])
])
AC_DEFUN([LIBVIRT_CHECK_YAJL],[
dnl YAJL JSON library http://lloyd.github.com/yajl/
PKG_CHECK_EXISTS([yajl], [use_pkgconfig=1], [use_pkgconfig=0])
if test $use_pkgconfig = 1; then
dnl 2.0.3 was the version where the pkg-config file was first added
LIBVIRT_CHECK_PKG([YAJL], [yajl], [2.0.3])
else
dnl SLES 12 and openSUSE Leap 42.3 still use 2.0.1
dnl TODO: delete this in July 2020
LIBVIRT_CHECK_LIB([YAJL], [yajl],
[yajl_tree_parse], [yajl/yajl_common.h])
fi
])
AC_DEFUN([LIBVIRT_RESULT_YAJL],[
LIBVIRT_RESULT_LIB([YAJL])
])

View File

@ -1472,6 +1472,30 @@ else
xdr_dep = declare_dependency() xdr_dep = declare_dependency()
endif endif
yajl_version = '2.0.3'
if not get_option('yajl').disabled()
yajl_dep = dependency('yajl', version: '>=' + yajl_version, required: false)
# 2.0.3 was the version where the pkg-config file was first added
# SLES 12 and openSUSE Leap 42.3 still use 2.0.1
# TODO: delete this in July 2020
if not yajl_dep.found()
yajl_dep = cc.find_library('yajl', required: get_option('yajl'))
if yajl_dep.found()
has_func = cc.has_function('yajl_tree_parse', dependencies: yajl_dep, prefix: '#include <yajl/yajl_common.h>')
if not has_func and get_option('yajl').enabled()
error('yajl >= @0@ was not found'.format(yajl_version))
elif not has_func
yajl_dep = dependency('', required: false)
endif
endif
endif
else
yajl_dep = dependency('', required: false)
endif
if yajl_dep.found()
conf.set('WITH_YAJL', 1)
endif
# generic build dependencies checks # generic build dependencies checks
@ -1588,6 +1612,7 @@ libs_summary = {
'udev': udev_dep.found(), 'udev': udev_dep.found(),
'virtualport': conf.has('WITH_VIRTUALPORT'), 'virtualport': conf.has('WITH_VIRTUALPORT'),
'xdr': xdr_dep.found(), 'xdr': xdr_dep.found(),
'yajl': yajl_dep.found(),
} }
summary(libs_summary, section: 'Libraries', bool_yn: true) summary(libs_summary, section: 'Libraries', bool_yn: true)

View File

@ -44,6 +44,7 @@ option('udev', type: 'feature', value: 'auto', description: 'udev support')
option('virtualport', type: 'feature', value: 'auto', description: 'enable virtual port support') option('virtualport', type: 'feature', value: 'auto', description: 'enable virtual port support')
option('wireshark_dissector', type: 'feature', value: 'auto', description: 'wireshark support') option('wireshark_dissector', type: 'feature', value: 'auto', description: 'wireshark support')
option('wireshark_plugindir', type: 'string', value: '', description: 'wireshark plugins directory for use when installing wireshark plugin') option('wireshark_plugindir', type: 'string', value: '', description: 'wireshark plugins directory for use when installing wireshark plugin')
option('yajl', type: 'feature', value: 'auto', description: 'yajl support')
# build driver options # build driver options