// Copyright (C) 2018 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.

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

filegroup {
    name: "iorap-aidl",
    srcs: [
        // note: using **/* doesn't work, so list each file one by one:
        // see also b/70046217

        // note: list only 'interface' aidl files, otherwise
        // aidl generates an error "Refusing to generate code with unstructured parcelables."
        "binder/com/google/android/startop/iorap/IIorap.aidl",
        "binder/com/google/android/startop/iorap/ITaskListener.aidl",
    ],
    path: "binder",
}

cc_defaults {
    name: "iorap-default-flags",

    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
        "-Wno-missing-field-initializers",
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
    ],

    local_include_dirs: [
        "include",
        "src",
    ],
    // TODO: shouldn't need this but there's a soong/cmake generator bug.
    export_include_dirs: [
        "include",
        "src",
    ],

    /*
    TODO: Header refactoring cleanup:

    Option 1): Move src/$component/file_name.h to src/$component/include/$component/file_name.h
    Option 2): Symlink src/$component/include/$component to src/$component

    Set export_include_dirs to '$component/include' for that component.

    Also delete the 'include' directory unless we have code other non-iorap
    targets are allowed to reference.
    */

    clang: true,
    static_libs: ["libc++fs"],
    shared_libs: ["libbase"],

    // build all ioraps for host.
    host_supported: true,
    target: {
        darwin: {
            enabled: false,
        }
    },
}

cc_defaults {
    name: "iorap-default-dependencies",

    static_libs: [
        "libiorap-binder",
        "libplatformprotos",  // android framework C++ protos.
    ],
    shared_libs: [
        "libbinder",
        "libutils",
        "libcutils", // tracing.

        "libfruit",  // dependency injection.
        // TODO: remove these annoying dependencies by hiding them in the main library code.

        // dependency for libplatformprotos
        // "libprotobuf-cpp-lite",

        // libplatformprotos has an indirect dependency on full, causing compilation/linking
        // errors if we use lite
        "libprotobuf-cpp-full",

        // phenotype flags support
        "server_configurable_flags",
    ],

    // srcs: [":libprotobuf-internal-protos"],
    // commented out because it causes compilation errors
    // TODO: can we use the lite library somehow?

    header_libs: ["librxcpp"],
}

cc_library_static {
    name: "libiorap-binder",
    defaults: ["iorap-default-flags"],

    srcs: [
        ":iorap-aidl",
        "src/binder/iiorap_impl.cc",
        "src/binder/package_change_observer.cc",
        "src/binder/package_manager_remote.cc",
        "src/binder/package_version_map.cc",
    ],
    shared_libs: [
        "libbinder",
        "libutils",
        "libcutils", // tracing.
    ],
    aidl: {
        local_include_dirs: ["binder"],
        include_dirs: ["frameworks/native/aidl/binder"],
        export_aidl_headers: true,
    },

    static_libs: [
       "libplatformprotos",  // android framework C++ protos.
    ],
}

cc_defaults {
    name: "libiorap-manager-default-dependencies",
    static_libs: [
        "libiorap-binder",
        "libiorap-perfetto",
        "libiorap-prefetcher",
        "libiorap-db",
        "libiorap-maintenance",
    ],
    defaults: [
        "libiorap-perfetto-default-dependencies",
        "libiorap-prefetcher-default-dependencies",
        "libiorap-db-default-dependencies",
    ],
    // Users of 'libiorap-manager' also need to include these defaults to avoid
    // linking errors.
}

cc_library_static {
    name: "libiorap-manager",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-manager-default-dependencies",
    ],

    srcs: [
        "src/manager/**/*.cc",
    ],
}

cc_binary {
    name: "iorapd",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-manager-default-dependencies",
    ],
    srcs: [
        "src/iorapd/main.cc",
    ],
    static_libs: [
        "libiorap-manager",
    ],
    init_rc: [
        "iorapd.rc",
    ],
    // iorapd fork+execs into iorap.prefetcherd and iorap.cmd.compiler
    // maintenance used by tests
    required: [
        "iorap.cmd.compiler",
        "iorap.prefetcherd",
        "iorap.cmd.maintenance",
    ],
}

