tidy_errors = [
  "performance-faster-string-find",
  "performance-for-range-copy",
  "performance-implicit-conversion-in-loop",
  "performance-move-const-arg",
  "performance-move-constructor-init",
  "performance-noexcept-move-constructor",
  "performance-unnecessary-value-param",
]

cc_defaults {
  name: "apex_flags_defaults",
  cflags: [
    "-Wall",
    "-Wextra",
    "-Werror",
    "-Wno-unused-parameter",

    // Some extra flags.
    "-fstrict-aliasing",
    "-Wredundant-decls",
    "-Wshadow",
    "-Wstrict-aliasing",
    "-Wthread-safety",
    "-Wthread-safety-negative",
    "-Wunreachable-code",
    "-Wunreachable-code-break",
    "-Wunreachable-code-return",
    "-Wunused",
    "-Wused-but-marked-unused",
  ],
  tidy: true,
  tidy_checks: tidy_errors,
  tidy_checks_as_errors: tidy_errors,
  tidy_flags: [
    "-format-style='file'",
    "--header-filter='system/apex/'",
  ],
}


cc_defaults {
  name: "apex_defaults",
  defaults: ["apex_flags_defaults"],
  shared_libs: [
    "libbase",
    "libcrypto",
    "libjsoncpp",
    "libprotobuf-cpp-full",
    "libziparchive",
    "libcutils",
  ],
  static_libs: [
    "lib_apex_session_state_proto",
    "lib_apex_manifest_proto",
  ],
  static: {
    whole_static_libs: ["libc++fs"],
  },
  shared: {
    static_libs: ["libc++fs"],
  },
}

aidl_interface {
  name: "apex_aidl_interface",
  srcs: [
    "aidl/android/apex/ApexInfo.aidl",
    "aidl/android/apex/ApexInfoList.aidl",
    "aidl/android/apex/ApexSessionInfo.aidl",
    "aidl/android/apex/IApexService.aidl",
  ],
  local_include_dir: "aidl",
  backend: {
      java: {
          sdk_version: "28",
      },
      ndk: {
          enabled: false,
      },
  },
}

cc_binary {
  name: "apexd",
  defaults: [
    "apex_defaults",
    "libapexservice-deps",
  ],
  srcs: [
    "apexd_main.cpp",
  ],
  static_libs: [
    "libapex",
    "libapexd",
    "libapexd_checkpoint_vold",
    "libapexservice",
    "libavb",
    "libdm",
    "libvold_binder",
  ],
  shared_libs: [
    "libselinux",
  ],
  init_rc: ["apexd.rc"],
  // Just like the init, apexd should be able to run without
  // any APEX activated. To do so, it uses the bootstrap linker
  // and the bootstrap bionic libraries.
  bootstrap: true,
  target: {
    android: {
      ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"],
    },
  },
}

cc_library_static {
  name: "libapexd",
  defaults: ["apex_defaults"],
  srcs: [
    "apex_database.cpp",
    "apexd.cpp",
    "apexd_loop.cpp",
    "apexd_prepostinstall.cpp",
    "apexd_private.cpp",
    "apexd_prop.cpp",
    "apexd_session.cpp"
  ],
  static_libs: [
    "libapex",
    "libavb",
    "libdm",
  ],
  whole_static_libs: ["com.android.sysprop.apex"],
  shared_libs: [
    "libselinux",
  ],
  export_include_dirs: ["."],
}

cc_library_static {
  name: "libapexd_checkpoint_vold",
  defaults: ["apex_defaults"],
  srcs: [ "apexd_checkpoint_vold.cpp" ],
  static_libs: [
    "libbase",
    "libutils",
    "libvold_binder",
  ],
  export_include_dirs: ["."],
}

cc_defaults {
  name: "libapexservice-deps",
  shared_libs: [
    "apex_aidl_interface-cpp",
    "libbinder",
    "libutils",
  ],
}
cc_library_static {
  name: "libapexservice",
  defaults: [
    "apex_defaults",
    "libapexservice-deps",
  ],
  srcs: ["apexservice.cpp"],
  static_libs: ["libapexd"],
}

cc_library_static {
  name: "libapex",
  defaults: ["apex_defaults"],
  srcs: [
    "apex_file.cpp",
    "apex_key.cpp",
    "apex_manifest.cpp",
    "apex_shim.cpp",
  ],
  static_libs: ["libavb"],
  host_supported: true,
  target: {
    darwin: {
      enabled: false,
    },
  },
  header_libs: [
    "libutils_headers",
  ],
  export_header_lib_headers: [
    "libutils_headers",
  ],
  product_variables: {
    debuggable: {
      cflags: ["-DDEBUG_ALLOW_BUNDLED_KEY"],
    },
  },
}

