tp: improve dependency handling for python libs and add pandas
Change-Id: I46b2281fcfb9c0afbdd323ed410daf2b2800de75
diff --git a/BUILD b/BUILD
index 2d191fd..7e18b14 100644
--- a/BUILD
+++ b/BUILD
@@ -4111,38 +4111,10 @@
python_version = "PY3",
)
-# Noop targets used to represent targets of the protobuf library.
-# These will be rewritten in Google3 to be dependencies on the real targets.
-
-perfetto_py_library(
- name = "pyglib_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "protobuf_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "protobuf_descriptor_pb2_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "gfile_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "trace_processor_init_noop",
- srcs = [],
-)
-
perfetto_py_binary(
name = "trace_processor_py_example",
srcs = ["src/trace_processor/python/example.py"],
- deps = [":trace_processor_py"],
+ deps = [":trace_processor_py"] + PERFETTO_CONFIG.deps.pandas_py,
main = "src/trace_processor/python/example.py",
python_version = "PY3",
)
@@ -4151,17 +4123,14 @@
name = "trace_processor_py",
srcs = glob(["src/trace_processor/python/perfetto/trace_processor/*.py"]),
data = [
- ":trace_processor_init_noop",
"src/trace_processor/python/perfetto/trace_processor/trace_processor.descriptor",
"src/trace_processor/python/perfetto/trace_processor/metrics.descriptor",
":trace_processor_shell",
- ],
- deps = [
- ":gfile_noop",
- ":protobuf_noop",
- ":protobuf_descriptor_pb2_noop",
- ":pyglib_noop",
- ],
+ ] + PERFETTO_CONFIG.deps.tp_init_py,
+ deps = PERFETTO_CONFIG.deps.gfile_py +
+ PERFETTO_CONFIG.deps.protobuf_py +
+ PERFETTO_CONFIG.deps.protobuf_descriptor_pb2_py +
+ PERFETTO_CONFIG.deps.pyglib_py,
imports = [
"src/trace_processor/python",
],
@@ -4181,12 +4150,12 @@
perfetto_py_binary(
name = "experimental_slice_breakdown_bin",
- srcs = glob(["tools/slice_breakdown/main.py"]),
+ srcs = ["tools/slice_breakdown/main.py"],
main = "tools/slice_breakdown/main.py",
deps = [
":experimental_slice_breakdown_lib",
":trace_processor_py",
- ],
+ ] + PERFETTO_CONFIG.deps.pandas_py,
python_version = "PY3",
legacy_create_init = 0,
)
diff --git a/BUILD.extras b/BUILD.extras
index a001ded..be5aa90 100644
--- a/BUILD.extras
+++ b/BUILD.extras
@@ -93,38 +93,10 @@
python_version = "PY3",
)
-# Noop targets used to represent targets of the protobuf library.
-# These will be rewritten in Google3 to be dependencies on the real targets.
-
-perfetto_py_library(
- name = "pyglib_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "protobuf_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "protobuf_descriptor_pb2_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "gfile_noop",
- srcs = [],
-)
-
-perfetto_py_library(
- name = "trace_processor_init_noop",
- srcs = [],
-)
-
perfetto_py_binary(
name = "trace_processor_py_example",
srcs = ["src/trace_processor/python/example.py"],
- deps = [":trace_processor_py"],
+ deps = [":trace_processor_py"] + PERFETTO_CONFIG.deps.pandas_py,
main = "src/trace_processor/python/example.py",
python_version = "PY3",
)
@@ -133,17 +105,14 @@
name = "trace_processor_py",
srcs = glob(["src/trace_processor/python/perfetto/trace_processor/*.py"]),
data = [
- ":trace_processor_init_noop",
"src/trace_processor/python/perfetto/trace_processor/trace_processor.descriptor",
"src/trace_processor/python/perfetto/trace_processor/metrics.descriptor",
":trace_processor_shell",
- ],
- deps = [
- ":gfile_noop",
- ":protobuf_noop",
- ":protobuf_descriptor_pb2_noop",
- ":pyglib_noop",
- ],
+ ] + PERFETTO_CONFIG.deps.tp_init_py,
+ deps = PERFETTO_CONFIG.deps.gfile_py +
+ PERFETTO_CONFIG.deps.protobuf_py +
+ PERFETTO_CONFIG.deps.protobuf_descriptor_pb2_py +
+ PERFETTO_CONFIG.deps.pyglib_py,
imports = [
"src/trace_processor/python",
],
@@ -163,12 +132,12 @@
perfetto_py_binary(
name = "experimental_slice_breakdown_bin",
- srcs = glob(["tools/slice_breakdown/main.py"]),
+ srcs = ["tools/slice_breakdown/main.py"],
main = "tools/slice_breakdown/main.py",
deps = [
":experimental_slice_breakdown_lib",
":trace_processor_py",
- ],
+ ] + PERFETTO_CONFIG.deps.pandas_py,
python_version = "PY3",
legacy_create_init = 0,
)
diff --git a/bazel/standalone/perfetto_cfg.bzl b/bazel/standalone/perfetto_cfg.bzl
index 2d71aa8..5725041 100644
--- a/bazel/standalone/perfetto_cfg.bzl
+++ b/bazel/standalone/perfetto_cfg.bzl
@@ -49,7 +49,16 @@
protoc_lib = ["@com_google_protobuf//:protoc_lib"],
protobuf_lite = ["@com_google_protobuf//:protobuf_lite"],
protobuf_full = ["@com_google_protobuf//:protobuf"],
- protobuf_descriptor_proto = ["@com_google_protobuf//:descriptor_proto"]
+ protobuf_descriptor_proto = ["@com_google_protobuf//:descriptor_proto"],
+
+ # The Python targets are empty on the standalone build because we assume
+ # any relevant deps are installed on the system or are not applicable.
+ tp_init_py = [],
+ gfile_py = [],
+ protobuf_py = [],
+ protobuf_descriptor_pb2_py = [],
+ pyglib_py = [],
+ pandas_py = [],
),
# This struct allows embedders to customize the cc_opts for Perfetto