| # Copyright (C) 2025 The Android Open Source Project |
| # |
| # 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. |
| |
| """Perfetto Bazel module configuration for bzlmod.""" |
| |
| module( |
| name = "perfetto", |
| version = "0.0.0", |
| ) |
| |
| bazel_dep(name = "bazel_skylib", version = "1.7.1") |
| bazel_dep(name = "platforms", version = "0.0.10") |
| bazel_dep(name = "protobuf", version = "31.1", repo_name = "com_google_protobuf") |
| bazel_dep(name = "rules_python", version = "1.0.0") |
| bazel_dep(name = "rules_android", version = "0.6.6") |
| |
| remote_android_extensions = use_extension( |
| "@rules_android//bzlmod_extensions:android_extensions.bzl", |
| "remote_android_tools_extensions", |
| ) |
| use_repo(remote_android_extensions, "android_tools") |
| |
| android_sdk_repository_extension = use_extension( |
| "@rules_android//rules/android_sdk_repository:rule.bzl", |
| "android_sdk_repository_extension", |
| ) |
| |
| # When built using 'tools/bazel', 'ANDROID_HOME' environment variable points |
| # to the hermetic Android SDK installation, that should be downloaded first |
| # with 'tools/install-build-deps --android' |
| android_sdk_repository_extension.configure( |
| api_level = 35, |
| build_tools_version = "35.0.1", |
| ) |
| use_repo(android_sdk_repository_extension, "androidsdk") |
| |
| register_toolchains("@androidsdk//:sdk-toolchain", "@androidsdk//:all") |
| |
| bazel_dep(name = "rules_jvm_external", version = "6.9") |
| bazel_dep(name = "rules_android_ndk", version = "0.1.3") |
| |
| android_ndk_repository_extension = use_extension( |
| "@rules_android_ndk//:extension.bzl", |
| "android_ndk_repository_extension", |
| ) |
| |
| # When built using 'tools/bazel', 'ANDROID_NDK_HOME' environment variable points |
| # to the hermetic Android NDK installation, that should be downloaded first |
| # with 'tools/install-build-deps --android' |
| android_ndk_repository_extension.configure( |
| api_level = 26, |
| ) |
| use_repo(android_ndk_repository_extension, "androidndk") |
| |
| register_toolchains("@androidndk//:all") |
| |
| # Perfetto configuration repository extension. |
| # This creates @perfetto_cfg which provides PERFETTO_CONFIG struct. |
| perfetto_cfg_ext = use_extension( |
| "//bazel:perfetto_cfg_ext.bzl", |
| "perfetto_cfg_ext", |
| ) |
| use_repo(perfetto_cfg_ext, "perfetto_cfg") |
| |
| # Perfetto third-party dependencies extension. |
| # These are the same deps defined in //bazel:deps.bzl for WORKSPACE users. |
| perfetto_deps = use_extension( |
| "//bazel:perfetto_deps.bzl", |
| "perfetto_deps", |
| ) |
| use_repo( |
| perfetto_deps, |
| "perfetto_dep_expat", |
| "perfetto_dep_jsoncpp", |
| "perfetto_dep_linenoise", |
| "perfetto_dep_llvm_demangle", |
| "perfetto_dep_open_csd", |
| "perfetto_dep_sqlite", |
| "perfetto_dep_sqlite_src", |
| "perfetto_dep_zlib", |
| ) |
| |
| # Maven dependencies for Android instrumentation tests. |
| # Use a unique name to avoid conflicts with other modules (e.g., bazel_worker_java). |
| maven = use_extension( |
| "@rules_jvm_external//:extensions.bzl", |
| "maven", |
| ) |
| maven.install( |
| name = "perfetto_maven", |
| artifacts = [ |
| "androidx.test:runner:1.6.2", |
| "androidx.test:monitor:1.7.2", |
| "com.google.truth:truth:1.4.4", |
| "junit:junit:4.13.2", |
| "androidx.test.ext:junit:1.2.1", |
| ], |
| repositories = [ |
| "https://maven.google.com", |
| "https://repo1.maven.org/maven2", |
| ], |
| # Use rules_android's aar_import to avoid toolchain type mismatch. |
| aar_import_bzl_label = "@rules_android//rules:rules.bzl", |
| ) |
| use_repo(maven, "perfetto_maven") |