// Copyright 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
    default_applicable_licenses: [
        "frameworks_native_license",
        "adobe_hdr_gain_map_license",
    ],
}

cc_library {
    name: "libultrahdr-deprecated",
    enabled: false,
    host_supported: true,
    vendor_available: true,
    export_include_dirs: ["include"],
    local_include_dirs: ["include"],

    srcs: [
        "icc.cpp",
        "jpegr.cpp",
        "gainmapmath.cpp",
        "jpegrutils.cpp",
        "multipictureformat.cpp",
    ],

    shared_libs: [
        "libimage_io",
        "libjpeg",
        "libjpegencoder",
        "libjpegdecoder",
        "liblog",
        "libutils",
    ],
}

cc_library {
    name: "libjpegencoder-deprecated",
    enabled: false,
    host_supported: true,
    vendor_available: true,

    shared_libs: [
        "libjpeg",
        "liblog",
        "libutils",
    ],

    export_include_dirs: ["include"],

    srcs: [
        "jpegencoderhelper.cpp",
    ],
}

cc_library {
    name: "libjpegdecoder-deprecated",
    enabled: false,
    host_supported: true,
    vendor_available: true,

    shared_libs: [
        "libjpeg",
        "liblog",
        "libutils",
    ],

    export_include_dirs: ["include"],

    srcs: [
        "jpegdecoderhelper.cpp",
    ],
}
