|
1 | | -{ |
2 | | - local composable = (import "common-utils.libsonnet").composable, |
| 1 | +local composable = (import "common-utils.libsonnet").composable; |
| 2 | + |
| 3 | +local mx_version = (import "graal-common.json").mx_version; |
| 4 | +local common_json = composable(import "common.json"); |
| 5 | +local repo_config = import 'repo-configuration.libsonnet'; |
| 6 | +local jdks = common_json.jdks; |
| 7 | +local deps = common_json.deps; |
| 8 | +local downloads = common_json.downloads; |
| 9 | + |
| 10 | +# Finds the first integer in a string and returns it as an integer. |
| 11 | +local find_first_integer(versionString) = |
| 12 | + local charToInt(c) = |
| 13 | + std.codepoint(c) - std.codepoint("0"); |
| 14 | + local firstNum(s, i) = |
| 15 | + assert std.length(s) > i : "No number found in string " + s; |
| 16 | + local n = charToInt(s[i]); |
| 17 | + if n >=0 && n < 10 then i else firstNum(s, i + 1); |
| 18 | + local lastNum(s, i) = |
| 19 | + if i >= std.length(s) then |
| 20 | + i |
| 21 | + else |
| 22 | + local n = charToInt(s[i]); |
| 23 | + if n < 0 || n > 9 then i else lastNum(s, i + 1); |
| 24 | + local versionIndexStart = firstNum(versionString, 0); |
| 25 | + local versionIndexEnd = lastNum(versionString, versionIndexStart); |
| 26 | + std.parseInt(versionString[versionIndexStart:versionIndexEnd]) |
| 27 | +; |
| 28 | +# jdk_version is an hidden field that can be used to generate job names |
| 29 | +local add_jdk_version(name) = |
| 30 | + local jdk = jdks[name]; |
| 31 | + // this assumes that the version is the first number in the jdk.version string |
| 32 | + local version = find_first_integer(jdk.version); |
| 33 | + // santity check that the parsed version is also included in the name |
| 34 | + assert std.length(std.findSubstr(std.toString(version), name)) == 1 : "Cannot find version %d in name %s" % [version, name]; |
| 35 | + { jdk_version:: version} |
| 36 | +; |
3 | 37 |
|
4 | | - local mx_version = (import "graal-common.json").mx_version, |
5 | | - local common_json = composable(import "common.json"), |
6 | | - local repo_config = import 'repo-configuration.libsonnet', |
7 | | - local jdks = common_json.jdks, |
8 | | - local deps = common_json.deps, |
9 | | - local downloads = common_json.downloads, |
| 38 | +{ |
10 | 39 |
|
11 | 40 | mx:: { |
12 | 41 | packages+: { |
|
74 | 103 | } |
75 | 104 | }, |
76 | 105 |
|
| 106 | +} + { |
77 | 107 | // JDK definitions |
78 | 108 | // *************** |
79 | | - # jdk_version is an hidden field that can be used to generate job names |
80 | | - local jdk11 = { jdk_version:: 11}, |
81 | | - local jdk17 = { jdk_version:: 17}, |
82 | | - local jdk19 = { jdk_version:: 19}, |
83 | | - |
84 | | - oraclejdk11:: jdk11 + { downloads+: { JAVA_HOME : jdks.oraclejdk11 }}, |
85 | | - oraclejdk17:: jdk17 + { downloads+: { JAVA_HOME : jdks.oraclejdk17 }}, |
86 | | - openjdk11:: jdk11 + { downloads+: { JAVA_HOME : jdks.openjdk11 }}, |
87 | | - |
88 | | - "labsjdk-ce-11":: jdk11 + { downloads+: { JAVA_HOME : jdks["labsjdk-ce-11"] }}, |
89 | | - "labsjdk-ee-11":: jdk11 + { downloads+: { JAVA_HOME : jdks["labsjdk-ee-11"] }}, |
90 | | - "labsjdk-ce-17":: jdk17 + { downloads+: { JAVA_HOME : jdks["labsjdk-ce-17"] }}, |
91 | | - "labsjdk-ee-17":: jdk17 + { downloads+: { JAVA_HOME : jdks["labsjdk-ee-17"] }}, |
92 | | - "labsjdk-ce-17Debug":: jdk17 + { downloads+: { JAVA_HOME : jdks["labsjdk-ce-17Debug"] }}, |
93 | | - "labsjdk-ee-17Debug":: jdk17 + { downloads+: { JAVA_HOME : jdks["labsjdk-ee-17Debug"] }}, |
94 | | - "labsjdk-ce-11-llvm":: jdk11 + { downloads+: { LLVM_JAVA_HOME : jdks["labsjdk-ce-11-llvm"] }}, |
95 | | - "labsjdk-ee-11-llvm":: jdk11 + { downloads+: { LLVM_JAVA_HOME : jdks["labsjdk-ee-11-llvm"] }}, |
96 | | - "labsjdk-ce-17-llvm":: jdk17 + { downloads+: { LLVM_JAVA_HOME : jdks["labsjdk-ce-17-llvm"] }}, |
97 | | - "labsjdk-ee-17-llvm":: jdk17 + { downloads+: { LLVM_JAVA_HOME : jdks["labsjdk-ee-17-llvm"] }}, |
98 | | - |
99 | | - "labsjdk-ce-19":: jdk19 + { downloads+: { JAVA_HOME : jdks["jdk-19-ea"] + { open: false} }}, |
100 | | - "labsjdk-ee-19":: jdk19 + { downloads+: { JAVA_HOME : jdks["jdk-19-ea"] + { open: false} }}, |
101 | | - |
| 109 | + // this adds all jdks from common.json |
| 110 | + [name]: add_jdk_version(name) + { downloads+: { [if std.endsWith(name, "llvm") then "LLVM_JAVA_HOME" else "JAVA_HOME"] : jdks[name] }}, |
| 111 | + for name in std.objectFieldsAll(jdks) |
| 112 | +} + { |
102 | 113 | # Aliases to edition specific labsjdks |
103 | 114 | labsjdk11:: self["labsjdk-" + repo_config.graalvm_edition + "-11"], |
104 | 115 | labsjdk17:: self["labsjdk-" + repo_config.graalvm_edition + "-17"], |
105 | 116 | labsjdk19:: self["labsjdk-" + repo_config.graalvm_edition + "-19"], |
106 | | - labsjdk11Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-11Debug"], |
107 | 117 | labsjdk17Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-17Debug"], |
108 | 118 | labsjdk11LLVM:: self["labsjdk-" + repo_config.graalvm_edition + "-11-llvm"], |
109 | 119 | labsjdk17LLVM:: self["labsjdk-" + repo_config.graalvm_edition + "-17-llvm"], |
|
0 commit comments