diff options
author | Jason Haslam <jason@scitools.com> | 2015-05-26 21:19:28 (GMT) |
---|---|---|
committer | Jason Haslam <jason@scitools.com> | 2015-06-22 21:35:32 (GMT) |
commit | 1beea932bc1dcf5a4684cc948c8eae6957ee119f (patch) | |
tree | dfe1b40bbacc12a5eedaaccc82c9c01aacf5d038 /configure.py | |
parent | a05d4644d13624e716093fc4bd88a21e6d20223c (diff) | |
download | Ninja-1beea932bc1dcf5a4684cc948c8eae6957ee119f.zip Ninja-1beea932bc1dcf5a4684cc948c8eae6957ee119f.tar.gz Ninja-1beea932bc1dcf5a4684cc948c8eae6957ee119f.tar.bz2 |
Allow configure script to bootstrap out of source.
Diffstat (limited to 'configure.py')
-rwxr-xr-x | configure.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/configure.py b/configure.py index 2eacbfe..69f6075 100755 --- a/configure.py +++ b/configure.py @@ -28,7 +28,8 @@ import string import subprocess import sys -sys.path.insert(0, 'misc') +sourcedir = os.path.dirname(os.path.realpath(__file__)) +sys.path.insert(0, os.path.join(sourcedir, 'misc')) import ninja_syntax @@ -251,11 +252,11 @@ if platform.is_msvc(): objext = '.obj' def src(filename): - return os.path.join('src', filename) + return os.path.join('$sourcedir', 'src', filename) def built(filename): return os.path.join('$builddir', filename) def doc(filename): - return os.path.join('doc', filename) + return os.path.join('$sourcedir', 'doc', filename) def cc(name, **kwargs): return n.build(built(name + objext), 'cxx', src(name + '.c'), **kwargs) def cxx(name, **kwargs): @@ -267,6 +268,7 @@ def binary(name): return exe return name +n.variable('sourcedir', sourcedir) n.variable('builddir', 'build') n.variable('cxx', CXX) if platform.is_msvc(): @@ -415,10 +417,10 @@ objs = [] if platform.supports_ninja_browse(): n.comment('browse_py.h is used to inline browse.py.') n.rule('inline', - command='src/inline.sh $varname < $in > $out', + command=src('inline.sh') + ' $varname < $in > $out', description='INLINE $out') n.build(built('browse_py.h'), 'inline', src('browse.py'), - implicit='src/inline.sh', + implicit=src('inline.sh'), variables=[('varname', 'kBrowsePy')]) n.newline() @@ -591,11 +593,12 @@ n.newline() if not host.is_mingw(): n.comment('Regenerate build files if build script changes.') n.rule('configure', - command='${configure_env}%s configure.py $configure_args' % + command='${configure_env}%s $sourcedir/configure.py $configure_args' % options.with_python, generator=True) n.build('build.ninja', 'configure', - implicit=['configure.py', os.path.normpath('misc/ninja_syntax.py')]) + implicit=['$sourcedir/configure.py', + os.path.normpath('$sourcedir/misc/ninja_syntax.py')]) n.newline() n.default(ninja) |