// // 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", "-Wno-extended-offsetof", ], cppflags: [ "-Wno-sign-compare", "-Wno-unused-parameter", ], } cc_defaults { name: "perfprofd_debug_defaults", cflags: [ "-O0", "-g", "-UNDEBUG", ], } // // Static library containing guts of AWP daemon. // cc_defaults { name: "libperfprofdcore_defaults", defaults: [ "perfprofd_defaults", ], host_supported: true, target: { darwin: { enabled: false, }, }, static_libs: [ "libbase", "libsimpleperf_elf_read", ], whole_static_libs: [ "libquipper", ], srcs: [ "perfprofd_record.proto", "perf_data_converter.cc", "configreader.cc", "cpuconfig.cc", "perfprofdcore.cc", "perfprofd_io.cc", "symbolizer.cc" ], proto: { export_proto_headers: true, include_dirs: ["external/perf_data_converter/src/quipper"], type: "lite", }, cflags: [ "-Wno-gnu-anonymous-struct", ], export_include_dirs: ["."], } cc_library_static { name: "libperfprofdcore", defaults: [ "libperfprofdcore_defaults", ], } // Debug version. cc_library_static { name: "libperfprofdcored", defaults: [ "libperfprofdcore_defaults", "perfprofd_debug_defaults", ], } // // Main daemon // cc_binary { name: "perfprofd", defaults: [ "perfprofd_defaults", ], srcs: [ "perfprofdmain.cc", ], static_libs: [ "libperfprofdcore", "libperfprofd_binder", "libsimpleperf_elf_read", ], group_static_libs: true, shared_libs: [ "liblog", "libprotobuf-cpp-lite", "libbase", "libbinder", "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", ]