diff options
author | Patrick von Reth <vonreth@kde.org> | 2013-04-30 15:29:13 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2013-04-30 15:30:29 (GMT) |
commit | 4c552c2c3cbc07acce9c1a379fee054a3f680100 (patch) | |
tree | 67fdefb9a448ee01ae6a77db5aa1edc58ad3ba8a /bootstrap.py | |
parent | c0d21185113748e056c8df5dcd42a825263d4bab (diff) | |
download | Ninja-4c552c2c3cbc07acce9c1a379fee054a3f680100.zip Ninja-4c552c2c3cbc07acce9c1a379fee054a3f680100.tar.gz Ninja-4c552c2c3cbc07acce9c1a379fee054a3f680100.tar.bz2 |
share platform support between configure/bootstrap
Diffstat (limited to 'bootstrap.py')
-rwxr-xr-x | bootstrap.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/bootstrap.py b/bootstrap.py index 8feaf79..a7a8ba6 100755 --- a/bootstrap.py +++ b/bootstrap.py @@ -23,20 +23,26 @@ import errno import shlex import shutil import subprocess +import platform_helper os.chdir(os.path.dirname(os.path.abspath(__file__))) parser = OptionParser() + parser.add_option('--verbose', action='store_true', help='enable verbose build',) parser.add_option('--x64', action='store_true', help='force 64-bit build (Windows)',) # TODO: make this --platform to match configure.py. -parser.add_option('--windows', action='store_true', - help='force native Windows build', - default=sys.platform.startswith('win32')) +parser.add_option('--platform', + help='target platform (' + '/'.join(platform_helper.platforms()) + ')', + choices=platform_helper.platforms()) (options, conf_args) = parser.parse_args() + +platform = platform_helper.Platform(options.platform) +conf_args.append("--platform=" + platform.platform()) + def run(*args, **kwargs): returncode = subprocess.call(*args, **kwargs) if returncode != 0: @@ -46,7 +52,7 @@ def run(*args, **kwargs): # g++ call as well as in the later configure.py. cflags = os.environ.get('CFLAGS', '').split() ldflags = os.environ.get('LDFLAGS', '').split() -if sys.platform.startswith('freebsd'): +if platform.is_freebsd(): cflags.append('-I/usr/local/include') ldflags.append('-L/usr/local/lib') @@ -70,7 +76,7 @@ for src in glob.glob('src/*.cc'): if filename == 'browse.cc': # Depends on generated header. continue - if options.windows: + if platform.is_windows(): if src.endswith('-posix.cc'): continue else: @@ -79,10 +85,10 @@ for src in glob.glob('src/*.cc'): sources.append(src) -if options.windows: +if platform.is_windows(): sources.append('src/getopt.c') -if options.windows: +if platform.is_msvc(): cl = 'cl' vcdir = os.environ.get('VCINSTALLDIR') if vcdir: @@ -98,18 +104,17 @@ else: cflags.extend(['-Wno-deprecated', '-DNINJA_PYTHON="' + sys.executable + '"', '-DNINJA_BOOTSTRAP']) - if options.windows: + if platform.is_windows(): cflags.append('-D_WIN32_WINNT=0x0501') - conf_args.append("--platform=mingw") if options.x64: cflags.append('-m64') args.extend(cflags) args.extend(ldflags) binary = 'ninja.bootstrap' -if options.windows: +if platform.is_windows(): binary = 'ninja.bootstrap.exe' args.extend(sources) -if options.windows: +if platform.is_msvc(): args.extend(['/link', '/out:' + binary]) else: args.extend(['-o', binary]) @@ -127,7 +132,7 @@ verbose = [] if options.verbose: verbose = ['-v'] -if options.windows: +if platform.is_windows(): print('Building ninja using itself...') run([sys.executable, 'configure.py'] + conf_args) run(['./' + binary] + verbose) |