summaryrefslogtreecommitdiff
path: root/perfprofd/Android.bp
diff options
context:
space:
mode:
Diffstat (limited to 'perfprofd/Android.bp')
-rw-r--r--perfprofd/Android.bp267
1 files changed, 267 insertions, 0 deletions
diff --git a/perfprofd/Android.bp b/perfprofd/Android.bp
new file mode 100644
index 00000000..334590c1
--- /dev/null
+++ b/perfprofd/Android.bp
@@ -0,0 +1,267 @@
+//
+// Copyright (C) 2016 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
+//
+// http://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.
+//
+
+cc_defaults {
+ name: "perfprofd_defaults",
+
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+
+ // Try some more extreme warnings.
+ "-Wpedantic",
+ "-Wunreachable-code-aggressive",
+ // And disable some dumb things.
+ "-Wno-zero-length-array",
+ "-Wno-c99-extensions",
+ "-Wno-language-extension-token",
+ "-Wno-gnu-zero-variadic-macro-arguments",
+ "-Wno-nested-anon-types",
+ "-Wno-gnu-statement-expression",
+ "-Wno-vla-extension",
+ ],
+ cppflags: [
+ "-Wno-sign-compare",
+ "-Wno-unused-parameter",
+ ],
+
+ target: {
+ darwin: {
+ enabled: false,
+ },
+ },
+}
+
+cc_defaults {
+ name: "perfprofd_debug_defaults",
+
+ cflags: [
+ "-O0",
+ "-g",
+ "-UNDEBUG",
+ ],
+
+ // Add sanitizers that work w/o extra libraries. This is important
+ // for atest etc to work.
+ sanitize: {
+ integer_overflow: true,
+ undefined: true,
+ },
+
+// TODO: Re-enable when ART's ASAN flags are correctly propagated.
+// target: {
+// // On the host add ASAN.
+// host: {
+// sanitize: {
+// address: true,
+// },
+// },
+// }
+}
+
+filegroup {
+ name: "perfprofd_record_proto",
+ srcs: [
+ "perfprofd_record.proto",
+ ],
+}
+
+// Static library for the record proto and its I/O.
+
+cc_library_static {
+ name: "libperfprofd_record_proto",
+ defaults: [
+ "perfprofd_defaults",
+ ],
+ host_supported: true,
+
+ static_libs: [
+ "libbase",
+ "libprotobuf-cpp-lite",
+ "libquipper",
+ "libz",
+ ],
+ srcs: [
+ "perfprofd_io.cc",
+ ":perfprofd_record_proto",
+ ],
+
+ proto: {
+ export_proto_headers: true,
+ include_dirs: ["external/perf_data_converter/src/quipper"],
+ type: "lite",
+ },
+
+ export_include_dirs: ["."], // Really only the -fwd.h.
+ export_static_lib_headers: ["libquipper"],
+}
+
+filegroup {
+ name: "perfprofd_config_proto",
+ srcs: [
+ "perfprofd_config.proto",
+ ],
+}
+
+cc_library_static {
+ name: "libperfprofd_proto_config",
+ defaults: [
+ "perfprofd_defaults",
+ ],
+ host_supported: true,
+
+ static_libs: [
+ "libprotobuf-cpp-lite",
+ ],
+ srcs: [
+ ":perfprofd_config_proto",
+ ],
+
+ proto: {
+ export_proto_headers: true,
+ type: "lite",
+ },
+
+ export_include_dirs: ["."], // Really only the -fwd.h.
+}
+
+//
+// Static library containing guts of AWP daemon.
+//
+
+cc_defaults {
+ name: "libperfprofdcore_defaults",
+ defaults: [
+ "perfprofd_defaults",
+ ],
+ host_supported: true,
+
+ static_libs: [
+ "libbase",
+ "libperfprofd_proto_config",
+ "libprotobuf-cpp-lite",
+ "libsimpleperf_dex_read",
+ "libsimpleperf_elf_read",
+ ],
+ whole_static_libs: [
+ "libperfprofd_dropbox",
+ "libperfprofd_record_proto",
+ "libquipper",
+ ],
+ srcs: [
+ "perf_data_converter.cc",
+ "configreader.cc",
+ "cpuconfig.cc",
+ "perfprofdcore.cc",
+ "perfprofd_cmdline.cc",
+ "perfprofd_perf.cc",
+ "symbolizer.cc"
+ ],
+
+ cflags: [
+ "-Wno-gnu-anonymous-struct",
+ ],
+
+ export_include_dirs: ["."],
+
+ target: {
+ android: {
+ static_libs: [
+ "libhealthhalutils",
+ ],
+ shared_libs: [
+ "android.hardware.health@2.0",
+ "libhidlbase",
+ ],
+ }
+ }
+}
+
+cc_library_static {
+ name: "libperfprofdcore",
+ defaults: [
+ "libart_static_defaults",
+ "libperfprofdcore_defaults",
+ ],
+}
+
+// Debug version.
+cc_library_static {
+ name: "libperfprofdcored",
+ defaults: [
+ "libartd_static_defaults",
+ "libperfprofdcore_defaults",
+ "perfprofd_debug_defaults",
+ ],
+}
+
+
+//
+// Main daemon
+//
+cc_binary {
+ name: "perfprofd",
+ defaults: [
+ "libart_static_defaults",
+ "perfprofd_defaults",
+ "libsimpleperf_dex_read_static_reqs_defaults",
+ "libsimpleperf_elf_read_static_reqs_defaults",
+ ],
+
+ srcs: [
+ "perfprofdmain.cc",
+ ],
+
+ static_libs: [
+ "libhealthhalutils",
+ "libperfprofdcore",
+ "libperfprofd_binder",
+ "libperfprofd_proto_config",
+ "libsimpleperf_dex_read",
+ "libsimpleperf_elf_read",
+ ],
+ group_static_libs: true,
+
+ shared_libs: [
+ "android.hardware.health@2.0",
+ "liblog",
+ "libprotobuf-cpp-lite",
+ "libbase",
+ "libbinder",
+ "libhidlbase",
+ "libservices",
+ "libutils",
+ ],
+
+ init_rc: ["perfprofd.rc"],
+
+ product_variables: {
+ pdk: {
+ enabled: false,
+ },
+ },
+
+ // We're technically independent, but ensure simpleperf is there.
+ required: [
+ "simpleperf",
+ ],
+}
+
+subdirs = [
+ "binder_interface",
+ "tests",
+]