cc_library_static {
    name: "libiorap-inode2filename",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
    ],

    srcs: [
        "src/inode2filename/**/*.cc",
    ],
}

cc_binary {
  name: "iorap.inode2filename",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
  ],
  srcs: [
      "src/inode2filename/**/*.cc",
  ],
  // Easier debugging. TODO: make a separate debug config.
  // XX: Using -O0 seems to completely hide some errors.
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_INODE2FILENAME_MAIN=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,
    // Pretty print when ubsan detects a problem.
    // Otherwise it just calls abort().

/*
    diag: {
      undefined: true,
    },
    */ // don't use the diag when you want it to crash.
  },
}

cc_test {
    name: "iorapd-tests",
    test_suites: ["device-tests"],
    gtest: false,  // we use gtest *and* gmock.
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-compiler-default-dependencies",
    ],
    srcs: [
        "tests/src/binder/*.cc",
        "tests/src/inode2filename/*.cc",
        "tests/src/log/*.cc",
        "tests/src/tmp/*.cc",
    ],
    data: [
        "tests/src/compiler/testdata/*",
    ],
    cflags: ["-O2", "-UNDEBUG"],

    // TODO:  we should probably have per-component tests.
    static_libs: ["libgmock_main", "libgmock", "libgtest", "libiorap-inode2filename"],

}


cc_test_host {
    name: "iorapd-host-tests",
    gtest: false,  // we use gtest *and* gmock.
    target: {
        darwin: {
            enabled: false,
        }
    },
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-compiler-default-dependencies",
        "libiorap-maintenance-default-dependencies",
    ],
    srcs: [
        "tests/src/compiler/*.cc",
        "tests/src/db/*.cc",
        "tests/src/maintenance/*.cc",
    ],
    data: [
        "tests/src/compiler/testdata/*",
        "tests/src/maintenance/testdata/*",
    ],
    cflags: ["-O2", "-UNDEBUG"],

    // TODO:  we should probably have per-component tests.
    static_libs: [
    "libgmock_main",
    "libgmock",
    "libgtest",
    "libiorap-compiler",
    "libiorap-maintenance",
    ],
}

filegroup {
  name: "libiorap-perfetto-protos",
  srcs: [
  ],
}

// Static libraries cannot export their dependencies,
// the current convention is to use an extra 'defaults' rule for statics
// to bring in all the dependencies.
cc_defaults {
    name: "libiorap-perfetto-default-dependencies",

    // Some of the libperfetto header typedefs leak out into iorap.
    // Avoids compilation #include errors.
    // TODO: clean this up, the headers should not leak out (maybe all we need is a PerfettoConsumer
    // forward declaration?).
    include_dirs: ["external/perfetto/include"],
    // Various perfetto protos are used directly by iorap.
    //
    // Furthermore, we need this regardless to avoid linking errors when linking
    // libiorap-perfetto.a into the main cc_binary rule.
    static_libs: [
        "perfetto_trace_protos",
    ],

    shared_libs: [
        // Not part of true dependencies: Users of 'libiorap-perfetto' do not link against
        // libperfetto.
        // We only put this to avoid linking errors when building iorapd.
        // TODO: can we split iorapd into libiorapd-main that doesn't link against libperfetto?
        // only the last cc_binary should need the full transitive closure of the dependency graph.
        "libperfetto",
    ]
}

cc_library_static {
    name: "libiorap-perfetto",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-perfetto-default-dependencies",
    ],

    srcs: [
        "src/perfetto/**/*.cc",
    ],
}

cc_binary {
  name: "iorap.cmd.perfetto",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
  ],
  shared_libs: ["libperfetto"],
  include_dirs: ["external/perfetto/include"],
  srcs: [
      "src/perfetto/**/*.cc",
  ],
  // Easier debugging. TODO: make a separate debug config.
  // XX: Using -O0 seems to completely hide some errors.
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_PERFETTO_MAIN=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,
    // Pretty print when ubsan detects a problem.
    // Otherwise it just calls abort().

