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

    export_shared_lib_headers: [
        "packagemanager_aidl-cpp",
    ],
}

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.
    ],

    export_shared_lib_headers: [
        "packagemanager_aidl-cpp",
    ],
}

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: [],
}
