diff --git a/extensions/gcc.bzl b/extensions/gcc.bzl index ae8b330..2260193 100644 --- a/extensions/gcc.bzl +++ b/extensions/gcc.bzl @@ -15,6 +15,7 @@ """ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:local.bzl", "new_local_repository") load("@score_bazel_cpp_toolchains//packages:version_matrix.bzl", "VERSION_MATRIX") load("@score_bazel_cpp_toolchains//rules:common.bzl", "SDP_VERSION_MAPPING") load("@score_bazel_cpp_toolchains//rules:gcc.bzl", "gcc_toolchain") @@ -54,6 +55,11 @@ _attrs_sdp = { default = "", doc = "Url to the toolchain archive.", ), + "path": attr.string( + mandatory = False, + default = "", + doc = "Path to the local toolchain archive.", + ), } # GCC interface API for toolchain tag class @@ -188,6 +194,7 @@ def _get_packages(tags): "sha256": tag.sha256, "strip_prefix": tag.strip_prefix, "url": tag.url, + "path": tag.path, }) return packages @@ -304,6 +311,7 @@ def _create_and_link_sdp(toolchain_info): "sha256": matrix["sha256"], "strip_prefix": matrix["strip_prefix"], "url": matrix["url"], + "path": "", } def _resolve_identifier(toolchain_info): @@ -385,13 +393,20 @@ def _impl(mctx): """ toolchains, archives = _get_info(mctx) for archive_info in archives: - http_archive( - name = archive_info["name"], - urls = [archive_info["url"]], - build_file = archive_info["build_file"], - sha256 = archive_info["sha256"], - strip_prefix = archive_info["strip_prefix"], - ) + if archive_info["path"] != "": + new_local_repository( + name = archive_info["name"], + build_file = archive_info["build_file"], + path = archive_info["path"], + ) + else: + http_archive( + name = archive_info["name"], + urls = [archive_info["url"]], + build_file = archive_info["build_file"], + sha256 = archive_info["sha256"], + strip_prefix = archive_info["strip_prefix"], + ) for toolchain_info in toolchains: gcc_toolchain( diff --git a/tests/.bazelrc b/tests/.bazelrc index 5894835..bd105e2 100644 --- a/tests/.bazelrc +++ b/tests/.bazelrc @@ -89,3 +89,10 @@ build:x86_64-linux-autosd10 --extra_toolchains=@score_autosd_10_toolchain//:x86_ build:aarch64-linux-ebclfsa --config=shared build:aarch64-linux-ebclfsa --platforms=@score_bazel_platforms//:aarch64-linux-sdk_0.1.0-ebclfsa build:aarch64-linux-ebclfsa --extra_toolchains=@score_ebclfsa_toolchain//:aarch64-linux-sdk_0.1.0-ebclfsa + +# ------------------------------------------------------------------------------- +# Config dedicated to local toolchain testing CPU:x86_64 and OS:linux +# ------------------------------------------------------------------------------- +# build:x86_64-linux-local --config=shared +# build:x86_64-linux-local --host_platform=@score_bazel_platforms//:x86_64-linux-gcc_15.3.0-posix +# build:x86_64-linux-local --extra_toolchains=@score_gcc_toolchain_local//:x86_64-linux-gcc_15.3.0 diff --git a/tests/MODULE.bazel b/tests/MODULE.bazel index 11bce18..5dc2997 100644 --- a/tests/MODULE.bazel +++ b/tests/MODULE.bazel @@ -32,6 +32,11 @@ bazel_dep(name = "bazel_skylib", version = "1.9.0") # ******************************************************************************* bazel_dep(name = "platforms", version = "1.1.0") bazel_dep(name = "score_bazel_platforms", version = "0.1.2") +git_override( + module_name = "score_bazel_platforms", + commit = "6c45a8f2a973fe396c392f727d9dae510692eb88", + remote = "https://github.com/eclipse-score/bazel_platforms.git", +) # ******************************************************************************* # C++ Rules for Bazel @@ -91,6 +96,22 @@ gcc.toolchain( version = "12.2.0", ) +# ******************************************************************************* +# Setting default GCC - local (CPU:x86_64|OS:Linux|V:12.2.0|ES:posix) +# ******************************************************************************* +# gcc.sdp( +# name = "gcc_local_pkg", +# build_file = "@score_bazel_cpp_toolchains//packages/linux/x86_64/gcc/12.2.0:gcc.BUILD", +# path = "", +# ) +# gcc.toolchain( +# name = "score_gcc_toolchain_local", +# target_cpu = "x86_64", +# target_os = "linux", +# sdp_to_link = "gcc_local_pkg", +# version = "15.3.0", +# ) + # ******************************************************************************* # Setting default GCC (CPU:aarch64|OS:Linux|V:12.2.0|ES:posix) # ******************************************************************************* @@ -179,6 +200,8 @@ use_repo( "score_qcc_arm_toolchain_pkg", "score_qcc_toolchain", "score_qcc_toolchain_pkg", + # "score_gcc_toolchain_local", + # "gcc_local_pkg", ) # ******************************************************************************* diff --git a/tests/MODULE.bazel.lock b/tests/MODULE.bazel.lock index 20575b0..a72bc29 100644 --- a/tests/MODULE.bazel.lock +++ b/tests/MODULE.bazel.lock @@ -536,9 +536,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_shell/0.4.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_shell/0.5.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_shell/0.6.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_platforms/0.1.1/MODULE.bazel": "236e5bdff6f2d6de6f96cc4f5f4b1bf2cd6137547ce279668a2dd4c54cd4236c", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_platforms/0.1.2/MODULE.bazel": "d1889bf36241521c5d5c401aaf1e98242a60f9cab9d223f8190e5d7087956e83", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_platforms/0.1.2/source.json": "549c18a968c1ab76135ad38fd15981fcc04d377a62f20e2e5e0b5faa9de2b01d", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_cr_checker/0.2.2/MODULE.bazel": "dc36d9c35543db918c3fb5b93a8e684431f56c7c784cf2a1b90f35802a373c98", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_cr_checker/0.3.1/MODULE.bazel": "f49e037d7fbc0b2a8b2734fc6b47334e8cc8589ca7a5aa0f3ccca85cc5f79fac", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_dash_license_checker/0.1.1/MODULE.bazel": "76681dbd2d45b5c540869a2337174086c56c54953aab1d02cd878b59d31d13a5", @@ -1368,7 +1365,7 @@ }, "@@score_bazel_cpp_toolchains+//extensions:gcc.bzl%gcc": { "general": { - "bzlTransitiveDigest": "yw9Re6dZy5Gs5l3byDyzu4qgBXBSZQbNHWm89ygsTPA=", + "bzlTransitiveDigest": "yaqPt7McFs9yX0bALwRhwb20cno0gVhEH32J82tVkAg=", "usagesDigest": "1UfIz7yPBC2LyOHghQlB2yltcJXkkGH7NQITjVhleH8=", "recordedFileInputs": {}, "recordedDirentsInputs": {},