1
0
Fork 0

added dryrun flag

This commit is contained in:
Christian Kühnel 2020-03-30 16:01:30 +02:00
parent 0e84fd14bb
commit 0a7b6daabf

View file

@ -108,17 +108,19 @@ def _create_args(config: Configuration, llvm_enable_projects: str) -> List[str]:
return arguments return arguments
def run_cmake(projects: str, repo_path: str, config_file_path: str = None): def run_cmake(projects: str, repo_path: str, config_file_path: str = None, *, dryrun: bool = False):
"""Use cmake to configure the project. """Use cmake to configure the project.
This version works on all operating systems. This version works on all operating systems.
""" """
print(dryrun)
if config_file_path is None: if config_file_path is None:
script_dir = os.path.dirname(__file__) script_dir = os.path.dirname(__file__)
config_file_path = os.path.join(script_dir, 'run_cmake_config.yaml') config_file_path = os.path.join(script_dir, 'run_cmake_config.yaml')
config = Configuration(config_file_path) config = Configuration(config_file_path)
build_dir = os.path.abspath(os.path.join(repo_path, 'build')) build_dir = os.path.abspath(os.path.join(repo_path, 'build'))
if not dryrun:
if os.path.exists(build_dir): if os.path.exists(build_dir):
shutil.rmtree(build_dir) shutil.rmtree(build_dir)
os.makedirs(build_dir) os.makedirs(build_dir)
@ -135,8 +137,10 @@ def run_cmake(projects: str, repo_path: str, config_file_path: str = None):
cmd = r'"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && ' + cmd cmd = r'"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && ' + cmd
print('Running cmake with these arguments:\n{}'.format(cmd)) print('Running cmake with these arguments:\n{}'.format(cmd))
if dryrun:
print('Dryrun, not invoking CMake!')
else:
subprocess.check_call(cmd, env=env, shell=True, cwd=build_dir) subprocess.check_call(cmd, env=env, shell=True, cwd=build_dir)
_link_compile_commands(config, repo_path, build_dir) _link_compile_commands(config, repo_path, build_dir)
@ -155,5 +159,6 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Run CMake for LLVM.') parser = argparse.ArgumentParser(description='Run CMake for LLVM.')
parser.add_argument('projects', type=str, nargs='?', default='default') parser.add_argument('projects', type=str, nargs='?', default='default')
parser.add_argument('repo_path', type=str, nargs='?', default=os.getcwd()) parser.add_argument('repo_path', type=str, nargs='?', default=os.getcwd())
parser.add_argument('--dryrun', action='store_true')
args = parser.parse_args() args = parser.parse_args()
run_cmake(args.projects, args.repo_path) run_cmake(args.projects, args.repo_path, dryrun=args.dryrun)