@@ -476,14 +476,14 @@ def _espresso_input_jdk():
476
476
def get_java_home_dep ():
477
477
global _java_home_dep
478
478
if _java_home_dep is None :
479
- _java_home_dep = JavaHomeDependency (_suite , "JAVA_HOME " , _espresso_input_jdk ().home )
479
+ _java_home_dep = JavaHomeDependency (_suite , "ESPRESSO_JAVA_HOME " , _espresso_input_jdk ().home )
480
480
return _java_home_dep
481
481
482
482
483
483
def get_llvm_java_home_dep ():
484
484
global _llvm_java_home_dep
485
485
if _llvm_java_home_dep is None and jvm_standalone_with_llvm ():
486
- _llvm_java_home_dep = JavaHomeDependency (_suite , "LLVM_JAVA_HOME " , espresso_llvm_java_home )
486
+ _llvm_java_home_dep = JavaHomeDependency (_suite , "ESPRESSO_LLVM_JAVA_HOME " , espresso_llvm_java_home )
487
487
return _llvm_java_home_dep
488
488
489
489
def jvm_standalone_with_llvm ():
@@ -527,8 +527,8 @@ def mx_register_dynamic_suite_constituents(register_project, register_distributi
527
527
register_distribution (llvm_java_home_dep )
528
528
register_distribution (mx .LayoutTARDistribution (_suite , 'ESPRESSO_LLVM_SUPPORT' , [], {
529
529
"lib/llvm/default/" : [
530
- f"dependency:LLVM_JAVA_HOME /{ jdk_lib_dir } /{ lib_prefix } *{ lib_suffix } " ,
531
- "dependency:LLVM_JAVA_HOME /release"
530
+ f"dependency:ESPRESSO_LLVM_JAVA_HOME /{ jdk_lib_dir } /{ lib_prefix } *{ lib_suffix } " ,
531
+ "dependency:ESPRESSO_LLVM_JAVA_HOME /release"
532
532
],
533
533
}, None , True , None ))
534
534
register_distribution (mx .LayoutDirDistribution (_suite , 'ESPRESSO_STANDALONE_LLVM_HOME' , [], {
@@ -580,23 +580,56 @@ def mx_register_dynamic_suite_constituents(register_project, register_distributi
580
580
enterprise_dist_name = f'GRAALVM_ESPRESSO_JAVA{ java_home_dep .major_version } { dist_suffix } ' ))
581
581
582
582
583
- def espresso_resources_suite ():
583
+ def espresso_resources_suite (java_home_dep = None ):
584
584
# Espresso resources are in the CE/EE suite depending on espresso java home type
585
585
# or in espresso if there is no EE suite
586
- java_home_dep = get_java_home_dep ()
586
+ java_home_dep = java_home_dep or get_java_home_dep ()
587
587
if java_home_dep .is_ee_implementor and mx .suite ('espresso-tests' , fatalIfMissing = False ):
588
588
return 'espresso-tests'
589
589
else :
590
590
return 'espresso'
591
591
592
592
593
593
def register_espresso_runtime_resources (register_project , register_distribution , suite ):
594
- java_home_dep = get_java_home_dep ()
595
- llvm_java_home_dep = get_llvm_java_home_dep ()
596
- is_ee_suite = suite != _suite
597
594
if espresso_resources_suite () != suite .name :
598
595
return
596
+ register_espresso_runtime_resource (get_java_home_dep (), get_llvm_java_home_dep (), register_project , register_distribution , suite , True )
597
+ extra_java_homes = mx .get_env ('EXTRA_ESPRESSO_JAVA_HOMES' )
598
+ if extra_java_homes :
599
+ extra_java_homes = extra_java_homes .split (os .pathsep )
600
+ else :
601
+ extra_java_homes = []
602
+ extra_llvm_java_homes = mx .get_env ('EXTRA_ESPRESSO_LLVM_JAVA_HOMES' )
603
+ if extra_llvm_java_homes :
604
+ extra_llvm_java_homes = extra_llvm_java_homes .split (os .pathsep )
605
+ else :
606
+ extra_llvm_java_homes = []
607
+ if extra_llvm_java_homes :
608
+ if len (extra_llvm_java_homes ) != len (extra_java_homes ):
609
+ raise mx .abort ("EXTRA_ESPRESSO_LLVM_JAVA_HOMES must either be empty or contain as many elements as EXTRA_ESPRESSO_JAVA_HOMES" )
610
+ else :
611
+ extra_llvm_java_homes = [None ] * len (extra_java_homes )
612
+
613
+ versions = {get_java_home_dep ().major_version }
614
+ for extra_java_home , extra_llvm_java_home in zip (extra_java_homes , extra_llvm_java_homes ):
615
+ extra_java_home_dep = JavaHomeDependency (suite , "ESPRESSO_JAVA_HOME_<version>" , extra_java_home )
616
+ if extra_java_home_dep .major_version in versions :
617
+ raise mx .abort ("Each entry in EXTRA_ESPRESSO_JAVA_HOMES should have a different java version, and they should all be different from ESPRESSO_JAVA_HOME's version" )
618
+ versions .add (extra_java_home_dep .major_version )
619
+ if extra_llvm_java_home :
620
+ extra_llvm_java_home_dep = JavaHomeDependency (suite , "ESPRESSO_LLVM_JAVA_HOME_<version>" , extra_llvm_java_home )
621
+ else :
622
+ extra_llvm_java_home_dep = None
623
+ if espresso_resources_suite (extra_java_home_dep ) != suite .name :
624
+ continue
625
+ register_distribution (extra_java_home_dep )
626
+ if extra_llvm_java_home_dep :
627
+ register_distribution (extra_llvm_java_home_dep )
628
+ register_espresso_runtime_resource (extra_java_home_dep , extra_llvm_java_home_dep , register_project , register_distribution , suite , False )
629
+
599
630
631
+ def register_espresso_runtime_resource (java_home_dep , llvm_java_home_dep , register_project , register_distribution , suite , is_main ):
632
+ is_ee_suite = suite != _suite
600
633
if llvm_java_home_dep :
601
634
lib_prefix = mx .add_lib_prefix ('' )
602
635
lib_suffix = mx .add_lib_suffix ('' )
@@ -624,7 +657,7 @@ def register_espresso_runtime_resources(register_project, register_distribution,
624
657
raise mx .abort ("The implementors for ESPRESSO's JAVA_HOME and LLVM JAVA_HOME don't match" )
625
658
llvm_runtime_dir = {
626
659
"source_type" : "dependency" ,
627
- "dependency" : "espresso:LLVM_JAVA_HOME" ,
660
+ "dependency" : llvm_java_home_dep . qualifiedName () ,
628
661
"path" : f"{ jdk_lib_dir } /<lib:*>" ,
629
662
}
630
663
else :
@@ -643,16 +676,17 @@ def register_espresso_runtime_resources(register_project, register_distribution,
643
676
"man" ,
644
677
]
645
678
if java_home_dep .is_ee_implementor :
646
- espresso_runtime_resource_name = "jdk" + str ( java_home_dep .major_version )
679
+ espresso_runtime_resource_name = f "jdk{ java_home_dep .major_version } "
647
680
else :
648
- espresso_runtime_resource_name = "openjdk" + str (java_home_dep .major_version )
681
+ espresso_runtime_resource_name = f"openjdk{ java_home_dep .major_version } "
682
+ runtime_dir_dist_name = f"ESPRESSO_RUNTIME_DIR_{ java_home_dep .major_version } "
649
683
register_distribution (mx .LayoutDirDistribution (
650
- suite , "ESPRESSO_RUNTIME_DIR" ,
684
+ suite , runtime_dir_dist_name ,
651
685
deps = [],
652
686
layout = {
653
687
f"META-INF/resources/java/espresso-runtime-{ espresso_runtime_resource_name } /<os>/<arch>/" : {
654
688
"source_type" : "dependency" ,
655
- "dependency" : "espresso:JAVA_HOME" ,
689
+ "dependency" : java_home_dep . qualifiedName () ,
656
690
"path" : "*" ,
657
691
"exclude" : [
658
692
"include" ,
@@ -679,18 +713,23 @@ def register_espresso_runtime_resources(register_project, register_distribution,
679
713
hashEntry = f"META-INF/resources/java/espresso-runtime-{ espresso_runtime_resource_name } /<os>/<arch>/sha256" ,
680
714
fileListEntry = f"META-INF/resources/java/espresso-runtime-{ espresso_runtime_resource_name } /<os>/<arch>/files" ,
681
715
maven = False ))
716
+ runtime_resources_project_name = f'com.oracle.truffle.espresso.resources.runtime.{ espresso_runtime_resource_name } '
682
717
if register_project :
683
718
# com.oracle.truffle.espresso.resources.runtime
684
- register_project (EspressoRuntimeResourceProject (suite , 'src' , espresso_runtime_resource_name , suite .defaultLicense ))
719
+ register_project (EspressoRuntimeResourceProject (suite , runtime_resources_project_name , 'src' , espresso_runtime_resource_name , suite .defaultLicense ))
685
720
721
+ if is_main :
722
+ runtime_resources_dist_name = "ESPRESSO_RUNTIME_RESOURCES"
723
+ else :
724
+ runtime_resources_dist_name = f"ESPRESSO_RUNTIME_RESOURCES_{ java_home_dep .major_version } "
686
725
register_distribution (mx_jardistribution .JARDistribution (
687
- suite , "ESPRESSO_RUNTIME_RESOURCES" , None , None , None ,
726
+ suite , runtime_resources_dist_name , None , None , None ,
688
727
moduleInfo = {
689
- "name" : "org.graalvm.espresso.resources.runtime" ,
728
+ "name" : f "org.graalvm.espresso.resources.runtime. { espresso_runtime_resource_name } " ,
690
729
},
691
730
deps = [
692
- "com.oracle.truffle.espresso.resources.runtime" ,
693
- "ESPRESSO_RUNTIME_DIR" ,
731
+ runtime_resources_project_name ,
732
+ runtime_dir_dist_name ,
694
733
],
695
734
mainClass = None ,
696
735
excludedLibs = [],
@@ -709,8 +748,7 @@ def register_espresso_runtime_resources(register_project, register_distribution,
709
748
710
749
711
750
class EspressoRuntimeResourceProject (mx .JavaProject ):
712
- def __init__ (self , suite , subDir , runtime_name , theLicense ):
713
- name = f'com.oracle.truffle.espresso.resources.runtime'
751
+ def __init__ (self , suite , name , subDir , runtime_name , theLicense ):
714
752
project_dir = join (suite .dir , subDir , name )
715
753
deps = ['truffle:TRUFFLE_API' ]
716
754
super ().__init__ (suite , name , subDir = subDir , srcDirs = [], deps = deps ,
0 commit comments