Home | History | Annotate | Download | only in perfprofd
      1 //
      2 // Copyright (C) 2016 The Android Open Source Project
      3 //
      4 // Licensed under the Apache License, Version 2.0 (the "License");
      5 // you may not use this file except in compliance with the License.
      6 // You may obtain a copy of the License at
      7 //
      8 //      http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unless required by applicable law or agreed to in writing, software
     11 // distributed under the License is distributed on an "AS IS" BASIS,
     12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 // See the License for the specific language governing permissions and
     14 // limitations under the License.
     15 //
     16 
     17 cc_defaults {
     18     name: "perfprofd_defaults",
     19 
     20     cflags: [
     21         "-Wall",
     22         "-Wextra",
     23         "-Werror",
     24 
     25         // Try some more extreme warnings.
     26         "-Wpedantic",
     27         "-Wunreachable-code-aggressive",
     28         // And disable some dumb things.
     29         "-Wno-zero-length-array",
     30         "-Wno-c99-extensions",
     31         "-Wno-language-extension-token",
     32         "-Wno-gnu-zero-variadic-macro-arguments",
     33         "-Wno-nested-anon-types",
     34         "-Wno-gnu-statement-expression",
     35         "-Wno-vla-extension",
     36         "-Wno-extended-offsetof",
     37     ],
     38     cppflags: [
     39         "-Wno-sign-compare",
     40         "-Wno-unused-parameter",
     41     ],
     42 
     43     target: {
     44         darwin: {
     45             enabled: false,
     46         },
     47     },
     48 }
     49 
     50 cc_defaults {
     51     name: "perfprofd_debug_defaults",
     52 
     53     cflags: [
     54         "-O0",
     55         "-g",
     56         "-UNDEBUG",
     57     ],
     58 }
     59 
     60 // Static library for the record proto and its I/O.
     61 
     62 cc_library_static {
     63     name: "libperfprofd_record_proto",
     64     defaults: [
     65         "perfprofd_defaults",
     66     ],
     67     host_supported: true,
     68 
     69     static_libs: [
     70         "libbase",
     71         "libprotobuf-cpp-lite",
     72         "libquipper",
     73         "libz",
     74     ],
     75     srcs: [
     76         "perfprofd_io.cc",
     77         "perfprofd_record.proto",
     78     ],
     79 
     80     proto: {
     81         export_proto_headers: true,
     82         include_dirs: ["external/perf_data_converter/src/quipper"],
     83         type: "lite",
     84     },
     85 
     86     export_include_dirs: ["."],  // Really only the -fwd.h.
     87     export_static_lib_headers: ["libquipper"],
     88 }
     89 
     90 //
     91 // Static library containing guts of AWP daemon.
     92 //
     93 
     94 cc_defaults {
     95     name: "libperfprofdcore_defaults",
     96     defaults: [
     97         "perfprofd_defaults",
     98     ],
     99     host_supported: true,
    100 
    101     static_libs: [
    102         "libbase",
    103         "libsimpleperf_elf_read",
    104     ],
    105     whole_static_libs: [
    106         "libperfprofd_dropbox",
    107         "libperfprofd_record_proto",
    108         "libquipper",
    109     ],
    110     srcs: [
    111         "perf_data_converter.cc",
    112         "configreader.cc",
    113         "cpuconfig.cc",
    114         "perfprofdcore.cc",
    115         "perfprofd_cmdline.cc",
    116         "symbolizer.cc"
    117     ],
    118 
    119     cflags: [
    120         "-Wno-gnu-anonymous-struct",
    121     ],
    122 
    123     export_include_dirs: ["."],
    124 }
    125 
    126 cc_library_static {
    127     name: "libperfprofdcore",
    128     defaults: [
    129         "libperfprofdcore_defaults",
    130     ],
    131 }
    132 
    133 // Debug version.
    134 cc_library_static {
    135     name: "libperfprofdcored",
    136     defaults: [
    137         "libperfprofdcore_defaults",
    138         "perfprofd_debug_defaults",
    139     ],
    140 }
    141 
    142 
    143 //
    144 // Main daemon
    145 //
    146 cc_binary {
    147     name: "perfprofd",
    148     defaults: [
    149         "perfprofd_defaults",
    150     ],
    151 
    152     srcs: [
    153         "perfprofdmain.cc",
    154     ],
    155 
    156     static_libs: [
    157         "libperfprofdcore",
    158         "libperfprofd_binder",
    159         "libsimpleperf_elf_read",
    160     ],
    161     group_static_libs: true,
    162 
    163     shared_libs: [
    164         "liblog",
    165         "libprotobuf-cpp-lite",
    166         "libbase",
    167         "libbinder",
    168         "libservices",
    169         "libutils",
    170     ],
    171 
    172     init_rc: ["perfprofd.rc"],
    173 
    174     product_variables: {
    175         pdk: {
    176             enabled: false,
    177         },
    178     },
    179 
    180     // We're technically independent, but ensure simpleperf is there.
    181     required: [
    182         "simpleperf",
    183     ],
    184 }
    185 
    186 subdirs = [
    187     "binder_interface",
    188     "tests",
    189 ]
    190