Skip to content

Commit 5e15090

Browse files
authored
Add system core compiler option (#21)
* Try to get systemcore up * Fixup * Add build * Bump version
1 parent 3eca977 commit 5e15090

File tree

13 files changed

+225
-31
lines changed

13 files changed

+225
-31
lines changed

.bazelrc

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,44 +8,48 @@ import .bazelrc-buildbuddy
88
build --test_env=LD_LIBRARY_PATH=.
99
build --test_env=DYLD_LIBRARY_PATH=.
1010

11-
# Roborio
11+
# roborio
1212
build:roborio --platforms=@rules_bzlmodrio_toolchains//platforms/roborio
1313
build:roborio --build_tag_filters=-no-roborio
1414
build:roborio --platform_suffix=roborio
1515

16+
# systemcore
17+
build:systemcore --platforms=@rules_bzlmodrio_toolchains//platforms/systemcore
18+
build:systemcore --build_tag_filters=-no-systemcore
19+
build:systemcore --platform_suffix=systemcore
20+
1621
# bullseye32
1722
build:bullseye32 --platforms=@rules_bzlmodrio_toolchains//platforms/bullseye32
18-
build:bullseye32 --build_tag_filters=-no-bullseye
23+
build:bullseye32 --build_tag_filters=-no-bullseye32
1924
build:bullseye32 --platform_suffix=bullseye32
2025

2126
# bullseye64
2227
build:bullseye64 --platforms=@rules_bzlmodrio_toolchains//platforms/bullseye64
23-
build:bullseye64 --build_tag_filters=-no-bullseye
28+
build:bullseye64 --build_tag_filters=-no-bullseye64
2429
build:bullseye64 --platform_suffix=bullseye64
2530

2631
# bookworm32
2732
build:bookworm32 --platforms=@rules_bzlmodrio_toolchains//platforms/bookworm32
28-
build:bookworm32 --build_tag_filters=-no-bookworm
33+
build:bookworm32 --build_tag_filters=-no-bookworm32
2934
build:bookworm32 --platform_suffix=bookworm32
3035

3136
# bookworm64
3237
build:bookworm64 --platforms=@rules_bzlmodrio_toolchains//platforms/bookworm64
33-
build:bookworm64 --build_tag_filters=-no-bookworm
38+
build:bookworm64 --build_tag_filters=-no-bookworm64
3439
build:bookworm64 --platform_suffix=bookworm64
3540

36-
# rasppi bullseye
41+
# raspibullseye32
3742
build:raspibullseye32 --platforms=@rules_bzlmodrio_toolchains//platforms/raspibullseye32
38-
build:raspibullseye32 --build_tag_filters=-no-raspi
43+
build:raspibullseye32 --build_tag_filters=-no-raspibullseye32
3944
build:raspibullseye32 --platform_suffix=raspibullseye32
4045

41-
# rasppi bookworm
46+
# raspibookworm32
4247
build:raspibookworm32 --platforms=@rules_bzlmodrio_toolchains//platforms/raspibookworm32
43-
build:raspibookworm32 --build_tag_filters=-no-raspi
48+
build:raspibookworm32 --build_tag_filters=-no-raspibookworm32
4449
build:raspibookworm32 --platform_suffix=raspibookworm32
4550

4651
# Alias toolchain names to what wpilibsuite uses for CI/Artifact naming
4752
build:athena --config=roborio
48-
build:systemcore --config=bookworm64
4953
build:linuxarm32 --config=raspibookworm32
5054
build:linuxarm64 --config=bookworm64
5155

.bazelrc-cc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,16 @@ build:macos --cxxopt=-Wno-error=deprecated-anon-enum-enum-conversion
4040
build:macos --cxxopt=-Wno-error=inconsistent-missing-override
4141
build:macos --cxxopt=-Wno-error=overloaded-virtual
4242

43-
# Roborio
43+
# roborio
4444
build:roborio --incompatible_enable_cc_toolchain_resolution
4545
build:roborio --copt=-std=c++20
4646
build:roborio --features=compiler_param_file
4747

48+
# systemcore
49+
build:systemcore --incompatible_enable_cc_toolchain_resolution
50+
build:systemcore --copt=-std=c++20
51+
build:systemcore --features=compiler_param_file
52+
4853
# bullseye32
4954
build:bullseye32 --incompatible_enable_cc_toolchain_resolution
5055
build:bullseye32 --copt=-std=c++20
@@ -65,12 +70,12 @@ build:bookworm64 --incompatible_enable_cc_toolchain_resolution
6570
build:bookworm64 --copt=-std=c++20
6671
build:bookworm64 --features=compiler_param_file
6772

68-
# rasppi bullseye
73+
# raspibullseye32
6974
build:raspibullseye32 --incompatible_enable_cc_toolchain_resolution
7075
build:raspibullseye32 --copt=-std=c++20
7176
build:raspibullseye32 --features=compiler_param_file
7277

73-
# rasppi bookworm
78+
# raspibookworm32
7479
build:raspibookworm32 --incompatible_enable_cc_toolchain_resolution
7580
build:raspibookworm32 --copt=-std=c++20
7681
build:raspibookworm32 --features=compiler_param_file

.github/workflows/build.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
- { name: "macos - roborio", os: macos-14, java_arch: "aarch64", command: "build", config: "--noenable_bzlmod --config=roborio", bazel_options: "", }
6060

6161
# Build bzlmod, roborio
62-
# - { name: "windows - bzlmod roborio", os: windows-2022, java_arch: "x64", command: "build", config: "--enable_bzlmod --config=roborio", bazel_options: "--output_user_root=C:\\bazelroot", }
62+
# - { name: "windows - bzlmod roborio", os: windows-2022, java_arch: "x64", command: "build", config: "--enable_bzlmod --config=roborio", bazel_options: "--output_user_root=C:\\bazelroot", }
6363
- { name: "ubuntu - bzlmod roborio", os: ubuntu-22.04, java_arch: "x64", command: "build", config: "--enable_bzlmod --config=roborio", bazel_options: "", }
6464
- { name: "macos - bzlmod roborio", os: macos-14, java_arch: "aarch64", command: "build", config: "--enable_bzlmod --config=roborio", bazel_options: "", }
6565
name: "Build - ${{ matrix.name }}"
@@ -84,6 +84,42 @@ jobs:
8484
run: bazel ${{ matrix.bazel_options }} ${{ matrix.command }} //... -k ${{ matrix.config }} --verbose_failures --config=ci
8585
working-directory: tests
8686

87+
build_systemcore:
88+
strategy:
89+
fail-fast: false
90+
matrix:
91+
include:
92+
# Build non-bzlmod, systemcore
93+
- { name: "windows - systemcore", os: windows-2022, java_arch: "x64", command: "build", config: "--noenable_bzlmod --config=systemcore", bazel_options: "--output_user_root=C:\\bazelroot", }
94+
- { name: "ubuntu - systemcore", os: ubuntu-22.04, java_arch: "x64", command: "build", config: "--noenable_bzlmod --config=systemcore", bazel_options: "", }
95+
- { name: "macos - systemcore", os: macos-14, java_arch: "aarch64", command: "build", config: "--noenable_bzlmod --config=systemcore", bazel_options: "", }
96+
97+
# Build bzlmod, systemcore
98+
- { name: "windows - bzlmod systemcore", os: windows-2022, java_arch: "x64", command: "build", config: "--enable_bzlmod --config=systemcore", bazel_options: "--output_user_root=C:\\bazelroot", }
99+
- { name: "ubuntu - bzlmod systemcore", os: ubuntu-22.04, java_arch: "x64", command: "build", config: "--enable_bzlmod --config=systemcore", bazel_options: "", }
100+
- { name: "macos - bzlmod systemcore", os: macos-14, java_arch: "aarch64", command: "build", config: "--enable_bzlmod --config=systemcore", bazel_options: "", }
101+
name: "Build - ${{ matrix.name }}"
102+
runs-on: ${{ matrix.os }}
103+
steps:
104+
- uses: actions/checkout@v4
105+
- uses: actions/setup-python@v5
106+
with: { python-version: '3.11' }
107+
- uses: actions/setup-java@v4
108+
with:
109+
distribution: 'zulu'
110+
java-version: 17
111+
architecture: ${{ matrix.java_arch }}
112+
- id: setup_build_buddy
113+
uses: ./.github/actions/setup-build-buddy
114+
with:
115+
token: ${{ secrets.BUILDBUDDY_API_KEY }}
116+
- name: Build and allow failure # TODO Sometimes symlinks don't get created correctly the first time around
117+
run: bazel ${{ matrix.bazel_options }} ${{ matrix.command }} //... -k ${{ matrix.config }} --verbose_failures --config=ci || true
118+
working-directory: tests
119+
- name: Build
120+
run: bazel ${{ matrix.bazel_options }} ${{ matrix.command }} //... -k ${{ matrix.config }} --verbose_failures --config=ci
121+
working-directory: tests
122+
87123
build_linuxarm32:
88124
strategy:
89125
fail-fast: false

MODULE.bazel

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module(
22
name = "rules_bzlmodrio_toolchains",
3-
version = "2025-1.bcr1",
3+
version = "2025-1.bcr2",
44
compatibility_level = 2025,
55
)
66

@@ -39,10 +39,14 @@ use_repo(
3939
"bazelrio_roborio_toolchain_macos",
4040
"bazelrio_roborio_toolchain_macosarm",
4141
"bazelrio_roborio_toolchain_windows",
42+
"bazelrio_systemcore_toolchain_linux",
43+
"bazelrio_systemcore_toolchain_macos",
44+
"bazelrio_systemcore_toolchain_macosarm",
45+
"bazelrio_systemcore_toolchain_windows",
4246
)
4347

4448
sh_configure = use_extension("@rules_bzlmodrio_toolchains//:extensions.bzl", "sh_configure")
45-
use_repo(sh_configure, "local_bookworm_32", "local_bookworm_64", "local_bullseye_32", "local_bullseye_64", "local_raspi_bookworm_32", "local_raspi_bullseye_32", "local_roborio")
49+
use_repo(sh_configure, "local_bookworm_32", "local_bookworm_64", "local_bullseye_32", "local_bullseye_64", "local_raspi_bookworm_32", "local_raspi_bullseye_32", "local_roborio", "local_systemcore")
4650

4751
register_toolchains(
4852
"@local_bookworm_32//:macos",
@@ -66,4 +70,7 @@ register_toolchains(
6670
"@local_roborio//:macos",
6771
"@local_roborio//:linux",
6872
"@local_roborio//:windows",
73+
"@local_systemcore//:macos",
74+
"@local_systemcore//:linux",
75+
"@local_systemcore//:windows",
6976
)

WORKSPACE

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ register_toolchains(
3030
"@local_roborio//:macos",
3131
"@local_roborio//:linux",
3232
"@local_roborio//:windows",
33+
"@local_systemcore//:macos",
34+
"@local_systemcore//:linux",
35+
"@local_systemcore//:windows",
3336
)
3437

3538
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
constraint_setting(
2+
name = "is_systemcore",
3+
default_constraint_value = ":false",
4+
)
5+
6+
constraint_value(
7+
name = "true",
8+
constraint_setting = ":is_systemcore",
9+
visibility = ["//visibility:public"],
10+
)
11+
12+
constraint_value(
13+
name = "false",
14+
constraint_setting = ":is_systemcore",
15+
)
16+
17+
config_setting(
18+
name = "systemcore",
19+
constraint_values = [":true"],
20+
visibility = ["//visibility:public"],
21+
)
22+
23+
config_setting(
24+
name = "systemcore_debug",
25+
constraint_values = [":true"],
26+
values = {
27+
"compilation_mode": "dbg",
28+
},
29+
visibility = ["//visibility:public"],
30+
)

maven_deps.bzl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,36 @@ def __setup_toolchains_dependencies(mctx):
219219
build_file_content = filegroup_all,
220220
)
221221

222+
# systemcore
223+
maybe(
224+
http_archive,
225+
"bazelrio_systemcore_toolchain_macosarm",
226+
url = "https://github.com/wpilibsuite/opensdk/releases/download/v2025-1/arm64-bookworm-2025-arm64-apple-darwin-Toolchain-12.2.0.tgz",
227+
sha256 = "e29fa2433cee667d75ff106543d88d3d4154e2f450c79d86d316d5b8015d11e4",
228+
build_file_content = filegroup_all,
229+
)
230+
maybe(
231+
http_archive,
232+
"bazelrio_systemcore_toolchain_macos",
233+
url = "https://github.com/wpilibsuite/opensdk/releases/download/v2025-1/arm64-bookworm-2025-x86_64-apple-darwin-Toolchain-12.2.0.tgz",
234+
sha256 = "34af7c9b601bbce1fe5c5e07f70fe8abd7ed3985cc603dbc12ef7f3d8c2f0b9d",
235+
build_file_content = filegroup_all,
236+
)
237+
maybe(
238+
http_archive,
239+
"bazelrio_systemcore_toolchain_linux",
240+
url = "https://github.com/wpilibsuite/opensdk/releases/download/v2025-1/arm64-bookworm-2025-x86_64-linux-gnu-Toolchain-12.2.0.tgz",
241+
sha256 = "d94005ae516bb43fc85a07ed89cb51bec96ed931ca5c084427f1432a1dbf71e9",
242+
build_file_content = filegroup_all,
243+
)
244+
maybe(
245+
http_archive,
246+
"bazelrio_systemcore_toolchain_windows",
247+
url = "https://github.com/wpilibsuite/opensdk/releases/download/v2025-1/arm64-bookworm-2025-x86_64-w64-mingw32-Toolchain-12.2.0.zip",
248+
sha256 = "50f26a9b0ae595bd536f5b7003a465b04871005cbe57c18e84f657e83df13f4c",
249+
build_file_content = filegroup_all,
250+
)
251+
222252
def setup_legacy_setup_toolchains_dependencies():
223253
__setup_toolchains_dependencies(None)
224254

platforms/systemcore/BUILD.bazel

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
platform(
2+
name = "systemcore",
3+
constraint_values = [
4+
"@platforms//os:linux",
5+
"@platforms//cpu:armv7",
6+
"//constraints/is_systemcore:true",
7+
],
8+
)

tests/.bazelrc

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,44 +8,48 @@ import .bazelrc-buildbuddy
88
build --test_env=LD_LIBRARY_PATH=.
99
build --test_env=DYLD_LIBRARY_PATH=.
1010

11-
# Roborio
11+
# roborio
1212
build:roborio --platforms=@rules_bzlmodrio_toolchains//platforms/roborio
1313
build:roborio --build_tag_filters=-no-roborio
1414
build:roborio --platform_suffix=roborio
1515

16+
# systemcore
17+
build:systemcore --platforms=@rules_bzlmodrio_toolchains//platforms/systemcore
18+
build:systemcore --build_tag_filters=-no-systemcore
19+
build:systemcore --platform_suffix=systemcore
20+
1621
# bullseye32
1722
build:bullseye32 --platforms=@rules_bzlmodrio_toolchains//platforms/bullseye32
18-
build:bullseye32 --build_tag_filters=-no-bullseye
23+
build:bullseye32 --build_tag_filters=-no-bullseye32
1924
build:bullseye32 --platform_suffix=bullseye32
2025

2126
# bullseye64
2227
build:bullseye64 --platforms=@rules_bzlmodrio_toolchains//platforms/bullseye64
23-
build:bullseye64 --build_tag_filters=-no-bullseye
28+
build:bullseye64 --build_tag_filters=-no-bullseye64
2429
build:bullseye64 --platform_suffix=bullseye64
2530

2631
# bookworm32
2732
build:bookworm32 --platforms=@rules_bzlmodrio_toolchains//platforms/bookworm32
28-
build:bookworm32 --build_tag_filters=-no-bookworm
33+
build:bookworm32 --build_tag_filters=-no-bookworm32
2934
build:bookworm32 --platform_suffix=bookworm32
3035

3136
# bookworm64
3237
build:bookworm64 --platforms=@rules_bzlmodrio_toolchains//platforms/bookworm64
33-
build:bookworm64 --build_tag_filters=-no-bookworm
38+
build:bookworm64 --build_tag_filters=-no-bookworm64
3439
build:bookworm64 --platform_suffix=bookworm64
3540

36-
# rasppi bullseye
41+
# raspibullseye32
3742
build:raspibullseye32 --platforms=@rules_bzlmodrio_toolchains//platforms/raspibullseye32
38-
build:raspibullseye32 --build_tag_filters=-no-raspi
43+
build:raspibullseye32 --build_tag_filters=-no-raspibullseye32
3944
build:raspibullseye32 --platform_suffix=raspibullseye32
4045

41-
# rasppi bookworm
46+
# raspibookworm32
4247
build:raspibookworm32 --platforms=@rules_bzlmodrio_toolchains//platforms/raspibookworm32
43-
build:raspibookworm32 --build_tag_filters=-no-raspi
48+
build:raspibookworm32 --build_tag_filters=-no-raspibookworm32
4449
build:raspibookworm32 --platform_suffix=raspibookworm32
4550

4651
# Alias toolchain names to what wpilibsuite uses for CI/Artifact naming
4752
build:athena --config=roborio
48-
build:systemcore --config=bookworm64
4953
build:linuxarm32 --config=raspibookworm32
5054
build:linuxarm64 --config=bookworm64
5155

tests/.bazelrc-cc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,16 @@ build:macos --cxxopt=-Wno-error=deprecated-anon-enum-enum-conversion
4040
build:macos --cxxopt=-Wno-error=inconsistent-missing-override
4141
build:macos --cxxopt=-Wno-error=overloaded-virtual
4242

43-
# Roborio
43+
# roborio
4444
build:roborio --incompatible_enable_cc_toolchain_resolution
4545
build:roborio --copt=-std=c++20
4646
build:roborio --features=compiler_param_file
4747

48+
# systemcore
49+
build:systemcore --incompatible_enable_cc_toolchain_resolution
50+
build:systemcore --copt=-std=c++20
51+
build:systemcore --features=compiler_param_file
52+
4853
# bullseye32
4954
build:bullseye32 --incompatible_enable_cc_toolchain_resolution
5055
build:bullseye32 --copt=-std=c++20
@@ -65,12 +70,12 @@ build:bookworm64 --incompatible_enable_cc_toolchain_resolution
6570
build:bookworm64 --copt=-std=c++20
6671
build:bookworm64 --features=compiler_param_file
6772

68-
# rasppi bullseye
73+
# raspibullseye32
6974
build:raspibullseye32 --incompatible_enable_cc_toolchain_resolution
7075
build:raspibullseye32 --copt=-std=c++20
7176
build:raspibullseye32 --features=compiler_param_file
7277

73-
# rasppi bookworm
78+
# raspibookworm32
7479
build:raspibookworm32 --incompatible_enable_cc_toolchain_resolution
7580
build:raspibookworm32 --copt=-std=c++20
7681
build:raspibookworm32 --features=compiler_param_file

0 commit comments

Comments
 (0)