# 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", repo_name = "com_github_nanopb_nanopb")
bazel_dep(name = "pico-sdk", version = "1.6.0-rc1")
bazel_dep(name = "pigweed")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "pw_toolchain")
bazel_dep(name = "rules_cc")
bazel_dep(name = "rules_python", version = "0.34.0")

bazel_dep(name = "hedron_compile_commands", 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",
    strip_prefix = "bazel-compile-commands-extractor-163521345aa6366fd1ed801b989b668b5c806f69",
    urls = ["https://github.com/chadnorvell/bazel-compile-commands-extractor/archive/163521345aa6366fd1ed801b989b668b5c806f69.tar.gz"],
)

# TODO: https://pwbug.dev/354274498 - nanopb is not yet in the BCR.
git_override(
    module_name = "nanopb",
    commit = "7c6c581bc6f7406a4f01c3b9853251ff0a68458b",
    remote = "https://github.com/nanopb/nanopb.git",
)

# TODO: https://pwbug.dev/355058285 - Remove this once the released version of
# pico-sdk is in the BCR.
git_override(
    module_name = "pico-sdk",
    commit = "23b55ffea6662dd09768626abb77dcf365f2c1f8",
    remote = "https://pigweed-internal.googlesource.com/third_party/github/raspberrypi/pico-sdk",
)

# TODO: https://pwbug.dev/354270165 - Add picotool to the BCR.
git_override(
    module_name = "picotool",
    commit = "f1db749a52ae7b3b2fdd3153fa68652fadc2d953",
    remote = "https://pigweed-internal.googlesource.com/third_party/github/raspberrypi/picotool",
)

git_override(
    module_name = "pigweed",
    # ROLL: Warning: this entry is automatically updated.
    # ROLL: Last updated 2024-08-05.
    # ROLL: By https://cr-buildbucket.appspot.com/build/8740404659009595713.
    commit = "bd578311f602642fa9a67f9deb7277af07ab219e",
    remote = "https://pigweed-internal.googlesource.com/pigweed/pigweed",
)

git_override(
    module_name = "pw_toolchain",
    # ROLL: Warning: this entry is automatically updated.
    # ROLL: Last updated 2024-08-05.
    # ROLL: By https://cr-buildbucket.appspot.com/build/8740404659009595713.
    commit = "bd578311f602642fa9a67f9deb7277af07ab219e",
    remote = "https://pigweed-internal.googlesource.com/pigweed/pigweed",
    strip_prefix = "pw_toolchain_bazel",
)

# TODO: https://pwbug.dev/258836641 - Pre-release version needed for the Pico
# SDK. Remove this once rules_cc 0.10.0 is released and the Pico SDK
# MODULE.bazel declares its dependency on it.
archive_override(
    module_name = "rules_cc",
    integrity = "sha256-NddP6xi6LzsIHT8bMSVJ2NtoURbN+l3xpjvmIgB6aSg=",
    strip_prefix = "rules_cc-1acf5213b6170f1f0133e273cb85ede0e732048f",
    urls = [
        "https://github.com/bazelbuild/rules_cc/archive/1acf5213b6170f1f0133e273cb85ede0e732048f.zip",
    ],
)

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"],
)
