Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
638d68c
build: integrate central S-CORE toolchain configuration
srinivasugithub Aug 21, 2026
294b1ef
Merge branch 'main' into feature/S-CORE_global_toolchain_configuration
srinivasugithub Aug 21, 2026
127240c
build: fix QNX aarch64 toolchain package visibility in MODULE.bazel
srinivasugithub Aug 21, 2026
4e1d859
build: remove build report output
srinivasugithub Aug 21, 2026
c44734a
build(bazelrc): update central configurations
srinivasugithub Aug 24, 2026
008b027
build: resolve S-CORE global toolchain PR feedback
srinivasugithub Aug 26, 2026
e7c38ce
build: adopt central toolchains and update templates
srinivasugithub Aug 31, 2026
1f6d01c
Merge branch 'origin/main' into feature/S-CORE_global_toolchain_confiโ€ฆ
srinivasugithub Aug 31, 2026
9fdc529
Merge branch 'main' into feature/S-CORE_global_toolchain_configuration
srinivasugithub Aug 31, 2026
2f95847
fix(lockfile): sync MODULE.bazel.lock after main merge
srinivasugithub Aug 31, 2026
2228906
build: adopt central S-CORE toolchain configuration
srinivasugithub Aug 31, 2026
aa59935
fix(bazelrc): restore default private registry priority first
srinivasugithub Aug 31, 2026
6bc6f60
Merge branch 'main' into feature/S-CORE_global_toolchain_configuration
srinivasugithub Aug 31, 2026
5caa47e
fix(test_helper): suppress GTest verbose banner on stdout
srinivasugithub Sep 1, 2026
72fa525
Merge branch 'upstream/main' into feature/S-CORE_global_toolchain_conโ€ฆ
srinivasugithub Sep 1, 2026
4c219db
fix(build): align coverage configuration and tidy MODULE.bazel
srinivasugithub Sep 3, 2026
8a1a97e
build: revert QNX imagefs sdp_version to 8.0.0
srinivasugithub Sep 16, 2026
ccdbe93
Merge remote-tracking branch 'upstream/main' into pr/502
srinivasugithub Sep 17, 2026
e4ceafa
fix(test_helper): restore GTest verbose banner suppression
srinivasugithub Sep 17, 2026
180b776
build: remove deleted patch overrides from MODULE.bazel
srinivasugithub Sep 17, 2026
e85060c
Merge branch 'main' into feature/S-CORE_global_toolchain_configuration
srinivasugithub Sep 17, 2026
b7eca20
build: align and update MODULE.bazel dependencies with main
srinivasugithub Sep 17, 2026
6b40ce2
build: specify imagefs toolchain type
srinivasugithub Sep 17, 2026
ba3edee
build: inject compiler warnings into toolchain definitions
srinivasugithub Sep 18, 2026
e52266f
build: downgrade redundant-decls and stringop-overflow warnings
srinivasugithub Sep 18, 2026
c7f4bed
coverage fix
srinivasugithub Sep 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 11 additions & 21 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ build --java_runtime_version=remotejdk_17
build --tool_java_runtime_version=remotejdk_17
build --credential_helper=*.qnx.com=%workspace%/scripts/internal/qnx_creds.py

# Import central S-CORE toolchain configuration
import %workspace%/score.bazelrc/score_toolchain.bazelrc

# Disable warnings for external code
build --per_file_copt=external/.*@-w

Expand All @@ -40,33 +43,24 @@ import %workspace%/quality/sanitizer/sanitizer.bazelrc


# Common Lifecycle Toolchain flags for build (do not use it in case of system toolchains!)
build:toolchain_common --incompatible_strict_action_env
build:toolchain_common --host_platform=@score_bazel_platforms//:x86_64-linux
## Ferrocene must be common compiler for HOST. To ensure metadata compatibility for proc macro crate
build:toolchain_common --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
build:stub --@score_baselibs//score/mw/log/flags:KRemote_Logging=False
build:stub --@score_baselibs//score/json:base_library=nlohmann

# Target configuration for running tests on localhost
build:host --//config:integration_mode=host
build:host --//config:unit_mode=host

