/*
 * Copyright (C) 2022 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 {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_av_camera_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_av_camera_license"],
}

cc_defaults {
    name: "camera_defaults",
    static_libs: [
        "libcamera_client",
        "libbinder_random_parcel",
    ],
    shared_libs: [
        "camera_platform_flags_c_lib",
        "libbase",
        "libcutils",
        "libutils",
        "liblog",
        "libbinder",
        "libgui",
        "libcamera_metadata",
        "libnativewindow",
    ],
    header_libs: [
        "libbinder_headers",
    ],
    fuzz_config: {
        cc: [
            "android-camera-fwk-eng@google.com",
        ],
        componentid: 41727,
        hotlists: [
            "4593311",
        ],
        description: "The fuzzer targets the APIs of libcamera_client",
        vector: "local_no_privileges_required",
        service_privilege: "privileged",
        users: "multi_user",
        fuzzed_code_usage: "shipped",
    },
}

cc_fuzz {
    name: "camera_fuzzer",
    srcs: [
        "camera_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_c2CaptureRequest_fuzzer",
    srcs: [
        "camera_c2CaptureRequest_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_c2ConcurrentCamera_fuzzer",
    srcs: [
        "camera_c2ConcurrentCamera_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_c2SubmitInfo_fuzzer",
    srcs: [
        "camera_c2SubmitInfo_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_c2SessionConfiguration_fuzzer",
    srcs: [
        "camera_c2SessionConfiguration_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_c2OutputConfiguration_fuzzer",
    srcs: [
        "camera_c2OutputConfiguration_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_vendorTagDescriptor_fuzzer",
    srcs: [
        "camera_vendorTagDescriptor_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
    include_dirs: [
        "system/media/camera/tests",
        "system/media/private/camera/include",
    ],
}

cc_fuzz {
    name: "camera_Parameters_fuzzer",
    srcs: [
        "camera_Parameters_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_SessionStats_fuzzer",
    srcs: [
        "camera_SessionStats_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_captureResult_fuzzer",
    srcs: [
        "camera_captureResult_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_utils_fuzzer",
    srcs: [
        "camera_utils_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}

cc_fuzz {
    name: "camera_metadata_fuzzer",
    srcs: [
        "camera_metadata_fuzzer.cpp",
    ],
    defaults: [
        "camera_defaults",
    ],
}
