39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
|
#!/usr/bin/env python3
|
||
|
# Copyright 2020 Google LLC
|
||
|
#
|
||
|
# Licensed under the the Apache License v2.0 with LLVM Exceptions (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# https://llvm.org/LICENSE.txt
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
import argparse
|
||
|
import os
|
||
|
import platform
|
||
|
import subprocess
|
||
|
|
||
|
def run_ninja(target: str, repo_path: str):
|
||
|
build_dir = os.path.join(repo_path, 'build')
|
||
|
cmd = 'ninja {}'.format(target)
|
||
|
|
||
|
# On Windows: configure Visutal Studio before running ninja
|
||
|
if platform.system() == 'Windows':
|
||
|
# FIXME: move this path to a config file
|
||
|
cmd = r'"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && ' + cmd
|
||
|
|
||
|
subprocess.check_call(cmd, shell=True, cwd=build_dir)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
parser = argparse.ArgumentParser(description='Run ninja for LLVM.')
|
||
|
parser.add_argument('target')
|
||
|
parser.add_argument('repo_path', type=str, nargs='?', default=os.getcwd())
|
||
|
args = parser.parse_args()
|
||
|
run_ninja(args.target, args.repo_path)
|