/*
 * Copyright (C) 2024 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: ["external_mesa3d_license"],
}

cc_library_headers {
    name: "mesa_gfxstream_guest_android_headers",
    vendor: true,
    export_include_dirs: [
        "include",
    ],
}

cc_defaults {
    name: "mesa_gfxstream_guest_android_defaults",
    defaults: [
        "mesa_gfxstream_guest_cc_defaults",
    ],
    export_include_dirs: [
        "include",
    ],
    local_include_dirs: [
        ".",
        "include",
    ],
}

cc_library_static {
    name: "mesa_gfxstream_guest_android",
    defaults: [
        "mesa_gfxstream_guest_android_defaults",
        "mesa_platform_virtgpu_defaults",
    ],
    header_libs: [
        "mesa_common_headers",
    ],
    shared_libs: [
        "libutils",
    ],
    static_libs: [
        "mesa_util",
    ],
    target: {
        android: {
            header_libs: [
                "libnativebase_headers",
                "libgralloc_cb.ranchu",
                "minigbm_headers",
            ],
            shared_libs: [
                "libnativewindow",
            ],
            srcs: [
                "ANativeWindowAndroid.cpp",
                "GfxStreamGralloc.cpp",
                "GrallocGoldfish.cpp",
                "GrallocMinigbm.cpp",
            ],
        },
        host: {
            srcs: [
                "ANativeWindowEmulated.cpp",
                "GrallocEmulated.cpp",
            ],
        },
    },
}
