| # 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() |