| # Copyright 2021 The IREE Authors | |
| # | |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| # See https://llvm.org/LICENSE.txt for license information. | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| import argparse | |
| import os | |
| import pathlib | |
| import subprocess | |
| import sys | |
| def run(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| "--runtime_only", | |
| help=( | |
| "Only check the initialization of the submodules for the" | |
| "runtime-dependent submodules. Default: False" | |
| ), | |
| action="store_true", | |
| default=False, | |
| ) | |
| args = parser.parse_args() | |
| # No-op if we're not in a git repository. | |
| try: | |
| subprocess.check_call( | |
| ["git", "rev-parse", "--is-inside-work-tree"], | |
| stdout=subprocess.DEVNULL, | |
| stderr=subprocess.DEVNULL, | |
| ) | |
| except: | |
| return | |
| output = os.popen("git submodule status") | |
| submodules = output.readlines() | |
| runtime_submodules = ( | |
| pathlib.Path(__file__) | |
| .with_name("runtime_submodules.txt") | |
| .read_text() | |
| .split("\n") | |
| ) | |
| for submodule in submodules: | |
| prefix = submodule.strip()[0] | |
| name = submodule.split()[1] | |
| if prefix == "-" and (not args.runtime_only or name in runtime_submodules): | |
| print( | |
| "The git submodule '%s' is not initialized. Please run `git submodule update --init`" | |
| % (name) | |
| ) | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| run() |