meson: Check bison and flex are recent enough
authorThibault Saunier <thibault.saunier@osg.samsung.com>
Tue, 11 Apr 2017 13:17:40 +0000 (10:17 -0300)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Tue, 11 Apr 2017 13:59:34 +0000 (10:59 -0300)
https://bugzilla.gnome.org/show_bug.cgi?id=781155

gst/parse/meson.build

index 3b88321..f2baa9e 100644 (file)
@@ -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', '')