Skip to content

Commit 7d65995

Browse files
committed
Fixup generation
1 parent bf8aca2 commit 7d65995

File tree

10 files changed

+151
-73
lines changed

10 files changed

+151
-73
lines changed

MODULE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module(
22
name = "rules_bzlmodrio_jdk",
3-
version = "0.0.0",
3+
version = "17.0.8+7",
44
compatibility_level = 2024,
55
)
66

@@ -14,7 +14,7 @@ bazel_dep(name = "rules_bzlmodrio_toolchains", version = "2024-1")
1414
REMOTE_JDK_REPOS = [
1515
"roboriojdk_linux",
1616
"roboriojdk_mac",
17-
"roboriojdk_win",
17+
"roboriojdk_windows",
1818
]
1919

2020
[use_repo(

MODULE.bazel.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generate/auto_update.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,30 @@
11
import os
22
import re
3-
from bazelrio_gentool.auto_update_utils import get_latest_tag, split_tag
3+
from bazelrio_gentool.auto_update_utils import download_url
44

55

66
def main():
7-
raise
7+
contents = download_url("https://raw.githubusercontent.com/wpilibsuite/WPILibInstaller-Avalonia/main/scripts/versions.gradle")
8+
9+
for line in contents.decode("utf-8").split("\n"):
10+
search = re.search("ext.jdkVersion = '(.*)'", line)
11+
if search:
12+
version = search[1]
13+
14+
15+
SCRIPT_DIR = os.environ["BUILD_WORKSPACE_DIRECTORY"]
16+
17+
file_to_replace = os.path.join(SCRIPT_DIR, "get_toolchain_dependencies.py")
18+
19+
with open(file_to_replace, "r") as f:
20+
contents = f.read()
21+
contents = re.sub(
22+
'( +)jdk_version = "(.*)"', f'\\1jdk_version = "{version}"', contents
23+
)
24+
25+
with open(file_to_replace, "w") as f:
26+
f.write(contents)
27+
print(version)
828

929

1030
if __name__ == "__main__":

generate/generate.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
)
1515
from bazelrio_gentool.generate_shared_files import get_bazel_dependencies
1616
from bazelrio_gentool.cli import add_generic_cli, GenericCliArgs
17+
from get_toolchain_dependencies import get_toolchain_dependencies
1718
import argparse
1819
import os
1920

@@ -26,13 +27,15 @@ def main():
2627
add_generic_cli(parser)
2728
args = parser.parse_args()
2829

30+
group = get_toolchain_dependencies()
31+
2932
mandatory_dependencies = create_default_mandatory_settings(GenericCliArgs(args))
3033

31-
write_shared_root_files(REPO_DIR, dict(repo_name="rules_bzlmodrio_jdk"))
32-
write_shared_test_files(REPO_DIR, dict())
34+
write_shared_root_files(REPO_DIR, group)
35+
write_shared_test_files(REPO_DIR, group)
3336

3437
template_files = [
35-
# "templates/maven_deps.bzl",
38+
"maven_deps.bzl",
3639
"WORKSPACE",
3740
"MODULE.bazel",
3841
"tests/WORKSPACE",
@@ -45,6 +48,7 @@ def main():
4548
os.path.join(SCRIPT_DIR, "templates"),
4649
bazel_dependencies=get_bazel_dependencies(),
4750
mandatory_dependencies=mandatory_dependencies,
51+
group=group,
4852
)
4953

5054

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
from bazelrio_gentool.deps.sha256_helper import get_hash
2+
3+
4+
def get_toolchain_dependencies():
5+
class PlatformConfig:
6+
def __init__(self, repo_os, platforms_os, strip_prefix, suffix):
7+
self.repo_os = repo_os
8+
self.platforms_os = platforms_os
9+
self.strip_prefix = strip_prefix
10+
self.suffix = suffix
11+
12+
def get_sha256(self):
13+
return get_hash(self.get_url(), fail_on_miss=True)
14+
15+
def get_url(self):
16+
return f"https://github.com/adoptium/temurin17-binaries/releases/download/jdk-{escaped_version}/OpenJDK17U-jdk_x64_{self.repo_os}_hotspot_{underscore_version}.{self.suffix}"
17+
18+
platforms = []
19+
20+
jdk_version = "17.0.8+7"
21+
underscore_version = jdk_version.replace("+", "_")
22+
escaped_version = jdk_version.replace("+", "%2B")
23+
24+
platforms.append(
25+
PlatformConfig(
26+
repo_os="linux",
27+
platforms_os="linux",
28+
strip_prefix="jdk-" + jdk_version,
29+
suffix="tar.gz",
30+
)
31+
)
32+
platforms.append(
33+
PlatformConfig(
34+
repo_os="mac",
35+
platforms_os="macos",
36+
strip_prefix="jdk-" + jdk_version + "/Contents/Home",
37+
suffix="tar.gz",
38+
)
39+
)
40+
platforms.append(
41+
PlatformConfig(
42+
repo_os="windows",
43+
platforms_os="windows",
44+
strip_prefix="jdk-" + jdk_version,
45+
suffix="zip",
46+
)
47+
)
48+
49+
output = dict(
50+
repo_name="rules_bzlmodrio_jdk",
51+
platforms=platforms,
52+
jdk_version=jdk_version,
53+
escaped_version=escaped_version,
54+
underscore_version=underscore_version,
55+
jre_version=17,
56+
)
57+
58+
return output

generate/get_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
def main():
5-
raise
5+
print(get_toolchain_dependencies()['jdk_version'])
66

77

88
if __name__ == "__main__":

generate/templates/MODULE.bazel.jinja2

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11
module(
22
name = "rules_bzlmodrio_jdk",
3-
version = "0.0.0",
3+
version = "{{group.jdk_version}}",
44
compatibility_level = 2024,
55
)
66

77
{{bazel_dependencies.platforms.module_dep()}}
88
{{bazel_dependencies.rules_java.module_dep()}}
99

1010
deps = use_extension("//:maven_deps.bzl", "deps")
11-
use_repo(deps, "roborio_jre")
1211

1312
{{ mandatory_dependencies.rules_bzlmodrio_toolchain.module_dep() }}
1413

1514
REMOTE_JDK_REPOS = [
1615
"roboriojdk_linux",
1716
"roboriojdk_mac",
18-
"roboriojdk_win",
17+
"roboriojdk_windows",
1918
]
2019

21-
print(REMOTE_JDK_REPOS)
22-
2320
[use_repo(
2421
deps,
2522
repo,

generate/templates/maven_deps.bzl.jinja2

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
1-
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
2-
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
1+
load("@rules_java//toolchains:remote_java_repository.bzl", "remote_java_repository")
2+
33

44
def __setup_jdk_dependencies(mctx):
5-
{%- for config in group.configs %}
6-
# {{config.short_name}}
7-
{%- for platform_config in config.cpp_platform_configs %}
8-
maybe(
9-
http_archive,
10-
"bazelrio_{{config.short_name_underscore}}_toolchain_{{platform_config.os}}",
11-
url = "{{config.get_cpp_url(platform_config)}}",
12-
sha256 = "{{config.get_cpp_sha256(platform_config)}}",
13-
build_file_content = filegroup_all,
14-
{%- if platform_config.patch_toolchain %}
15-
patches = [
16-
"@bazelrio//libraries/toolchains/{{config.year}}/{{config.release_version_underscore}}/patches:libc_no_sandboxfs.patch",
17-
"@bazelrio//libraries/toolchains/{{config.year}}/{{config.release_version_underscore}}/patches:libpthread_no_sandboxfs.patch",
5+
{%- for platform in group.platforms %}
6+
remote_java_repository(
7+
name = "roboriojdk_{{platform.repo_os}}",
8+
prefix = "roboriojdk",
9+
version = "{{group.jre_version}}",
10+
target_compatible_with = [
11+
"@platforms//os:{{platform.platforms_os}}",
1812
],
19-
{%- endif %}
13+
sha256 = "{{platform.get_sha256()}}",
14+
urls = ["{{platform.get_url()}}"],
15+
strip_prefix = "{{platform.strip_prefix}}",
2016
)
21-
{%- endfor %}
22-
{%- endfor %}
17+
{% endfor %}
2318

2419
def setup_legacy_setup_jdk_dependencies():
2520
__setup_jdk_dependencies(None)
2621

22+
REMOTE_JDK_REPOS = ["roboriojdk_linux", "roboriojdk_mac", "roboriojdk_win"]
23+
[native.register_toolchains("@" + name + "_toolchain_config_repo//:all") for name in REMOTE_JDK_REPOS]
24+
25+
2726
deps = module_extension(
2827
__setup_jdk_dependencies,
2928
)

maven_deps.bzl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ def __setup_jdk_dependencies(mctx):
88
target_compatible_with = [
99
"@platforms//os:linux",
1010
],
11-
urls = ["https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_linux_hotspot_17.0.4.1_1.tar.gz"],
12-
sha256 = "5fbf8b62c44f10be2efab97c5f5dbf15b74fae31e451ec10abbc74e54a04ff44",
13-
strip_prefix = "jdk-17.0.4.1+1",
11+
sha256 = "aa5fc7d388fe544e5d85902e68399d5299e931f9b280d358a3cbee218d6017b0",
12+
urls = ["https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.8_7.tar.gz"],
13+
strip_prefix = "jdk-17.0.8+7",
1414
)
1515

1616
remote_java_repository(
@@ -20,21 +20,21 @@ def __setup_jdk_dependencies(mctx):
2020
target_compatible_with = [
2121
"@platforms//os:macos",
2222
],
23-
urls = ["https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_mac_hotspot_17.0.4.1_1.tar.gz"],
24-
sha256 = "ac21a5a87f7cfa00212ab7c41f7eb80ca33640d83b63ad850be811c24095d61a",
25-
strip_prefix = "jdk-17.0.4.1+1/Contents/Home",
23+
sha256 = "6fea89cea64a0f56ecb9e5d746b4921d2b0a80aa65c92b265ee9db52b44f4d93",
24+
urls = ["https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8%2B7/OpenJDK17U-jdk_x64_mac_hotspot_17.0.8_7.tar.gz"],
25+
strip_prefix = "jdk-17.0.8+7/Contents/Home",
2626
)
2727

2828
remote_java_repository(
29-
name = "roboriojdk_win",
29+
name = "roboriojdk_windows",
3030
prefix = "roboriojdk",
3131
version = "17",
3232
target_compatible_with = [
3333
"@platforms//os:windows",
3434
],
35-
urls = ["https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_windows_hotspot_17.0.4.1_1.zip"],
36-
sha256 = "3860d2ed7405674baeb0f9f4c71377421716759fe4301e92bdd4dd43c0442dc3",
37-
strip_prefix = "jdk-17.0.4.1+1",
35+
sha256 = "341a7243778802019a100ba7ae32a05a3f4ae5fd64dbf2a970d02f07c7d1c804",
36+
urls = ["https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8%2B7/OpenJDK17U-jdk_x64_windows_hotspot_17.0.8_7.zip"],
37+
strip_prefix = "jdk-17.0.8+7",
3838
)
3939

4040
def setup_legacy_setup_jdk_dependencies():

0 commit comments

Comments
 (0)