// 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",

        "packagemanager_aidl-cpp",

        // 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.
        "packagemanager_aidl-cpp",
    ],
    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: [],
}