# Target configuration for CPU:x86-64|OS:Linux build (do not use it in case of system toolchains!)
# Target configuration for CPU:x86-64|OS:Linux build (leveraging central configuration)
build:x86_64-linux --config=stub
build:x86_64-linux --config=toolchain_common
build:x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix
build:x86_64-linux --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0
build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
build:x86_64-linux --config=score-linux-x86_64

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here it's x86_64-linux and in the provided common config it's score-linux-x86_64?!

Personally I don't have strong feelings, but I like the latter. We should align the naming (after this PR has landed).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the former, but nevertheless we should use name from the common config so that it is the same between modules.

build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu_miri
Comment thread
MaciejKaszynski marked this conversation as resolved.

test:x86_64-linux --//config:integration_mode=docker
test:x86_64-linux --//config:unit_mode=host

# Target configuration for CPU:AArch64|OS:Linux build (do not use it in case of system toolchains!)
# Target configuration for CPU:AArch64|OS:Linux build (repository-specific addition leveraging central configuration)
build:arm64-linux --config=stub
build:arm64-linux --config=toolchain_common
build:arm64-linux --platforms=@score_bazel_platforms//:aarch64-linux-gcc_12.2.0-posix
build:arm64-linux --extra_toolchains=@score_gcc_aarch64_toolchain//:aarch64-linux-gcc_12.2.0
build:arm64-linux --config=score-linux-aarch64
build:arm64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu
build:arm64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu_miri
build:arm64-linux --copt=-mno-outline-atomics
Expand All @@ -75,13 +69,9 @@ build:arm64-linux --linkopt=-latomic
test:arm64-linux --//config:integration_mode=docker
test:arm64-linux --//config:unit_mode=host

# Target configuration for CPU:x86-64|OS:QNX build (do not use it in case of system toolchains!)
# Target configuration for CPU:x86-64|OS:QNX build (leveraging central configuration)
build:x86_64-qnx --config=stub
build:x86_64-qnx --config=toolchain_common
build:x86_64-qnx --platforms=@score_bazel_platforms//:x86_64-qnx-sdp_8.0.0-posix
build:x86_64-qnx --extra_toolchains=@score_qcc_x86_64_toolchain//:x86_64-qnx-sdp_8.0.0
build:x86_64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800
build:x86_64-qnx --extra_toolchains=@score_qnx_x86_64_ifs_toolchain//:ifs-x86_64-qnx-sdp_8.0.0
build:x86_64-qnx --config=score-qnx-x86_64

test:x86_64-qnx --//config:integration_mode=qemu
test:x86_64-qnx --//config:unit_mode=skip
Expand All @@ -92,9 +82,9 @@ test:unit-tests-x86_64-qnx --run_under=@score_qnx_unit_tests//src:run_under_qnx
test:unit-tests-x86_64-qnx --//config:integration_mode=skip
test:unit-tests-x86_64-qnx --//config:unit_mode=qemu

# Target configuration for CPU:AArch64|OS:QNX build (do not use it in case of system toolchains!)
# Target configuration for CPU:AArch64|OS:QNX build (repository-specific addition)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be added to the common bazelrc (after this initial PR)?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, i will create PR for module template repo

build:arm64-qnx --config=stub
build:arm64-qnx --config=toolchain_common
build:arm64-qnx --config=_score_common
build:arm64-qnx --incompatible_strict_action_env
build:arm64-qnx --platforms=@score_bazel_platforms//:aarch64-qnx-sdp_8.0.0-posix
build:arm64-qnx --extra_toolchains=@score_qcc_aarch64_toolchain//:aarch64-qnx-sdp_8.0.0
Expand Down
156 changes: 120 additions & 36 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,23 @@ bazel_dep(name = "google_benchmark", version = "1.9.5", dev_dependency = True)

bazel_dep(name = "score_docs_as_code", version = "8.1.2")
bazel_dep(name = "score_tooling", version = "2.2.1")
bazel_dep(name = "score_process_description", version = "2.1.2")
bazel_dep(name = "score_platform", version = "0.7.2")

