| # Copyright 2022 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. |
| |
| load("@bazel_skylib//rules:copy_file.bzl", "copy_file") |
| load("@rules_python//python:defs.bzl", "py_library") |
| load("//pw_build:python.bzl", "pw_py_test") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| # Path to the `llvm-symbolizer` binary for the toolchain being |
| # decoded. |
| # |
| # This should be overriden for toolchains which don't use |
| # `@llvm-toolchain`. |
| label_flag( |
| name = "llvm-symbolizer", |
| build_setting_default = "@llvm_toolchain//:bin/llvm-symbolizer", |
| ) |
| |
| # Symlink the `llvm-symbolizer` binary (whose path may be different |
| # based on the label flag above) into a common location. |
| copy_file( |
| name = "llvm-symbolizer-symlink", |
| src = ":llvm-symbolizer", |
| out = "llvm-symbolizer-copy", |
| allow_symlink = True, |
| is_executable = True, |
| ) |
| |
| py_library( |
| name = "pw_symbolizer", |
| srcs = [ |
| "pw_symbolizer/__init__.py", |
| "pw_symbolizer/llvm_symbolizer.py", |
| "pw_symbolizer/symbolizer.py", |
| ], |
| data = [":llvm-symbolizer-symlink"], |
| imports = ["."], |
| deps = ["@rules_python//python/runfiles"], |
| ) |
| |
| pw_py_test( |
| name = "symbolizer_test", |
| size = "small", |
| srcs = ["symbolizer_test.py"], |
| deps = [":pw_symbolizer"], |
| ) |
| |
| # This test attempts to run subprocesses directly in the source tree, which is |
| # incompatible with sandboxing. |
| # TODO: b/241307309 - Update this test to work with bazel. |
| filegroup( |
| name = "llvm_symbolizer_test", |
| # size = "small", |
| srcs = [ |
| "llvm_symbolizer_test.py", |
| "symbolizer_test.cc", |
| ], |
| # deps = [":pw_symbolizer"], |
| ) |