diff --git a/c/protocan-transport/tools/build_host.py b/c/protocan-transport/tools/build_host.py index 8281bdb..bf043ac 100644 --- a/c/protocan-transport/tools/build_host.py +++ b/c/protocan-transport/tools/build_host.py @@ -51,9 +51,11 @@ def _build_msvc(output: Path, build_dir: Path) -> None: command = ( f'call "{vcvars}" && cl /nologo /W4 /std:c11 ' f'/DPCAN_ABI_BUILD_DLL /I"{INCLUDE}" /LD {quoted_sources} ' - f'/Fe:"{output}"' + f'/Fe"{output}"' ) - subprocess.run(["cmd.exe", "/d", "/c", command], cwd=build_dir, check=True) + # shell=True is intentional on Windows: ``call`` must run the batch file + # in the same cmd.exe process that subsequently launches cl.exe. + subprocess.run(command, cwd=build_dir, check=True, shell=True) def _build_cc(output: Path, build_dir: Path) -> None: