[gimp/meson: 127/128] Add custom_targets for regenerating lex/parsers
- From: Félix Piédallu <fpiedallu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/meson: 127/128] Add custom_targets for regenerating lex/parsers
- Date: Mon, 12 Feb 2018 13:50:30 +0000 (UTC)
commit 167225e4cdd38dd914b821b8cd53a4a9ec983802
Author: Félix Piédallu <felix piedallu me>
Date: Fri Feb 2 15:13:51 2018 +0100
Add custom_targets for regenerating lex/parsers
plug-ins/imagemap/meson.build | 68 +++++++++++++++++++++++++++++++++++------
1 files changed, 58 insertions(+), 10 deletions(-)
---
diff --git a/plug-ins/imagemap/meson.build b/plug-ins/imagemap/meson.build
index 7b6ed22..4c3d795 100644
--- a/plug-ins/imagemap/meson.build
+++ b/plug-ins/imagemap/meson.build
@@ -99,13 +99,61 @@ executable(plugin_name,
install_dir: join_paths(gimpplugindir, 'plug-ins'),
)
-# TODO flex / bison re-generators
-# custom_target('rebuild-parsers',
-# input : [],
-# output: [ 'rebuild-parsers', ],
-# command: [
-#
-# ],
-# build_by_default: false,
-# build_always: true,
-#)
+
+
+flex = find_program('flex', required: false)
+bison = find_program('bison', required: false)
+
+if flex.found() and bison.found()
+
+ syntaxes = [
+ 'cern',
+ 'csim',
+ 'ncsa',
+ ]
+
+ foreach syntax : syntaxes
+
+ prefix = syntax + '_'
+ imapname = 'imap_' + syntax
+
+ custom_target(
+ imapname + '_lex.c',
+ input : imapname + '.l' ,
+ output: imapname + '_lex.c',
+ command: [
+ flex,
+ '--case-insensitive',
+ '--prefix', prefix,
+ '--outfile', '@OUTPUT@',
+ '@INPUT@',
+ ],
+ )
+
+ custom_target(
+ imapname + '_parse.c',
+ input : imapname + '.y' ,
+ output: imapname + '_parse.c',
+ command: [
+ bison, '--yacc',
+ '-d',
+ '--name-prefix', prefix,
+ '@INPUT@'
+ ],
+ )
+
+ custom_target(
+ imapname + '_parse.h',
+ input : imapname + '.y' ,
+ output: imapname + '_parse.h',
+ command: [
+ bison, '--yacc',
+ '-d',
+ '--name-prefix', prefix,
+ '--output', '@OUTPUT@',
+ '@INPUT@'
+ ],
+ )
+
+ endforeach
+endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]