11from __future__ import annotations
22
3- import enum
43import os
54import shutil
65import subprocess
@@ -132,7 +131,7 @@ async def setup_ty(
132131 ty_dir : Path ,
133132 revision_like : RevisionLike ,
134133 * ,
135- build_mode : RustBuildMode ,
134+ build_profile : str ,
136135 repo : str | None ,
137136) -> Path :
138137 ty_dir .mkdir (parents = True , exist_ok = True )
@@ -148,7 +147,7 @@ async def setup_ty(
148147
149148 try :
150149 await run (
151- ["cargo" , "build" , "--bin" , "ty" , * build_mode . flags () ],
150+ ["cargo" , "build" , "--bin" , "ty" , "--profile" , build_profile ],
152151 cwd = repo_dir ,
153152 env = env ,
154153 output = True ,
@@ -159,7 +158,9 @@ async def setup_ty(
159158 print (e .stderr , file = sys .stderr )
160159 raise e
161160
162- ty_exe = cargo_target_dir / build_mode .artifact_directory () / "ty"
161+ # Cargo uses "debug" as the directory name for the "dev" profile
162+ artifact_dir = "debug" if build_profile == "dev" else build_profile
163+ ty_exe = cargo_target_dir / artifact_dir / "ty"
163164 assert ty_exe .exists ()
164165 return ty_exe
165166
@@ -168,7 +169,7 @@ async def setup_pyrefly(
168169 pyrefly_dir : Path ,
169170 revision_like : RevisionLike ,
170171 * ,
171- build_mode : RustBuildMode ,
172+ build_profile : str ,
172173 repo : str | None ,
173174 typeshed_dir : Path | None ,
174175) -> Path :
@@ -187,7 +188,7 @@ async def setup_pyrefly(
187188 if not os .environ .get ("MYPY_PRIMER_NO_REBUILD" , False ):
188189 try :
189190 await run (
190- ["cargo" , "build" , * build_mode . flags () ],
191+ ["cargo" , "build" , "--profile" , build_profile ],
191192 cwd = repo_dir / "pyrefly" ,
192193 env = env ,
193194 output = True ,
@@ -198,7 +199,9 @@ async def setup_pyrefly(
198199 print (e .stderr , file = sys .stderr )
199200 raise e
200201
201- pyrefly_exe = repo_dir / "target" / build_mode .artifact_directory () / "pyrefly"
202+ # Cargo uses "debug" as the directory name for the "dev" profile
203+ artifact_dir = "debug" if build_profile == "dev" else build_profile
204+ pyrefly_exe = repo_dir / "target" / artifact_dir / "pyrefly"
202205 assert pyrefly_exe .exists ()
203206 return pyrefly_exe
204207
@@ -208,20 +211,3 @@ async def setup_typeshed(parent_dir: Path, *, repo: str, revision_like: Revision
208211 shutil .rmtree (parent_dir )
209212 parent_dir .mkdir (exist_ok = True )
210213 return await ensure_repo_at_revision (repo , parent_dir , revision_like )
211-
212-
213- class RustBuildMode (enum .Enum ):
214- RELEASE = "release"
215- DEBUG = "debug"
216-
217- def flags (self ) -> list [str ]:
218- if self == RustBuildMode .RELEASE :
219- return ["--release" ]
220- else :
221- return []
222-
223- def artifact_directory (self ) -> Path :
224- if self == RustBuildMode .RELEASE :
225- return Path ("release" )
226- else :
227- return Path ("debug" )
0 commit comments