123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- //
- // 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: [
- "[email protected]",
- "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: [
- "[email protected]",
- "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",
- ]
|