From 57fd614e02681ee764f9eb0d0ae0aeb4f7ec8ca4 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Tue, 11 Apr 2017 10:17:40 -0300 Subject: [PATCH] meson: Check bison and flex are recent enough https://bugzilla.gnome.org/show_bug.cgi?id=781155 --- gst/parse/meson.build | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gst/parse/meson.build b/gst/parse/meson.build index 3b88321..f2baa9e 100644 --- a/gst/parse/meson.build +++ b/gst/parse/meson.build @@ -3,6 +3,7 @@ cc = meson.get_compiler('c') # Find flex, configure lex generator flex_cdata = configuration_data() +flex_min_version='2.5.31' flex = find_program('flex', required : false) if not flex.found() flex = find_program('win_flex', required : false) @@ -11,6 +12,18 @@ if not flex.found() endif endif +flexversion_res = run_command([flex, '--version']) +if flexversion_res.returncode() != 0 + error('Could not get flex version (@0@)'.format(flexversion_res.stderr())) +endif + +flexversion = flexversion_res.stdout().split('\n')[0].split(' ')[-1].strip() +if flexversion.version_compare('<' + flex_min_version) + error('flex version @0@ >= @1@: NO'.format(flexversion, flex_min_version)) +else + message('flex version @0@ >= @1@: YES'.format(flexversion, flex_min_version)) +endif + flex_cdata.set('FLEX', flex.path()) if cc.get_id() == 'msvc' flex_cdata.set('FLEX_ARGS', '--nounistd') @@ -25,6 +38,7 @@ gen_lex = configure_file(input : 'gen_lex.py.in', # Find bison, configure grammar generator bison_cdata = configuration_data() +bison_min_version='2.4' bison = find_program('bison', required : false) if not bison.found() bison = find_program('win_bison', required : false) @@ -33,6 +47,20 @@ if not bison.found() endif endif +bversion_res = run_command([bison, '--version']) +if bversion_res.returncode() != 0 + error('Could not get bison version (@0@)'.format(bversion_res.stderr())) +endif + +bversion = bversion_res.stdout().split('\n')[0].split(' ')[-1].strip() +if bversion.version_compare('<' + bison_min_version) + error('bison version @0@ >= @1@: NO'.format(bversion, bison_min_version)) +else + message('bison version @0@ >= @1@: YES'.format(bversion, bison_min_version)) +endif + + + bison_cdata.set('BISON', bison.path()) bison_cdata.set('BISON_ARGS', '') -- 2.7.4