From 6c7fae2af8e5c2d34bdbed5d1c3c5739bb548ee8 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 15 Aug 2012 20:11:27 -0700 Subject: Only write re2c rules if a re2c binary is found in the PATH. --- configure.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/configure.py b/configure.py index 981d401..287f58a 100755 --- a/configure.py +++ b/configure.py @@ -233,12 +233,22 @@ if platform not in ('mingw', 'windows'): n.newline() n.comment('the depfile parser and ninja lexers are generated using re2c.') -n.rule('re2c', - command='re2c -b -i --no-generation-date -o $out $in', - description='RE2C $out') -# Generate the .cc files in the source directory so we can check them in. -n.build(src('depfile_parser.cc'), 're2c', src('depfile_parser.in.cc')) -n.build(src('lexer.cc'), 're2c', src('lexer.in.cc')) +def has_re2c(): + import subprocess + try: + subprocess.call(['re2c', '-v'], stdout=subprocess.PIPE) + return True + except OSError: + return False +if has_re2c(): + n.rule('re2c', + command='re2c -b -i --no-generation-date -o $out $in', + description='RE2C $out') + # Generate the .cc files in the source directory so we can check them in. + n.build(src('depfile_parser.cc'), 're2c', src('depfile_parser.in.cc')) + n.build(src('lexer.cc'), 're2c', src('lexer.in.cc')) +else: + n.comment('(re2c not found, using checked-in cc files instead.)') n.newline() n.comment('Core source files all build into ninja library.') -- cgit v0.12