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