cc_test {
  name: "apex_database_test",
  defaults: ["apex_defaults"],
  srcs: ["apex_database_test.cpp"],
  host_supported: true,
  target: {
    darwin: {
      enabled: false,
    },
  },
  shared_libs: ["libbase"],
  test_suites: ["device-tests"],
}

cc_test {
  name: "apex_file_test",
  defaults: ["apex_defaults"],
  data: [
    ":apex.apexd_test",
    ":apex.apexd_test_no_inst_key",
    "apexd_testdata/com.android.apex.test_package.avbpubkey",
  ],
  srcs: [
    "apex_file_test.cpp",
  ],
  host_supported: true,
  target: {
    darwin: {
      enabled: false,
    },
  },
  static_libs: [
    "libapex",
    "libavb",
  ],
  shared_libs: ["libziparchive"],
  test_suites: ["device-tests"],
}

cc_test {
  name: "apex_manifest_test",
  defaults: ["apex_defaults"],
  srcs: [
    "apex_manifest_test.cpp",
  ],
  host_supported: true,
  target: {
    darwin: {
      enabled: false,
    },
  },
  static_libs: [
    "libapex",
    "libavb",
  ],
  test_suites: ["device-tests"],
}

genrule {
  // Generates an apex which has a different manifest outside the filesystem
  // image.
  name: "gen_bad_apexes",
  out: ["apex.apexd_test_manifest_mismatch.apex"],
  srcs: [":apex.apexd_test"],
  tools: ["soong_zip", "zipalign"],
  cmd: "unzip -q $(in) -d $(genDir) && " +
       "sed -i -e 's/\"version\": 1/\"version\": 137/' $(genDir)/apex_manifest.json && " +
       "$(location soong_zip) -d -C $(genDir) -D $(genDir) " +
       "-s apex_manifest.json -s apex_payload.img -s apex_pubkey " +
       "-o $(genDir)/unaligned.apex && " +
       "$(location zipalign) -f 4096 $(genDir)/unaligned.apex " +
       "$(genDir)/apex.apexd_test_manifest_mismatch.apex"
}

genrule {
  // Generates an apex with a corrupted filesystem image, which should cause
  // dm-verity verification to fail
  name: "gen_corrupt_apex",
  out: ["apex.apexd_test_corrupt_apex.apex"],
  srcs: [":apex.apexd_test"],
  tools: ["soong_zip", "zipalign"],
  cmd: "unzip -q $(in) -d $(genDir) && " +
       "dd if=/dev/zero of=$(genDir)/apex_payload.img conv=notrunc bs=1024 seek=16 count=1 && " +
       "$(location soong_zip) -d -C $(genDir) -D $(genDir) " +
       "-s apex_manifest.json -s apex_payload.img -s apex_pubkey " +
       "-o $(genDir)/unaligned.apex && " +
       "$(location zipalign) -f 4096 $(genDir)/unaligned.apex " +
       "$(genDir)/apex.apexd_test_corrupt_apex.apex"
}

cc_test {
  name: "apexservice_test",
  defaults: ["apex_defaults"],
  cflags: [
    // Otherwise libgmock won't compile.
    "-Wno-used-but-marked-unused",
  ],
  data: [
    ":apex.apexd_test",
    ":apex.apexd_test_different_app",
    ":apex.apexd_test_v2",
    ":apex.apexd_test_no_inst_key",
    ":apex.apexd_test_preinstall",
    ":apex.apexd_test_postinstall",
    ":apex.apexd_test_prepostinstall.fail",
    ":gen_bad_apexes",
    ":gen_corrupt_apex",
    ":com.android.apex.cts.shim.v1_prebuilt",
    ":com.android.apex.cts.shim.v2_prebuilt",
    ":com.android.apex.cts.shim.v2_wrong_sha_prebuilt",
    ":com.android.apex.cts.shim.v2_additional_file_prebuilt",
    ":com.android.apex.cts.shim.v2_additional_folder_prebuilt",
    ":com.android.apex.cts.shim.v2_with_pre_install_hook_prebuilt",
    ":com.android.apex.cts.shim.v2_with_post_install_hook_prebuilt",
  ],
  srcs: ["apexservice_test.cpp"],
  host_supported: false,
  compile_multilib: "first",
  static_libs: [
    "apex_aidl_interface-cpp",
    "libapex",
    "libapexd",
    "libavb",
    "libdm",
    "libgmock",
    "libvold_binder",
  ],
  shared_libs: [
    "libbinder",
    "libselinux",
    "libutils",
  ],
  test_suites: ["device-tests"],
  test_config: "apexservice_test_config.xml",
}

