You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/core/tools/make_cmakelists.py

60 lines
1.2 KiB

import argparse
def gen(sources, dirs, defs):
target = "CMakeLists.txt"
with open(target, 'w') as f:
f.write("cmake_minimum_required(VERSION 3.20)\n")
f.write("project(core)\n")
f.write("\n")
f.write("set(CMAKE_CXX_STANDARD 14)\n")
f.write("\n")
f.write("\n")
f.write("add_definitions(\n")
for d in defs:
f.write(f' -D{d}\n')
f.write(")\n")
f.write("\n")
f.write("\n")
for d in dirs:
f.write(f'include_directories({d})\n')
f.write("\n")
f.write("\n")
f.write("add_executable(core\n")
for s in sources:
f.write(f' {s}\n')
f.write(")\n")
f.write("\n")
if __name__ == "__main__":
CLI = argparse.ArgumentParser()
CLI.add_argument(
"--sources",
nargs="*",
type=str,
default=[],
)
CLI.add_argument(
"--dirs",
nargs="*",
type=str,
default=[],
)
CLI.add_argument(
"--defs",
nargs="*",
type=str,
default=[],
)
args = CLI.parse_args()
gen(args.sources, args.dirs, args.defs)