mirror of
https://github.com/TinyTapeout/tt-support-tools.git
synced 2026-11-03 04:36:09 +01:00
+14
-4
@@ -508,7 +508,7 @@ class Project:
|
|||||||
shutil.copyfile("golden_config.json", os.path.join(self.src_dir, "config.json"))
|
shutil.copyfile("golden_config.json", os.path.join(self.src_dir, "config.json"))
|
||||||
self.harden()
|
self.harden()
|
||||||
|
|
||||||
def harden(self):
|
def harden(self, no_docker: bool = False):
|
||||||
cwd = os.getcwd()
|
cwd = os.getcwd()
|
||||||
os.chdir(self.local_dir)
|
os.chdir(self.local_dir)
|
||||||
|
|
||||||
@@ -523,7 +523,12 @@ class Project:
|
|||||||
arg_progress = "--hide-progress-bar" if "CI" in os.environ else ""
|
arg_progress = "--hide-progress-bar" if "CI" in os.environ else ""
|
||||||
arg_pdk_root = '--pdk-root "$PDK_ROOT"' if "PDK_ROOT" in os.environ else ""
|
arg_pdk_root = '--pdk-root "$PDK_ROOT"' if "PDK_ROOT" in os.environ else ""
|
||||||
arg_pdk = self.tech.librelane_pdk_args
|
arg_pdk = self.tech.librelane_pdk_args
|
||||||
harden_cmd = f"python -m librelane {arg_pdk_root} --docker-no-tty --dockerized {arg_pdk_root} {arg_pdk} --run-tag wokwi --force-run-dir runs/wokwi {arg_progress} src/config_merged.json"
|
|
||||||
|
# Nix/No-Docker support: Conditionally include docker flags
|
||||||
|
arg_docker = "" if no_docker else f"{arg_pdk_root} --docker-no-tty --dockerized"
|
||||||
|
|
||||||
|
harden_cmd = f"python -m librelane {arg_docker} {arg_pdk_root} {arg_pdk} --run-tag wokwi --force-run-dir runs/wokwi {arg_progress} src/config_merged.json"
|
||||||
|
|
||||||
env = os.environ.copy()
|
env = os.environ.copy()
|
||||||
logging.debug(harden_cmd)
|
logging.debug(harden_cmd)
|
||||||
p = subprocess.run(harden_cmd, shell=True, env=env)
|
p = subprocess.run(harden_cmd, shell=True, env=env)
|
||||||
@@ -610,9 +615,14 @@ class Project:
|
|||||||
os.path.join(stats_dir, "synthesis-stats.txt"),
|
os.path.join(stats_dir, "synthesis-stats.txt"),
|
||||||
)
|
)
|
||||||
|
|
||||||
def run_custom_librelane_flow(self, flow_name: str):
|
def run_custom_librelane_flow(self, flow_name: str, no_docker: bool = False):
|
||||||
logging.info(f"Running {flow_name} for {self}")
|
logging.info(f"Running {flow_name} for {self}")
|
||||||
ll_cmd = f"python -m librelane --docker-no-tty --dockerized {self.tech.librelane_pdk_args} --run-tag wokwi --force-run-dir {self.local_dir}/runs/wokwi {self.local_dir}/src/config_merged.json --flow {flow_name}"
|
|
||||||
|
# Nix/No-Docker support: Conditionally include docker flags
|
||||||
|
arg_docker = "" if no_docker else "--docker-no-tty --dockerized"
|
||||||
|
|
||||||
|
ll_cmd = f"python -m librelane {arg_docker} {self.tech.librelane_pdk_args} --run-tag wokwi --force-run-dir {self.local_dir}/runs/wokwi {self.local_dir}/src/config_merged.json --flow {flow_name}"
|
||||||
|
|
||||||
logging.debug(ll_cmd)
|
logging.debug(ll_cmd)
|
||||||
p = subprocess.run(ll_cmd, shell=True)
|
p = subprocess.run(ll_cmd, shell=True)
|
||||||
if p.returncode != 0:
|
if p.returncode != 0:
|
||||||
|
|||||||
+9
-3
@@ -106,6 +106,12 @@ if __name__ == "__main__":
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Hardening and submission
|
# Hardening and submission
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-docker",
|
||||||
|
help="Do not use Docker for LibreLane commands",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--create-user-config",
|
"--create-user-config",
|
||||||
help="create the user_config.json file with top module and source files",
|
help="create the user_config.json file with top module and source files",
|
||||||
@@ -203,16 +209,16 @@ if __name__ == "__main__":
|
|||||||
project.create_user_config()
|
project.create_user_config()
|
||||||
|
|
||||||
if args.harden:
|
if args.harden:
|
||||||
project.harden()
|
project.harden(no_docker=args.no_docker)
|
||||||
|
|
||||||
if args.create_tt_submission:
|
if args.create_tt_submission:
|
||||||
project.create_tt_submission()
|
project.create_tt_submission()
|
||||||
|
|
||||||
if args.open_in_klayout:
|
if args.open_in_klayout:
|
||||||
project.run_custom_librelane_flow("OpenInKLayout")
|
project.run_custom_librelane_flow("OpenInKLayout", no_docker=args.no_docker)
|
||||||
|
|
||||||
if args.open_in_openroad:
|
if args.open_in_openroad:
|
||||||
project.run_custom_librelane_flow("OpenInOpenROAD")
|
project.run_custom_librelane_flow("OpenInOpenROAD", no_docker=args.no_docker)
|
||||||
|
|
||||||
if args.create_pdf:
|
if args.create_pdf:
|
||||||
project.create_project_datasheet(args.template_version)
|
project.create_project_datasheet(args.template_version)
|
||||||
|
|||||||
Reference in New Issue
Block a user