/*
    diag: {
      undefined: true,
    },
    */ // don't use the diag when you want it to crash.
  },

  static_libs: [
    "perfetto_trace_protos",
  ],
}

// Static libraries cannot export their dependencies,
// the current convention is to use an extra 'defaults' rule for statics
// to bring in all the dependencies.
cc_defaults {
    name: "libiorap-compiler-default-dependencies",

    defaults: [
        // use the perfetto namespace
        "libiorap-perfetto-default-dependencies",
        // use the inode2filename namespace
        "libiorap-serialize-default-dependencies",  // uses but does not re-export serialize.
    ],

    // Some of the libperfetto header typedefs leak out into iorap.
    // Avoids compilation #include errors.
    // TODO: clean this up, the headers should not leak out (maybe all we need is a PerfettoConsumer
    // forward declaration?).
    include_dirs: [],
    // Various perfetto protos are used directly by iorap.
    //
    // Furthermore, we need this regardless to avoid linking errors when linking
    // libiorap-compiler.a into the main cc_binary rule.
    static_libs: [
        "libiorap-perfetto",
        // "perfetto_trace_protos",
        "libiorap-inode2filename",
        "libiorap-serialize",
    ],

    shared_libs: [
        // Not part of true dependencies: Users of 'libiorap-compiler' do not link against
        // libperfetto.
        // We only put this to avoid linking errors when building iorapd.
        // TODO: can we split iorapd into libiorapd-main that doesn't link against libperfetto?
        // only the last cc_binary should need the full transitive closure of the dependency graph.
    ]
}

cc_library_static {
    name: "libiorap-compiler",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-compiler-default-dependencies",
    ],

    srcs: [
        "src/compiler/**/*.cc",
    ],
}

cc_binary {
  name: "iorap.cmd.compiler",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
      "libiorap-compiler-default-dependencies",
  ],
  shared_libs: [],
  include_dirs: [],
  srcs: [
      "src/compiler/**/*.cc",
  ],
  // Easier debugging. TODO: make a separate debug config.
  // XX: Using -O0 seems to completely hide some errors.
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_COMPILER_MAIN=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,
    // Pretty print when ubsan detects a problem.
    // Otherwise it just calls abort().

/*
    diag: {
      undefined: true,
    },
    */ // don't use the diag when you want it to crash.
  },

  static_libs: [
  ],
  required: [
      "iorap.inode2filename",
  ],
}

// Static libraries cannot export their dependencies,
// the current convention is to use an extra 'defaults' rule for statics
// to bring in all the dependencies.
cc_defaults {
    name: "libiorap-serialize-default-dependencies",

    defaults: [
    ],

    include_dirs: [],
    static_libs: [
    ],
    shared_libs: [
    ],
    // Above intentionally left empty.
    srcs: [
        "src/serialize/**/*.proto",
    ],
}

cc_library_static {
    name: "libiorap-serialize",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-serialize-default-dependencies",
    ],

    srcs: [
        "src/serialize/**/*.cc",
    ],
}


// Static libraries cannot export their dependencies,
// the current convention is to use an extra 'defaults' rule for statics
// to bring in all the dependencies.
cc_defaults {
    name: "libiorap-prefetcher-default-dependencies",

    defaults: [
    ],

    include_dirs: [],
    static_libs: [
        "libiorap-serialize",
    ],
    shared_libs: [
        "libminijail",
    ],

    // disable mac builds because libminijail doesn't work there
    target: {
        darwin: {
            enabled: false,
        },
    },
}

cc_library_static {
    name: "libiorap-prefetcher",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-prefetcher-default-dependencies",
        "libiorap-serialize-default-dependencies",
    ],

    srcs: [
        "src/prefetcher/**/*.cc",
    ],
}

cc_binary {
  name: "iorap.prefetcherd",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
      "libiorap-prefetcher-default-dependencies",
      "libiorap-serialize-default-dependencies",
  ],
  shared_libs: [],
  include_dirs: [],
  srcs: [
      "src/prefetcher/**/*.cc",
  ],
  // Easier debugging. TODO: make a separate debug config.
  // XX: Using -O0 seems to completely hide some errors.
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_PREFETCHER_MAIN=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,
    // Pretty print when ubsan detects a problem.
    // Otherwise it just calls abort().

