Home | History | Annotate | Download | only in ipc
      1 # Copyright (C) 2017 The Android Open Source Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #      http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 import("../../gn/perfetto.gni")
     16 import("../../gn/fuzzer.gni")
     17 import("../../gn/ipc_library.gni")
     18 import("../../gn/proto_library.gni")
     19 
     20 # For use_libfuzzer.
     21 if (perfetto_build_standalone || perfetto_build_with_android) {
     22   import("//gn/standalone/sanitizers/vars.gni")
     23 } else {
     24   import("//build/config/sanitizers/sanitizers.gni")
     25 }
     26 
     27 # This build file should not be leaked into all embedders. Only select
     28 # projects should be depending on our IPC layer.
     29 assert(perfetto_build_with_ipc_layer)
     30 
     31 source_set("ipc") {
     32   public_configs = [ "../../gn:default_config" ]
     33   public_deps = [
     34     "../../include/perfetto/ipc",
     35     "../base:unix_socket",
     36   ]
     37   deps = [
     38     ":wire_protocol",
     39     "../../gn:default_deps",
     40     "../base",
     41   ]
     42   sources = [
     43     "buffered_frame_deserializer.cc",
     44     "client_impl.cc",
     45     "deferred.cc",
     46     "host_impl.cc",
     47     "host_impl.h",
     48     "service_proxy.cc",
     49     "virtual_destructors.cc",
     50   ]
     51 }
     52 
     53 perfetto_fuzzer_test("buffered_frame_deserializer_fuzzer") {
     54   sources = [
     55     "buffered_frame_deserializer_fuzzer.cc",
     56   ]
     57   deps = [
     58     ":ipc",
     59     ":wire_protocol",
     60     "../../gn:default_deps",
     61   ]
     62 }
     63 
     64 source_set("unittests") {
     65   testonly = true
     66   deps = [
     67     ":ipc",
     68     ":test_messages",
     69     ":wire_protocol",
     70     "../../gn:default_deps",
     71     "../../gn:gtest_deps",
     72     "../base",
     73     "../base:test_support",
     74   ]
     75   sources = [
     76     "buffered_frame_deserializer_unittest.cc",
     77     "client_impl_unittest.cc",
     78     "deferred_unittest.cc",
     79     "host_impl_unittest.cc",
     80     "test/ipc_integrationtest.cc",
     81   ]
     82 }
     83 
     84 proto_library("wire_protocol") {
     85   generate_python = false
     86   sources = [
     87     "wire_protocol.proto",
     88   ]
     89   proto_in_dir = perfetto_root_path
     90   proto_out_dir = perfetto_root_path
     91 }
     92 
     93 ipc_library("test_messages") {
     94   sources = [
     95     "test/client_unittest_messages.proto",
     96     "test/deferred_unittest_messages.proto",
     97     "test/greeter_service.proto",
     98   ]
     99   proto_in_dir = perfetto_root_path
    100   proto_out_dir = perfetto_root_path
    101 }
    102