Commit c164b88a authored by Nirbheek Chauhan's avatar Nirbheek Chauhan

meson: Extract flex version using a regex inside a script

Different builds of Flex on different platforms output different strings
in --version. For example:

macOS:
flex 2.5.35 Apple(flex-31)

Windows:
win_flex.exe 2.6.4
C:\Program Files (x86)\GnuWin32\bin\flex.EXE version 2.5.4

We need to look for a string that looks like a version, which means
a regex till https://github.com/mesonbuild/meson/issues/1609 is fixed.

Fixes #356
parent febfabb3
#!/usr/bin/env python3
import re
import sys
import subprocess
flex = sys.argv[1]
out = subprocess.check_output([flex, '--version'], universal_newlines=True,
stderr=subprocess.STDOUT, stdin=subprocess.DEVNULL)
print(re.search(r'(\d+\.\d+(\.\d+)?)', out).group())
......@@ -6,12 +6,9 @@ flex_cdata = configuration_data()
flex_min_version='2.5.31'
flex = find_program('flex', 'win_flex')
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()
get_flex_version = find_program('get_flex_version.py')
flexversion_res = run_command([get_flex_version, flex], check: true)
flexversion = flexversion_res.stdout().strip()
if flexversion.version_compare('<' + flex_min_version)
error('flex version @0@ >= @1@: NO'.format(flexversion, flex_min_version))
else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment