Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 11 additions & 19 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,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
try-import %workspace%/score.bazelrc/score_toolchain.bazelrc

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.

The configuration will not work if the file is missing, so this should be a hard dependency:

Suggested change
try-import %workspace%/score.bazelrc/score_toolchain.bazelrc
import %workspace%/score.bazelrc/score_toolchain.bazelrc


# Treat warnings as errors, except in external code
build --copt=-Wall
build --copt=-Wextra
Expand All @@ -51,31 +54,24 @@ coverage --instrumentation_filter="^//score/health_monitor/src/cpp[/:],^//score/


# 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
build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu_miri

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)
build:arm64-linux --config=stub
build:arm64-linux --config=toolchain_common
build:arm64-linux --config=_score_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 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu
Expand All @@ -86,13 +82,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 @@ -103,9 +95,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)
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
119 changes: 102 additions & 17 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -38,50 +38,138 @@ bazel_dep(name = "score_cpp_policies", version = "0.0.1", dev_dependency = True)
bazel_dep(name = "score_process", version = "2.0.3", dev_dependency = True)
bazel_dep(name = "score_platform", version = "0.6.4", dev_dependency = True)

## Configure the C++ toolchain
bazel_dep(name = "score_bazel_cpp_toolchains", version = "0.5.4", dev_dependency = True)
###############################################################################
#
# S-CORE Toolchains (DO NOT MODIFY)
#
###############################################################################
bazel_dep(name = "score_bazel_cpp_toolchains", version = "0.5.4")

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

## Linux Toolchains
gcc.toolchain(
name = "score_gcc_x86_64_toolchain",
target_cpu = "x86_64",
target_os = "linux",
use_default_package = True,
version = "12.2.0",
)

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

## AutoSD10 Toolchains
gcc.toolchain(
name = "score_qcc_x86_64_toolchain",
sdp_version = "8.0.4",
name = "score_autosd10_x86_64_toolchain",
runtime_ecosystem = "autosd10",
target_cpu = "x86_64",
target_os = "qnx",
target_os = "linux",
use_default_package = True,
version = "12.2.0",
)
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_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",
)
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
qcc = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc", dev_dependency = True)
qcc.toolchain(
name = "score_qcc_aarch64_toolchain",
sdp_version = "8.0.4",
sdp_version = "8.0.0",
target_cpu = "aarch64",
target_os = "qnx",
use_default_package = True,
version = "12.2.0",
)
qcc.toolchain(
name = "score_qcc_x86_64_toolchain",
sdp_version = "8.0.0",
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 toolchain additions
#
###############################################################################

# Import QNX aarch64 toolchain package (missing from central S-CORE use_repo block)
qcc_repo_specific = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc", dev_dependency = True)
use_repo(qcc_repo_specific, "score_qcc_aarch64_toolchain_pkg")

# aarch64 Linux GCC toolchain (not in central S-CORE config)
gcc_aarch64 = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc")
gcc_aarch64.toolchain(
name = "score_gcc_aarch64_toolchain",
target_cpu = "aarch64",
target_os = "linux",
use_default_package = True,
version = "12.2.0",
)
use_repo(gcc_aarch64, "score_gcc_aarch64_toolchain")

# LLVM toolchain (used for clang-format and clang-tidy)
bazel_dep(name = "toolchains_llvm", version = "1.4.0", dev_dependency = True)

Expand Down Expand Up @@ -115,9 +203,6 @@ imagefs.toolchain(
)
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