# Copyright 2024 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
module(
    name = "showcase-rp2",
)

bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "freertos", version = "10.5.1.bcr.2")
bazel_dep(name = "nanopb", version = "0.4.9.1", repo_name = "com_github_nanopb_nanopb")
bazel_dep(name = "pico-sdk", version = "2.1.1")
bazel_dep(name = "pigweed")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "rules_cc", version = "0.0.17")
bazel_dep(name = "rules_platform", version = "0.1.0")
bazel_dep(name = "rules_python", version = "0.40.0")

bazel_dep(name = "hedron_compile_commands", dev_dependency = True)
bazel_dep(name = "rules_mypy", version = "0.38.0", dev_dependency = True)

# Module overrides
# ================
# TODO: https://pwbug.dev/349880767 - Point this back to the upstream repo once
# this PR is merged.
archive_override(
    module_name = "hedron_compile_commands",
    integrity = "sha256-twHI8300PvX9eTiGi14d5+qtNaJ1xF0jW/6SSg1D738=",
    strip_prefix = "bazel-compile-commands-extractor-163521345aa6366fd1ed801b989b668b5c806f69",
    urls = ["https://github.com/chadnorvell/bazel-compile-commands-extractor/archive/163521345aa6366fd1ed801b989b668b5c806f69.tar.gz"],
)

git_override(
    module_name = "pigweed",
    # ROLL: Warning: this entry is automatically updated.
    # ROLL: Last updated 2025-10-29.
    # ROLL: By https://cr-buildbucket.appspot.com/build/8699657683353397185.
    commit = "5282cf333058d68c4a1de56f69fa5032868ee461",
    remote = "https://pigweed.googlesource.com/pigweed/pigweed",
)

http_archive = use_repo_rule(
    "@bazel_tools//tools/build_defs/repo:http.bzl",
    "http_archive",
)

# TODO: https://github.com/boschsensortec/BME68x_SensorAPI/issues/24 - Can't add
# bme68x_sensor_api the BCR because it doesn't publish a stable-checksum
# archive.
http_archive(
    name = "bme68x_sensor_api",
    build_file = "@showcase-rp2//device:bme68x.BUILD.bazel",
    sha256 = "af505a1021989ad619ac9a422cbb55110629fdf5625e96b89e2257d7a089d151",
    strip_prefix = "BME68x_SensorAPI-4.4.8",
    urls = ["https://github.com/boschsensortec/BME68x_SensorAPI/archive/refs/tags/v4.4.8.tar.gz"],
)

git_repository = use_repo_rule(
    "@bazel_tools//tools/build_defs/repo:git.bzl",
    "git_repository",
)

git_repository(
    name = "bazel_clang_tidy",
    commit = "db677011c7363509a288a9fb3bf0a50830bbf791",
    remote = "https://github.com/erenon/bazel_clang_tidy.git",
)

# Toolchain registration
# ======================
# Register Pigweed's C++ toolchains.
register_toolchains(
    "@pigweed//pw_toolchain:cc_toolchain_cortex-m0",
    "@pigweed//pw_toolchain:cc_toolchain_cortex-m33",
    "@pigweed//pw_toolchain/host_clang:host_cc_toolchain_linux",
    "@pigweed//pw_toolchain/host_clang:host_cc_toolchain_macos",
    dev_dependency = True,
)
