Skip to content

Commit 34c5555

Browse files
committed
replicate old script behavior when calling setup.py
1 parent 7b53623 commit 34c5555

File tree

3 files changed

+39
-27
lines changed

3 files changed

+39
-27
lines changed

scripts/_build_helper.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,25 +70,20 @@ def resolve_compilers(
7070

7171

7272
def make_cmake_args(
73-
build_type="Release",
7473
c_compiler=None,
7574
cxx_compiler=None,
7675
level_zero=True,
7776
glog=False,
78-
generator=None,
7977
verbose=False,
8078
other_opts="",
8179
):
8280
args = [
83-
f"-DCMAKE_BUILD_TYPE={build_type}",
8481
f"-DCMAKE_C_COMPILER:PATH={c_compiler}" if c_compiler else "",
8582
f"-DCMAKE_CXX_COMPILER:PATH={cxx_compiler}" if cxx_compiler else "",
8683
f"-DDPCTL_ENABLE_L0_PROGRAM_CREATION={'ON' if level_zero else 'OFF'}",
8784
f"-DDPTL_ENABLE_GLOG:BOOL={'ON' if glog else 'OFF'}",
8885
]
8986

90-
if generator:
91-
args.append(f"-G{generator}")
9287
if verbose:
9388
args.append("-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON")
9489
if other_opts:
@@ -97,9 +92,19 @@ def make_cmake_args(
9792
return " ".join(filter(None, args))
9893

9994

100-
def build_extension(setup_dir, env):
95+
def build_extension(
96+
setup_dir, env, cmake_executable=None, generator=None, build_type=None
97+
):
98+
cmd = [sys.executable, "setup.py", "build_ext", "--inplace"]
99+
if cmake_executable:
100+
cmd.append(f"--cmake-executable={cmake_executable}")
101+
if generator:
102+
cmd.append(f"--cmake-generator={generator}")
103+
if build_type:
104+
cmd.append(f"--build-type={build_type}")
105+
cmd.append("--")
101106
run(
102-
[sys.executable, "setup.py", "build_ext", "--inplace"],
107+
cmd,
103108
env=env,
104109
cwd=setup_dir,
105110
)

scripts/build_locally.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,10 @@ def main():
161161
level_zero_enabled = True
162162

163163
cmake_args = make_cmake_args(
164-
build_type=args.build_type,
165164
c_compiler=c_compiler,
166165
cxx_compiler=cxx_compiler,
167166
level_zero=level_zero_enabled,
168167
glog=args.glog,
169-
generator=args.generator,
170168
verbose=args.verbose,
171169
other_opts=args.cmake_opts,
172170
)
@@ -198,7 +196,13 @@ def main():
198196

199197
print("[build_locally] Building extensions in-place...")
200198

201-
build_extension(setup_dir, env)
199+
build_extension(
200+
setup_dir,
201+
env,
202+
cmake_executable=args.cmake_executable,
203+
generator=args.generator,
204+
build_type=args.build_type,
205+
)
202206
if not args.skip_editable:
203207
install_editable(setup_dir, env)
204208
else:

scripts/gen_coverage.py

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,16 @@ def parse_args():
7979
help="Enable Level Zero backend explicitly",
8080
)
8181

82+
p.add_argument(
83+
"--generator", type=str, default="Ninja", help="CMake generator"
84+
)
85+
p.add_argument(
86+
"--cmake-executable",
87+
type=str,
88+
default=None,
89+
help="Path to CMake executable used by build",
90+
)
91+
8292
p.add_argument(
8393
"--cmake-opts",
8494
type=str,
@@ -149,7 +159,6 @@ def main():
149159
level_zero_enabled = True
150160

151161
cmake_args = make_cmake_args(
152-
build_type="Coverage",
153162
c_compiler=c_compiler,
154163
cxx_compiler=cxx_compiler,
155164
level_zero=level_zero_enabled,
@@ -169,27 +178,21 @@ def main():
169178
warn("Ignoring pre-existing CMAKE_ARGS in environment")
170179
del env["CMAKE_ARGS"]
171180

181+
env["CMAKE_ARGS"] = cmake_args
182+
172183
if args.bin_llvm:
173-
llvm_cov = os.path.join(args.bin_llvm, "llvm-cov")
174-
llvm_profdata = os.path.join(args.bin_llvm, "llvm-profdata")
175-
env = os.environ.copy()
176-
if not (os.path.isfile(llvm_cov) and os.access(llvm_cov, os.X_OK)):
177-
err(f"Cannot find executable llvm-cov in {args.bin_llvm}")
178-
if not (
179-
os.path.isfile(llvm_profdata) and os.access(llvm_profdata, os.X_OK)
180-
):
181-
err(f"Cannot find executable llvm-profdata in {args.bin_llvm}")
182-
env["PATH"] = f"{args.bin_llvm}:{env.get('PATH', '')}"
184+
env["PATH"] = ":".join((env.get("PATH", ""), args.bin_llvm))
183185
env["LLVM_TOOLS_HOME"] = args.bin_llvm
184-
cmake_args += f" -DLLVM_TOOLS_HOME={args.bin_llvm}"
185-
cmake_args += f" -DLLVM_PROFDATA={llvm_profdata}"
186-
cmake_args += f" -DLLVM_COV={llvm_cov}"
187-
188-
env["CMAKE_ARGS"] = cmake_args
189186

190187
print(f"[gen_coverage] Using CMake args:\n {env['CMAKE_ARGS']}")
191188

192-
build_extension(setup_dir, env)
189+
build_extension(
190+
setup_dir,
191+
env,
192+
cmake_executable=args.cmake_executable,
193+
generator=args.generator,
194+
build_type="Coverage",
195+
)
193196
install_editable(setup_dir, env)
194197

195198
cmake_build_dir = (

0 commit comments

Comments
 (0)