cc_defaults { name: "installd_defaults", cflags: [ "-Wall", "-Werror", "-Wextra", "-Wunreachable-code", "-Wunreachable-code-break", "-Wunreachable-code-return", ], srcs: [ "CacheItem.cpp", "CacheTracker.cpp", "InstalldNativeService.cpp", "QuotaUtils.cpp", "dexopt.cpp", "globals.cpp", "utils.cpp", "utils_default.cpp", "view_compiler.cpp", ":installd_aidl", ], header_libs: [ "dex2oat_headers", ], shared_libs: [ "libbase", "libbinder", "libcrypto", "libcutils", "liblog", "liblogwrap", "libprocessgroup", "libselinux", "libutils", "server_configurable_flags", ], product_variables: { arc: { exclude_srcs: [ "QuotaUtils.cpp", ], static_libs: [ "libarcdiskquota", "arc_services_aidl", ], cflags: [ "-DUSE_ARC", ], }, }, clang: true, tidy: true, tidy_checks: [ "-*", "clang-analyzer-security*", "cert-*", "-cert-err58-cpp", ], tidy_flags: [ "-warnings-as-errors=clang-analyzer-security*,cert-*" ], } // // Static library used in testing and executable // cc_library_static { name: "libinstalld", defaults: ["installd_defaults"], export_include_dirs: ["."], aidl: { export_aidl_headers: true, }, product_variables: { arc: { exclude_srcs: [ "QuotaUtils.cpp", ], static_libs: [ "libarcdiskquota", "arc_services_aidl", ], cflags: [ "-DUSE_ARC", ], }, }, } cc_library_headers { name: "libinstalld_headers", export_include_dirs: ["."], } // // Executable // cc_binary { name: "installd", defaults: ["installd_defaults"], srcs: ["installd.cpp"], static_libs: ["libdiskusage"], init_rc: ["installd.rc"], product_variables: { arc: { exclude_srcs: [ "QuotaUtils.cpp", ], static_libs: [ "libarcdiskquota", "arc_services_aidl", ], cflags: [ "-DUSE_ARC", ], }, }, // Needs to be wherever installd is as it's execed by // installd. required: [ "migrate_legacy_obb_data.sh" ], } // OTA chroot tool cc_binary { name: "otapreopt_chroot", cflags: [ "-Wall", "-Werror", ], clang: true, srcs: [ "otapreopt_chroot.cpp", "otapreopt_utils.cpp", ], shared_libs: [ "libbase", "libbinder", "liblog", "libprotobuf-cpp-full", "libselinux", "libutils", "libziparchive", ], static_libs: [ "libapex", "libapexd", "lib_apex_manifest_proto", "libavb", "libdm", "libvold_binder", ], } filegroup { name: "installd_aidl", srcs: [ "binder/android/os/IInstalld.aidl", ], } // // Static library for otapreopt used in testing // cc_library_static { name: "libotapreoptparameters", cflags: [ "-Wall", "-Werror" ], srcs: ["otapreopt_parameters.cpp"], export_include_dirs: ["."], shared_libs: [ "libbase", "libcutils", "liblog", "libprocessgroup", "libutils", ], } // // OTA Executable // cc_binary { name: "otapreopt", cflags: [ "-Wall", "-Werror" ], srcs: [ "dexopt.cpp", "globals.cpp", "otapreopt.cpp", "otapreopt_utils.cpp", "utils.cpp", "utils_default.cpp", "view_compiler.cpp", ], header_libs: ["dex2oat_headers"], static_libs: [ "libartimagevalues", "libdiskusage", "libotapreoptparameters", ], shared_libs: [ "libbase", "libcrypto", "libcutils", "liblog", "liblogwrap", "libprocessgroup", "libselinux", "libutils", "server_configurable_flags", ], } // OTA slot script sh_binary { name: "otapreopt_slot", src: "otapreopt_slot.sh", init_rc: ["otapreopt.rc"], } // OTA postinstall script sh_binary { name: "otapreopt_script", src: "otapreopt_script.sh", // Let this depend on otapreopt, the chroot tool and the slot script, // so we just have to mention one in a configuration. required: [ "otapreopt", "otapreopt_chroot", "otapreopt_slot", ], } // Script to migrate legacy obb data. sh_binary { name: "migrate_legacy_obb_data.sh", src: "migrate_legacy_obb_data.sh" }