#!/usr/bin/env python3 # This Source Code Form is subject to the terms of the Mozilla Public License, # v. 2.0. If a copy of the MPL was not distributed with this file, You can # obtain one at https://mozilla.org/MPL/2.0/. import argparse import subprocess def main() -> None: parser = argparse.ArgumentParser( description="Configure a Zephyr CMake build", ) parser.add_argument("-S", "--source-tree", required=True) parser.add_argument("-B", "--build-tree", required=True) parser.add_argument("-b", "--board", required=True) parser.add_argument("-z", "--zephyr-base", required=True) parser.add_argument("-m", "--zephyr-modules", required=False) parser.add_argument("-c", "--extra-config", required=False) parser.add_argument("-k", "--signing-key", required=False) parser.add_argument("--prefix", required=False) parser.add_argument("--libdir", required=False) parser.add_argument("--bindir", required=False) args = parser.parse_args() command = [ "cmake", f"-S{args.source_tree}", f"-B{args.build_tree}", f"-DBOARD={args.board}", f"-DZEPHYR_BASE={args.zephyr_base}", ] if args.zephyr_modules is not None: command.append(f"-DZEPHYR_MODULES={args.zephyr_modules}") if args.extra_config is not None: command.append(f"-DEXTRA_CONF_FILE={args.extra_config}") if args.signing_key is not None: command.append(f"-DCONFIG_BOOT_SIGNATURE_KEY_FILE=\"{args.signing_key}\"") subprocess.run(command, shell=False, check=True) if __name__ == "__main__": main()