bazel_dep(name = "score_bazel_platforms", version = "1.1.0", dev_dependency = True)
bazel_dep(name = "score_rust_policies", version = "0.0.5", dev_dependency = True)
bazel_dep(name = "score_cpp_policies", version = "0.1.1", dev_dependency = True)
bazel_dep(name = "score_devcontainer", version = "1.11.0", dev_dependency = True)

## Configure the C++ toolchain
bazel_dep(name = "score_process_description", version = "2.1.2")
bazel_dep(name = "score_platform", version = "0.7.2")

###############################################################################
#
# S-CORE Toolchains (DO NOT MODIFY)
#
###############################################################################
bazel_dep(name = "score_bazel_cpp_toolchains", version = "1.0.3", dev_dependency = True)
bazel_dep(name = "score_bazel_platforms", version = "1.1.0", dev_dependency = True)

# GCC Toolchains
gcc = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc", dev_dependency = True)

# Compiler-warning features are owned by score_cpp_policies
Expand All @@ -58,6 +64,7 @@ _WARNING_KNOWN_FEATURES = [
"@score_cpp_policies//warnings/gcc/features:all_wall_warnings",
]

## Linux Toolchains
gcc.toolchain(
name = "score_gcc_x86_64_toolchain",
extra_enabled_features = _WARNING_ENABLED_FEATURES,
Expand All @@ -76,38 +83,139 @@ gcc.toolchain(
use_default_package = True,
version = "12.2.0",
)

## Elektobit Toolchains
gcc.toolchain(
name = "score_qcc_x86_64_toolchain",
name = "score_ebclfsa_toolchain",
runtime_ecosystem = "ebclfsa",
sdk_version = "0.1.0",
target_cpu = "aarch64",
target_os = "linux",
use_default_package = True,
)

## AutoSD10 Toolchains
gcc.toolchain(
name = "score_autosd10_x86_64_toolchain",
runtime_ecosystem = "autosd10",
target_cpu = "x86_64",
target_os = "linux",
use_default_package = True,
)
gcc.toolchain(
name = "score_autosd10_aarch64_toolchain",
runtime_ecosystem = "autosd10",
target_cpu = "aarch64",
target_os = "linux",
use_default_package = True,
)
use_repo(
gcc,
"score_autosd10_aarch64_toolchain",
"score_autosd10_x86_64_toolchain",
"score_ebclfsa_toolchain",
"score_gcc_aarch64_toolchain",
"score_gcc_x86_64_toolchain",
)

# Rust Toolchains
bazel_dep(name = "score_toolchains_rust", version = "0.10.0", dev_dependency = True)

ferrocene = use_extension(
"@score_toolchains_rust//extensions:ferrocene_toolchain_ext.bzl",
"ferrocene_toolchain_ext",
dev_dependency = True,
)
ferrocene.toolchain(
name = "ferrocene_aarch64_ebclfsa",
coverage_tools_sha256 = "497958e925bc94833ea226d68f6d5ba38bd890f571c73e230141d2923e30dd94",
coverage_tools_strip_prefix = "779fbed05ae9e9fe2a04137929d99cc9b3d516fd/x86_64-unknown-linux-gnu",
coverage_tools_url = "https://github.com/eclipse-score/ferrocene_toolchain_builder/releases/download/1.0.1/coverage-tools-779fbed05ae9e9fe2a04137929d99cc9b3d516fd-x86_64-unknown-linux-gnu.tar.gz",
exec_triple = "x86_64-unknown-linux-gnu",
extra_rustc_flags = [
"-Clink-arg=-Wl,--no-as-needed",
"-Clink-arg=-lstdc++",
"-Clink-arg=-static-libstdc++",
"-Clink-arg=-static",
"-Clink-arg=-lm",
"-Clink-arg=-lc",
],
sha256 = "b1f1eb1146bf595fe1f4a65d5793b7039b37d2cb6d395d1c3100fa7d0377b6c9",
target_compatible_with = [
"@platforms//cpu:aarch64",
"@platforms//os:linux",
],
target_triple = "aarch64-unknown-linux-gnu",
url = "https://github.com/eclipse-score/ferrocene_toolchain_builder/releases/download/1.0.1/ferrocene-779fbed05ae9e9fe2a04137929d99cc9b3d516fd-aarch64-unknown-linux-gnu.tar.gz",
)
use_repo(
ferrocene,
"ferrocene_aarch64_ebclfsa",
)

# QNX Toolchains
bazel_dep(name = "score_rules_imagefs", version = "0.1.0", dev_dependency = True)

imagefs = use_extension("@score_rules_imagefs//extensions:imagefs.bzl", "imagefs", dev_dependency = True)
imagefs.toolchain(
name = "score_qnx_x86_64_ifs_toolchain",
sdp_to_import = "@score_qcc_x86_64_toolchain_pkg",
sdp_version = "8.0.0",
target_cpu = "x86_64",
target_os = "qnx",
type = "ifs",
)
imagefs.toolchain(
name = "score_qnx_aarch64_ifs_toolchain",
sdp_to_import = "@score_qcc_aarch64_toolchain_pkg",
sdp_version = "8.0.0",
target_cpu = "aarch64",
target_os = "qnx",
type = "ifs",
)
use_repo(imagefs, "score_qnx_aarch64_ifs_toolchain", "score_qnx_x86_64_ifs_toolchain")

qcc = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc", dev_dependency = True)
qcc.toolchain(
name = "score_qcc_aarch64_toolchain",
extra_enabled_features = _WARNING_ENABLED_FEATURES,
extra_known_features = _WARNING_KNOWN_FEATURES,
sdp_version = "8.0.4",
target_cpu = "x86_64",
target_cpu = "aarch64",
target_os = "qnx",
use_default_package = True,
version = "12.2.0",
)
gcc.toolchain(
name = "score_qcc_aarch64_toolchain",
qcc.toolchain(
name = "score_qcc_x86_64_toolchain",
extra_enabled_features = _WARNING_ENABLED_FEATURES,
extra_known_features = _WARNING_KNOWN_FEATURES,
sdp_version = "8.0.4",
target_cpu = "aarch64",
target_cpu = "x86_64",
target_os = "qnx",
use_default_package = True,
version = "12.2.0",
)
use_repo(
gcc,
"score_gcc_aarch64_toolchain",
"score_gcc_x86_64_toolchain",
qcc,
"score_qcc_aarch64_toolchain",
"score_qcc_aarch64_toolchain_pkg",
"score_qcc_x86_64_toolchain",
"score_qcc_x86_64_toolchain_pkg",
)

###############################################################################
#
# Repository-specific Toolchains & Testing Configurations
#
###############################################################################
# LLVM toolchain (used for clang-format, clang-tidy and LLVM source-based coverage)
bazel_dep(name = "toolchains_llvm", version = "1.8.0", dev_dependency = True)
git_override(
module_name = "toolchains_llvm",
commit = "332d6856cf41452acbd0ee2636e00232c251dd65",
remote = "https://github.com/bazel-contrib/toolchains_llvm.git",
)

llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm", dev_dependency = True)
llvm.toolchain(
Expand All @@ -131,30 +239,6 @@ git_override(
remote = "https://github.com/eclipse-score/qnx_unit_tests.git",
)

bazel_dep(name = "score_rules_imagefs", version = "0.1.0", dev_dependency = True)

imagefs = use_extension("@score_rules_imagefs//extensions:imagefs.bzl", "imagefs", dev_dependency = True)
imagefs.toolchain(
name = "score_qnx_x86_64_ifs_toolchain",
sdp_to_import = "@score_qcc_x86_64_toolchain_pkg",
sdp_version = "8.0.0",
target_cpu = "x86_64",
target_os = "qnx",
type = "ifs",
)
imagefs.toolchain(
name = "score_qnx_aarch64_ifs_toolchain",
sdp_to_import = "@score_qcc_aarch64_toolchain_pkg",
sdp_version = "8.0.0",
target_cpu = "aarch64",
target_os = "qnx",
type = "ifs",
)
use_repo(imagefs, "score_qnx_aarch64_ifs_toolchain", "score_qnx_x86_64_ifs_toolchain")

## Rust Toolchain
bazel_dep(name = "score_toolchains_rust", version = "0.10.0", dev_dependency = True)

# S-CORE crates
bazel_dep(name = "score_crates", version = "0.0.10")
git_override(
Expand Down
Loading
Loading