diff options
Diffstat (limited to 'perfprofd/Android.bp')
-rw-r--r-- | perfprofd/Android.bp | 267 |
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", +] |