windows: unconditionally use flex / bison binaries
authorMathieu Duponchelle <mathieu@centricular.com>
Thu, 24 Jan 2019 16:11:59 +0000 (17:11 +0100)
committerMathieu Duponchelle <mathieu@centricular.com>
Thu, 24 Jan 2019 16:25:46 +0000 (17:25 +0100)
This to simplify the checks made when for example a flex binary
is available system wide: the build process was failing when
that system wide binary didn't have the required version. Instead
of adding more checks and making things more complex, let's just
always use our binary subproject.

meson.build
subprojects/win-flex-bison-binaries/meson.build

index 66dec30..02af00a 100644 (file)
@@ -55,10 +55,7 @@ os.symlink(os.path.join('@1@', 'subprojects', '@0@'),
   os.path.join('@1@', '@0@'))
 '''
 
-# On Windows, if flex/bison aren't found, we use a subproject to get them
-flex = find_program('flex', 'win_flex', required : build_system != 'windows')
-bison = find_program('bison', 'win_bison', required : build_system != 'windows')
-if not flex.found() or not bison.found()
+if build_system == 'windows'
   subproject('win-flex-bison-binaries')
 endif
 
index e56fea7..4179265 100644 (file)
@@ -1,25 +1,16 @@
 project('win-flex-bison-binary', version : '2.5.14')
 
-provide_flex = not find_program('flex', required : false).found()
-provide_bison = not find_program('bison', required : false).found()
+py3 = import('python3').find_python()
 
-if provide_flex or provide_bison
-  py3 = import('python3').find_python()
+message('Downloading and extracting win-flex-bison binaries...')
 
-  message('Downloading and extracting win-flex-bison binaries...')
+zip_hash = '354c9aae02aca421c52abfda7fe3ce6c32ad07e25ff3f66e31da9437a0b906cf'
 
-  zip_hash = '354c9aae02aca421c52abfda7fe3ce6c32ad07e25ff3f66e31da9437a0b906cf'
-
-  ret = run_command(py3, files('download-binary.py'), meson.project_version(), zip_hash)
-  if ret.returncode() != 0
-    message(ret.stdout())
-    error(ret.stderr())
-  endif
-
-  if provide_flex
-    meson.override_find_program('flex', find_program('win_flex'))
-  endif
-  if provide_bison
-    meson.override_find_program('bison', find_program('win_bison'))
-  endif
+ret = run_command(py3, files('download-binary.py'), meson.project_version(), zip_hash)
+if ret.returncode() != 0
+  message(ret.stdout())
+  error(ret.stderr())
 endif
+
+meson.override_find_program('flex', find_program('win_flex'))
+meson.override_find_program('bison', find_program('win_bison'))