--- /dev/null
+bison = find_program('bison', required: true)
+
+summary('Bison', bison.found(), bool_yn: true, section: 'Programs')
+summary('Bison Path', bison.full_path(), section: 'Programs')
+summary('Bison Version', bison.version(), section: 'Programs')
+
+bison_generator = generator(
+ bison,
+ output: '@BASENAME@.cc',
+ arguments: ['-d', '--verbose', '--debug', '--output=@OUTPUT@', '@INPUT@'],
+)
--- /dev/null
+flex = find_program('flex', required: true)
+
+summary('Flex', flex.found(), bool_yn: true, section: 'Programs')
+summary('Flex Path', flex.full_path(), section: 'Programs')
+summary('Flex Version', flex.version(), section: 'Programs')
+
+flex_generator = generator(
+ flex,
+ output: '@BASENAME@.c',
+ arguments: ['--case-insensitive', '--outfile=@OUTPUT@', '@INPUT@'],
+)
--- /dev/null
+py = import('python')
+python_prog = py.find_installation(
+ 'python3',
+ modules: from_git ? ['yaml'] : [],
+ required: from_git,
+)
+
+summary('Python', python_prog.found(), bool_yn: true, section: 'Python')
+summary('Path', python_prog.full_path(), section: 'Python')
+summary('Version', python_prog.version(), section: 'Python')
--- /dev/null
+ragel = find_program('ragel', required: false)
+
+summary('Ragel', ragel.found(), bool_yn: ragel.found(), section: 'Programs')
+summary('Ragel Path', ragel.full_path(), section: 'Programs')
+summary('Ragel Version', ragel.version(), section: 'Programs')
+
+ragel_generator = generator(
+ ragel,
+ output: '@BASENAME@.cc',
+ arguments: ['@INPUT@', '-o', '@OUTPUT@'],
+)