diff options
author | Scott Graham <sgraham@gmail.com> | 2012-01-04 22:18:17 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2012-01-04 22:18:39 (GMT) |
commit | f4df3f731a732a11861145b310cbd252c52e8cfe (patch) | |
tree | a05863addb5f30c7f78104c4f3c78339b81df30b /bootstrap.py | |
parent | 4a09acf125285fd773f2df0f00b2783aaa9f2f6f (diff) | |
download | Ninja-f4df3f731a732a11861145b310cbd252c52e8cfe.zip Ninja-f4df3f731a732a11861145b310cbd252c52e8cfe.tar.gz Ninja-f4df3f731a732a11861145b310cbd252c52e8cfe.tar.bz2 |
windows: more build fixes
Diffstat (limited to 'bootstrap.py')
-rwxr-xr-x | bootstrap.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/bootstrap.py b/bootstrap.py index 4d2b4be..6a7d876 100755 --- a/bootstrap.py +++ b/bootstrap.py @@ -43,8 +43,9 @@ except OSError, e: with open('src/browse.py') as browse_py: with open('build/browse_py.h', 'w') as browse_py_h: - run(['./src/inline.sh', 'kBrowsePy'], - stdin=browse_py, stdout=browse_py_h) + hex_str = ''.join([hex(ord(c)) for c in browse_py.read()]) + src = "const char %s[]=\"\n%s\n\";" % ('kBrowsePy', hex_str) + browse_py_h.write(src) sources = [] for src in glob.glob('src/*.cc'): @@ -52,7 +53,7 @@ for src in glob.glob('src/*.cc'): continue if sys.platform.startswith('win32'): - if src.endswith('/browse.cc') or src.endswith('/subprocess.cc'): + if src.endswith('\\browse.cc') or src.endswith('\\subprocess.cc'): continue else: if src.endswith('-win32.cc'): @@ -60,15 +61,25 @@ for src in glob.glob('src/*.cc'): sources.append(src) -args = [os.environ.get('CXX', 'g++'), '-Wno-deprecated', - '-DNINJA_PYTHON="' + sys.executable + '"'] +if sys.platform.startswith('win32'): + sources.append('src/getopt.c') + +vcdir = os.environ.get('VCINSTALLDIR') +if vcdir: + args = [os.path.join(vcdir, 'bin', 'cl.exe'), '/nologo', '/EHsc', '/DWIN32'] +else: + args = [os.environ.get('CXX', 'g++'), '-Wno-deprecated', + '-DNINJA_PYTHON="' + sys.executable + '"'] args.extend(cflags) args.extend(ldflags) binary = 'ninja.bootstrap' if sys.platform.startswith('win32'): binary = 'ninja.bootstrap.exe' -args.extend(['-o', binary]) args.extend(sources) +if vcdir: + args.extend(['/link', '/out:' + binary]) +else: + args.extend(['-o', binary]) run(args) print 'Building ninja using itself...' |