// Copyright 2010 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.
cc_library_headers {
    name: "libgui_headers",
    vendor_available: true,
    export_include_dirs: ["include"],

    // we must build this module to get the required header as that is generated
    export_shared_lib_headers: [
        "android.hidl.token@1.0-utils",
        "android.hardware.graphics.bufferqueue@1.0",
        "android.hardware.graphics.bufferqueue@2.0",
    ],
    shared_libs: [
        "android.hidl.token@1.0-utils",
        "android.hardware.graphics.bufferqueue@1.0",
        "android.hardware.graphics.bufferqueue@2.0",
    ],
    min_sdk_version: "29",
}

cc_library_shared {
    name: "libgui",
    vendor_available: false,
    vndk: {
        enabled: true,
    },
    double_loadable: true,

    defaults: ["libgui_bufferqueue-defaults"],

    srcs: [
        ":framework_native_aidl",
        ":libgui_bufferqueue_sources",

        "BitTube.cpp",
        "BLASTBufferQueue.cpp",
        "BufferHubConsumer.cpp",
        "BufferHubProducer.cpp",
        "BufferItemConsumer.cpp",
        "ConsumerBase.cpp",
        "CpuConsumer.cpp",
        "DebugEGLImageTracker.cpp",
        "DisplayEventDispatcher.cpp",
        "DisplayEventReceiver.cpp",
        "GLConsumer.cpp",
        "GuiConfig.cpp",
        "IConsumerListener.cpp",
        "IDisplayEventConnection.cpp",
        "IGraphicBufferConsumer.cpp",
        "IGraphicBufferProducer.cpp",
        "IProducerListener.cpp",
        "IRegionSamplingListener.cpp",
        "ISurfaceComposer.cpp",
        "ISurfaceComposerClient.cpp",
        "ITransactionCompletedListener.cpp",
        "LayerDebugInfo.cpp",
        "LayerMetadata.cpp",
        "LayerState.cpp",
        "OccupancyTracker.cpp",
        "StreamSplitter.cpp",
        "Surface.cpp",
        "SurfaceControl.cpp",
        "SurfaceComposerClient.cpp",
        "SyncFeatures.cpp",
        "view/Surface.cpp",
        "bufferqueue/1.0/B2HProducerListener.cpp",
        "bufferqueue/1.0/H2BGraphicBufferProducer.cpp",
        "bufferqueue/2.0/B2HProducerListener.cpp",
        "bufferqueue/2.0/H2BGraphicBufferProducer.cpp",
    ],

    shared_libs: [
        "android.frameworks.bufferhub@1.0",
        "libbinder",
        "libbufferhub",
        "libbufferhubqueue", // TODO(b/70046255): Remove this once BufferHub is integrated into libgui.
        "libinput",
        "libpdx_default_transport",
    ],

    export_shared_lib_headers: [
        "libbinder",
    ],

    // bufferhub is not used when building libgui for vendors
    target: {
        vendor: {
            cflags: [
                "-DNO_BUFFERHUB",
                "-DNO_INPUT",
            ],
            exclude_srcs: [
                "BufferHubConsumer.cpp",
                "BufferHubProducer.cpp",
            ],
            exclude_shared_libs: [
                "android.frameworks.bufferhub@1.0",
                "libbufferhub",
                "libbufferhubqueue",
                "libinput",
                "libpdx_default_transport",
            ],
        },
    },

    header_libs: [
        "libdvr_headers",
        "libpdx_headers",
    ],

    aidl: {
        export_aidl_headers: true,
    }
}

// Used by media codec services exclusively as a static lib for
// core bufferqueue support only.
cc_library_static {
    name: "libgui_bufferqueue_static",
    vendor_available: true,
    apex_available: [
        "//apex_available:platform",
        "com.android.media.swcodec",
    ],
    min_sdk_version: "29",

    cflags: [
        "-DNO_BUFFERHUB",
        "-DNO_BINDER",
    ],

    defaults: ["libgui_bufferqueue-defaults"],

    srcs: [
        ":libgui_bufferqueue_sources",
    ],
}

filegroup {
    name: "libgui_bufferqueue_sources",
    srcs: [
        "BufferItem.cpp",
        "BufferQueue.cpp",
        "BufferQueueConsumer.cpp",
        "BufferQueueCore.cpp",
        "BufferQueueProducer.cpp",
        "BufferQueueThreadState.cpp",
        "BufferSlot.cpp",
        "FrameTimestamps.cpp",
        "GLConsumerUtils.cpp",
        "HdrMetadata.cpp",
        "QueueBufferInputOutput.cpp",
        "bufferqueue/1.0/Conversion.cpp",
        "bufferqueue/1.0/H2BProducerListener.cpp",
        "bufferqueue/1.0/WProducerListener.cpp",
        "bufferqueue/2.0/B2HGraphicBufferProducer.cpp",
        "bufferqueue/2.0/H2BProducerListener.cpp",
        "bufferqueue/2.0/types.cpp",
    ],
}

// Common build config shared by libgui and libgui_bufferqueue_static.
cc_defaults {
    name: "libgui_bufferqueue-defaults",

    clang: true,
    cflags: [
        "-Wall",
        "-Werror",
    ],

    cppflags: [
        "-Wextra",
        "-DDEBUG_ONLY_CODE=0",
    ],

    product_variables: {
        eng: {
            cppflags: [
                "-UDEBUG_ONLY_CODE",
                "-DDEBUG_ONLY_CODE=1",
            ],
        },
    },

    whole_static_libs: [
        "LibGuiProperties",
    ],

    shared_libs: [
        "android.hardware.graphics.bufferqueue@1.0",
        "android.hardware.graphics.bufferqueue@2.0",
        "android.hardware.graphics.common@1.1",
        "android.hardware.graphics.common@1.2",
        "android.hidl.token@1.0-utils",
        "libbase",
        "libcutils",
        "libEGL",
        "libGLESv2",
        "libhidlbase",
        "liblog",
        "libnativewindow",
        "libsync",
        "libui",
        "libutils",
        "libvndksupport",
    ],

    static_libs: [
        "libbinderthreadstateutils",
    ],

    header_libs: [
        "libgui_headers",
        "libnativebase_headers",
    ],

    export_shared_lib_headers: [
        "libEGL",
        "libnativewindow",
        "libui",
        "android.hardware.graphics.bufferqueue@1.0",
        "android.hardware.graphics.bufferqueue@2.0",
        "android.hardware.graphics.common@1.1",
        "android.hardware.graphics.common@1.2",
        "android.hidl.token@1.0-utils",
    ],

    export_header_lib_headers: [
        "libgui_headers",
    ],

    export_include_dirs: [
        "include",
    ],
}

// GMocks for use by external code
cc_library_static {
    name: "libgui_mocks",
    vendor_available: false,

    defaults: ["libgui_bufferqueue-defaults"],
    static_libs: [
        "libgtest",
        "libgmock",
    ],

    srcs: [
        "mock/GraphicBufferConsumer.cpp",
        "mock/GraphicBufferProducer.cpp",
    ],
}

subdirs = ["tests"]
