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

cc_defaults {
    name: "libprocessgroup_defaults",
    cpp_std: "gnu++20",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wexit-time-destructors",
        "-Wno-unused-parameter",
    ],
}

cc_library_headers {
    name: "libprocessgroup_headers",
    vendor_available: true,
    product_available: true,
    ramdisk_available: true,
    vendor_ramdisk_available: true,
    recovery_available: true,
    host_supported: true,
    native_bridge_supported: true,
    export_include_dirs: ["include"],
    target: {
        linux_bionic: {
            enabled: true,
        },
        windows: {
            enabled: true,
        },
    },
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    min_sdk_version: "29",
}

cc_library {
    srcs: [
        "cgroup_map.cpp",
        "processgroup.cpp",
        "sched_policy.cpp",
        "task_profiles.cpp",
    ],
    name: "libprocessgroup",
    host_supported: true,
    native_bridge_supported: true,
    ramdisk_available: true,
    vendor_ramdisk_available: true,
    recovery_available: true,
    vendor_available: true,
    product_available: true,
    vndk: {
        enabled: true,
        support_system_process: true,
    },
    shared_libs: [
        "libbase",
        "libcgrouprc",
    ],
    static_libs: [
        "libjsoncpp",
    ],
    // for cutils/android_filesystem_config.h
    header_libs: [
        "libcutils_headers",
        "libprocessgroup_headers",
    ],
    export_include_dirs: ["include"],
    export_header_lib_headers: [
        "libprocessgroup_headers",
    ],
    defaults: ["libprocessgroup_defaults"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    min_sdk_version: "29",
}

cc_test {
    name: "task_profiles_test",
    host_supported: true,
    defaults: ["libprocessgroup_defaults"],
    srcs: [
        "task_profiles_test.cpp",
    ],
    header_libs: [
        "libcutils_headers",
        "libprocessgroup_headers",
    ],
    shared_libs: [
        "libbase",
        "libcgrouprc",
        "libprocessgroup",
    ],
    static_libs: [
        "libgmock",
    ],
}
