Skip to content

Commit 5553e7e

Browse files
committed
fix: replace process on UNIX
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 180e693 commit 5553e7e

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/cmake/__init__.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,19 @@ def __dir__() -> list[str]:
4646
def _program(name: str, args: Iterable[str]) -> int:
4747
return subprocess.call([os.path.join(CMAKE_BIN_DIR, name), *args], close_fds=False)
4848

49+
def _program_exit(name: str, *args: str) -> NoReturn:
50+
if sys.platform.startswith("win"):
51+
raise SystemExit(_program(name, args))
52+
os.execl(os.path.join(CMAKE_BIN_DIR, name), name, *args)
53+
4954

5055
def cmake() -> NoReturn:
51-
raise SystemExit(_program('cmake', sys.argv[1:]))
56+
_program_exit('cmake', *sys.argv[1:])
5257

5358

5459
def cpack() -> NoReturn:
55-
raise SystemExit(_program('cpack', sys.argv[1:]))
60+
_program_exit('cpack', *sys.argv[1:])
5661

5762

5863
def ctest() -> NoReturn:
59-
raise SystemExit(_program('ctest', sys.argv[1:]))
64+
_program_exit('ctest', *sys.argv[1:])

0 commit comments

Comments
 (0)