diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 23a2745..c1a26f6 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -851,7 +851,7 @@ "moduleExtensions": { "//:extensions.bzl%arm_toolchain": { "general": { - "bzlTransitiveDigest": "WRMAqOz//e6lnKFC57b1rFgPnOGEhRGGOS0zGQCw1sM=", + "bzlTransitiveDigest": "5uCK07Csa3uEOK6aGuYNpT97C+qTU4KuIVR/EzZ3vXk=", "accumulatedFileDigests": {}, "envVariables": {}, "generatedRepoSpecs": { @@ -988,25 +988,10 @@ } }, "recordedRepoMappingEntries": [ - [ - "", - "bazel_tools", - "bazel_tools" - ], - [ - "", - "rules_cc", - "rules_cc~0.0.9" - ], [ "", "toolchains_arm_gnu", "" - ], - [ - "rules_cc~0.0.9", - "bazel_tools", - "bazel_tools" ] ] } diff --git a/README.md b/README.md index 95b4dd0..0c848bc 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,9 @@ You might also like another, similar, toolchain project for `bazel` - [WORKSPACE support](#workspace) - [Direct access to gcc tools](#direct-access-to-gcc-tools) - [Custom toolchain support](#custom-toolchain) -- [Examples](#examples) +- [Examples](./examples) - Remote execution support +- Linux, MacOS, Windows ## Use the toolchain from this repo @@ -58,26 +59,14 @@ And this to your `.bazelrc` build --incompatible_enable_cc_toolchain_resolution ``` -## Examples - -Please look at the [`examples`](./examples/) folder for reference usage - ## Bzlmod ```python -# MODULE.bazel - bazel_dep(name = "toolchains_arm_gnu", version = "0.0.1") -git_override( - module_name = "toolchains_arm_gnu", - remote = "https://github.com/hexdae/bazel-arm-none-eabi", - branch = "master", -) - # Toolchains: arm-none-eabi arm_toolchain = use_extension("@toolchains_arm_gnu//:extensions.bzl", "arm_toolchain") -arm_toolchain.arm_none_eabi(version = "9.2.1") +arm_toolchain.arm_none_eabi(version = "13.2.1") use_repo( arm_toolchain, "arm_none_eabi", @@ -108,8 +97,6 @@ register_toolchains("@arm_none_linux_gnueabihf//toolchain:all") Add this git repository to your WORKSPACE to use the compiler ```python -# WORKSPACE.bazel - load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") git_repository( @@ -125,14 +112,13 @@ git_repository( ) # Toolchain: arm-none-eabi -load("@toolchains_arm_gnu//:deps.bzl", "arm_none_eabi_deps", "register_default_arm_none_eabi_toolchains") +load("@toolchains_arm_gnu//:deps.bzl", "arm_none_eabi_deps", "arm_none_linux_gnueabihf_deps") arm_none_eabi_deps() -register_default_arm_none_eabi_toolchains() +register_toolchains("@arm_none_eabi//toolchain:all") # Toolchain arm-none-linux-gnueabihf -load("@toolchains_arm_gnu//:deps.bzl", "arm_none_linux_gnueabihf_deps", "register_default_arm_none_linux_gnueabihf_toolchains") arm_none_linux_gnueabihf_deps() -register_default_arm_none_linux_gnueabihf_toolchains() +register_toolchains("@arm_none_linux_gnueabihf//toolchain:all") ``` Now Bazel will automatically use `arm-none-eabi-gcc` as a compiler. diff --git a/deps.bzl b/deps.bzl index ce26046..113a7b5 100644 --- a/deps.bzl +++ b/deps.bzl @@ -2,7 +2,6 @@ load("@toolchains_arm_gnu//toolchain/archives:arm_none_eabi.bzl", "ARM_NONE_EABI") load("@toolchains_arm_gnu//toolchain/archives:arm_none_linux_gnueabihf.bzl", "ARM_NONE_LINUX_GNUEABIHF") -load("@toolchains_arm_gnu//toolchain:toolchain.bzl", "register_arm_gnu_toolchain", "target_constraints") def _arm_gnu_cross_hosted_platform_specific_repo_impl(repository_ctx): """Defines a host-specific repository for the ARM GNU toolchain.""" @@ -82,15 +81,6 @@ def toolchains_arm_gnu_deps(toolchain, toolchain_prefix, version, archives): **attrs ) -def register_default_arm_gnu_toolchains(repo, toolchain_prefix): - for cpu in target_constraints[toolchain_prefix]: - register_arm_gnu_toolchain( - name = "@{}//toolchain:{}".format(repo, cpu), - prefix = toolchain_prefix, - ) - -# arm-none-eabi - def arm_none_eabi_deps(version = "13.2.1", archives = ARM_NONE_EABI): """Workspace dependencies for the arm none eabi gcc toolchain @@ -105,14 +95,6 @@ def arm_none_eabi_deps(version = "13.2.1", archives = ARM_NONE_EABI): archives, ) -def register_default_arm_none_eabi_toolchains(): - register_default_arm_gnu_toolchains( - repo = "arm_none_eabi", - toolchain_prefix = "arm-none-eabi", - ) - -# arm-none-linux-gnueabihf - def arm_none_linux_gnueabihf_deps(version = "13.2.1", archives = ARM_NONE_LINUX_GNUEABIHF): """Workspace dependencies for the arm linux gcc toolchain @@ -126,9 +108,3 @@ def arm_none_linux_gnueabihf_deps(version = "13.2.1", archives = ARM_NONE_LINUX_ version, archives, ) - -def register_default_arm_none_linux_gnueabihf_toolchains(): - register_default_arm_gnu_toolchains( - repo = "arm_none_linux_gnueabihf", - toolchain_prefix = "arm-none-linux-gnueabihf", - ) diff --git a/examples/workspace/WORKSPACE b/examples/workspace/WORKSPACE index 3d517ea..311e84b 100644 --- a/examples/workspace/WORKSPACE +++ b/examples/workspace/WORKSPACE @@ -24,17 +24,17 @@ local_repository( path = "../../", ) -load("@toolchains_arm_gnu//:deps.bzl", "arm_none_eabi_deps", "arm_none_linux_gnueabihf_deps", "register_default_arm_none_eabi_toolchains", "register_default_arm_none_linux_gnueabihf_toolchains") +load("@toolchains_arm_gnu//:deps.bzl", "arm_none_eabi_deps", "arm_none_linux_gnueabihf_deps") # Toolchain: arm-none-eabi arm_none_eabi_deps() -register_default_arm_none_eabi_toolchains() +register_toolchains("@arm_none_eabi//toolchain:all") # Toolchain arm-none-linux-gnueabihf arm_none_linux_gnueabihf_deps() -register_default_arm_none_linux_gnueabihf_toolchains() +register_toolchains("@arm_none_linux_gnueabihf//toolchain:all") # Custom toolchain register_toolchains("//custom/toolchain:all")