/*
    diag: {
      undefined: true,
    },
    */ // don't use the diag when you want it to crash.
  },

  static_libs: [
  ],
}

cc_binary {
  name: "iorap.cmd.prefetcher.client",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
      "libiorap-prefetcher-default-dependencies",
      "libiorap-serialize-default-dependencies",
  ],
  shared_libs: [],
  include_dirs: [],
  srcs: [
      "src/prefetcher/**/*.cc",
  ],
  // Easier debugging. TODO: make a separate debug config.
  // XX: Using -O0 seems to completely hide some errors.
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_PREFETCHER_MAIN_CLIENT=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,
    // Pretty print when ubsan detects a problem.
    // Otherwise it just calls abort().

/*
    diag: {
      undefined: true,
    },
    */ // don't use the diag when you want it to crash.
  },

  static_libs: [
  ],
}

prebuilt_etc {
  name: "iorap.prefetcherd.policy",
  sub_dir: "seccomp_policy",
  arch: {
    arm: {
      src: "seccomp_policy/prefetcherd.arm.policy"
    },
    arm64: {
      src: "seccomp_policy/prefetcherd.arm64.policy"
    },
    x86: {
      src: "seccomp_policy/prefetcherd.x86.policy"
    },
    x86_64: {
      src: "seccomp_policy/prefetcherd.x86_64.policy"
    },
  },
  required: [
      "crash_dump.policy",
  ],
}

// Static libraries cannot export their dependencies,
// the current convention is to use an extra 'defaults' rule for statics
// to bring in all the dependencies.
cc_defaults {
    name: "libiorap-db-default-dependencies",

    defaults: [
    ],

    include_dirs: [],
    static_libs: [
    ],
    shared_libs: [
        "libsqlite",
    ],
}

cc_library_static {
    name: "libiorap-db",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-db-default-dependencies",
    ],

    srcs: [
        "src/db/**/*.cc",
    ],
}

cc_binary {
  name: "iorap.cmd.db",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
      "libiorap-db-default-dependencies",
  ],
  shared_libs: [],
  include_dirs: [],
  srcs: [
      "src/db/**/*.cc",
  ],
  // Easier debugging. TODO: make a separate debug config.
  // XX: Using -O0 seems to completely hide some errors.
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_DB_MAIN=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,
    // Pretty print when ubsan detects a problem.
    // Otherwise it just calls abort().

/*
    diag: {
      undefined: true,
    },
    */ // don't use the diag when you want it to crash.
  },

  static_libs: [
  ],
}

cc_defaults {
    name: "libiorap-maintenance-default-dependencies",

    defaults: [
        "libiorap-compiler-default-dependencies",
        "libiorap-db-default-dependencies",
        "libiorap-prefetcher-default-dependencies",
    ],

    include_dirs: [],

    static_libs: [
        "libiorap-binder",
        "libiorap-compiler",
        "libiorap-db",
        "libiorap-prefetcher",
    ],

    shared_libs: []
}

cc_library_static {
    name: "libiorap-maintenance",
    defaults: [
        "iorap-default-flags",
        "iorap-default-dependencies",
        "libiorap-maintenance-default-dependencies",
    ],

    srcs: [
        "src/maintenance/*.cc",
    ],
}

cc_binary {
  name: "iorap.cmd.maintenance",
  defaults: [
      "iorap-default-flags",
      "iorap-default-dependencies",
      "libiorap-maintenance-default-dependencies",
  ],
  shared_libs: [],
  include_dirs: [],
  srcs: [
      "src/maintenance/*.cc",
  ],
  cflags: ["-O2", "-UNDEBUG", "-DIORAP_MAINTENANCE_MAIN=1"],
  sanitize: {
    undefined: true,
    all_undefined: true,

    diag: {
      undefined: true,
    },
  },

  static_libs: [],
}
