# 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 = "abseil-cpp", version = "20250127.0", repo_name = "com_google_absl") git_override( module_name = "abseil-cpp", commit = "76bb24329e8bf5f39704eb10d21b9a80befa7c81", remote = "https://github.com/abseil/abseil-cpp.git", ) 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 = "re2", version = "2024-07-02.bcr.1") bazel_dep(name = "rules_python", version = "1.0.0") bazel_dep(name = "rules_android", version = "0.6.6") bazel_dep(name = "rules_cc", version = "0.2.19") bazel_dep(name = "zstd", version = "1.5.7.bcr.1") 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_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", # Use rules_android's aar_import to avoid toolchain type mismatch. aar_import_bzl_label = "@rules_android//rules:rules.bzl", 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", "com.google.errorprone:error_prone_annotations:2.36.0", ], repositories = [ "https://maven.google.com", "https://repo1.maven.org/maven2", ], ) use_repo(maven, "perfetto_maven")