diff options
author | Nico Weber <nicolasweber@gmx.de> | 2012-08-16 03:11:27 (GMT) |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2012-08-16 03:11:27 (GMT) |
commit | 6c7fae2af8e5c2d34bdbed5d1c3c5739bb548ee8 (patch) | |
tree | b8414181ca75c41404a609a248b506435b3cce7a | |
parent | c3928c1c0df0fab93d7b47392ba593d9e25ade49 (diff) | |
download | Ninja-6c7fae2af8e5c2d34bdbed5d1c3c5739bb548ee8.zip Ninja-6c7fae2af8e5c2d34bdbed5d1c3c5739bb548ee8.tar.gz Ninja-6c7fae2af8e5c2d34bdbed5d1c3c5739bb548ee8.tar.bz2 |
Only write re2c rules if a re2c binary is found in the PATH.
-rwxr-xr-x | configure.py | 22 |
1 files 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.') |