// These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.
// TODO(lalitm): find a better way to do this sharing.

// TODO(lalitm): uncomment these when the CTS tests are to be enabled.
/*
cc_test {
  name: "CtsPerfettoTestCases",
  srcs: [
    "src/base/android_task_runner.cc",
    "src/base/test/test_task_runner.cc",
    "src/ftrace_reader/cpu_reader.cc",
    "src/ftrace_reader/event_info.cc",
    "src/ftrace_reader/format_parser.cc",
    "src/ftrace_reader/ftrace_controller.cc",
    "src/ftrace_reader/ftrace_procfs.cc",
    "src/ftrace_reader/proto_translation_table.cc",
    "src/traced/probes/ftrace_producer.cc",
    "test/fake_consumer.cc",
    "test/end_to_end_integrationtest.cc",
    "test/end_to_end_integrationtest_cts.cc",
  ],
  static_libs: [
    "libgmock",
    "libgtest",
    "libgtest_main",
    "perfetto_src_tracing_ipc",
  ],
  shared_libs: [
    "libandroid",
    "liblog",
    "libprotobuf-cpp-lite",
  ],
  test_suites: [
    "cts",
    "vts",
    "general-tests",
  ],
  compile_multilib: "both",
  multilib: {
    lib32: {
        suffix: "32",
    },
    lib64: {
        suffix: "64",
    },
  },
  cflags: [
    "-DPERFETTO_BUILD_WITH_ANDROID",
  ],
}

cc_library_shared {
  name: "libperfettocts_jni",
  srcs: [
    "src/base/android_task_runner.cc",
    "src/base/test/test_task_runner.cc",
    "test/fake_producer.cc",
    "test/cts/producer/jni/fake_producer_jni.cc",
  ],
  static_libs: [
    "libprotobuf-cpp-lite",
    "perfetto_src_tracing_ipc",
  ],
  shared_libs: [
    "libandroid",
    "liblog",
    "libnativehelper_compat_libc++",
  ],
  compile_multilib: "both",
  stl: "libc++_static",
  cflags: [
    "-DPERFETTO_BUILD_WITH_ANDROID",
  ],
}
*/
