Skip to content

Commit fd1f8eb

Browse files
committed
honor dynamic imports when using python_gvm
1 parent a051d3e commit fd1f8eb

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

mx.graalpython/mx_graalpython.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -412,8 +412,16 @@ def python_so(args):
412412
return _python_graalvm_launcher((args or []) + ["svm"])
413413

414414

415+
def _build_graalvm_launcher(mx_args):
416+
mx.logv("Building GraalVM launcher with %s" % mx_args)
417+
with set_env(LINKY_LAYOUT="*.jar"):
418+
mx.run_mx(mx_args + ["build"])
419+
420+
415421
def _python_graalvm_launcher(args, extra_dy=None):
416422
dy = "/vm,/tools"
423+
if extra_dy is None:
424+
extra_dy = ",".join(("/" + dy[0]) if dy[1] else dy[0] for dy in mx.get_dynamic_imports())
417425
if extra_dy:
418426
dy += "," + extra_dy
419427
if "sandboxed" in args:
@@ -423,11 +431,11 @@ def _python_graalvm_launcher(args, extra_dy=None):
423431
args.remove("svm")
424432
dy += ",/substratevm"
425433
dy = ["--dynamicimports", dy]
426-
mx.run_mx(dy + ["build"])
434+
_build_graalvm_launcher(dy)
427435
out = mx.OutputCapture()
428-
mx.run_mx(dy + ["graalvm-home"], out=mx.TeeOutputCapture(out))
436+
mx.run_mx(dy + ["graalvm-home"], out=out)
429437
launcher = os.path.join(out.data.strip(), "bin", "graalpython").split("\n")[-1].strip()
430-
mx.log(launcher)
438+
mx.logv(launcher)
431439
if args:
432440
mx.run([launcher] + args)
433441
return launcher

0 commit comments

Comments
 (0)