// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    default_team: "trendy_team_android_developer_tools",
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "hardware_google_gfxstream_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    //   SPDX-license-identifier-BSD
    //   SPDX-license-identifier-ISC
    //   SPDX-license-identifier-MIT
    //   legacy_by_exception_only (by exception only)
    //   legacy_notice
    //   legacy_unencumbered
    default_applicable_licenses: ["hardware_google_gfxstream_license"],
}

cc_library_shared {
    name: "libgfxstream_backend",
    defaults: ["gfxstream_defaults"],
    vendor_available: true,
    cflags: [
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
        "-Wno-unused-function",
        "-Wno-unreachable-code-loop-increment",
    ],
    header_libs: [
        "gfxstream_opengl_headers",
        "gfxstream_vulkan_cereal_common",
    ],
    static_libs: [
        "gfxstream_base",
        "gfxstream_host_common",
        "gfxstream_gl_host_common",
        "gfxstream_apigen_codec_common",
        "gfxstream_gl_server",
        "gfxstream_gles1_dec",
        "gfxstream_gles2_dec",
        "gfxstream_glsnapshot",
        "gfxstream_magma_dec",
        "gfxstream_magma_server",
        "gfxstream_translator_glcommon",
        "gfxstream_translator_egl",
        "gfxstream_translator_glescm",
        "gfxstream_translator_glesv2",
        "gfxstream_vulkan_cereal_host",
        "gfxstream_vulkan_server",
        "gfxstream_renderControl_dec",
        "gfxstream_dispatch",
        "gfxstream_glm",
        "gfxstream_compressedTextures",
        "gfxstream_emulated_textures",
        "libgfxstream_etc",
    ],
    export_static_lib_headers: [
        "gfxstream_base",
        "gfxstream_gl_host_common",
        "gfxstream_gles2_dec",
        "gfxstream_glsnapshot",
        "gfxstream_magma_server",
        "gfxstream_vulkan_cereal_host",
    ],
    shared_libs: [
        "liblog", // gfxstream_base uses this via perfetto-libperfettobase
    ],
    export_include_dirs: [
        "include",
    ],
    srcs: [
        "Buffer.cpp",
        "BlobManager.cpp",
        "ChannelStream.cpp",
        "ColorBuffer.cpp",
        "DisplaySurface.cpp",
        "DisplaySurfaceUser.cpp",
        "Hwc2.cpp",
        "PostWorker.cpp",
        "PostWorkerGl.cpp",
        "ReadBuffer.cpp",
        "render_api.cpp",
        "RenderChannelImpl.cpp",
        "RenderThread.cpp",
        "RenderThreadInfo.cpp",
        "RenderThreadInfoGl.cpp",
        "RenderThreadInfoMagma.cpp",
        "RingStream.cpp",
        "SyncThread.cpp",
        "RenderControl.cpp",
        "RenderWindow.cpp",
        "RenderLibImpl.cpp",
        "RendererImpl.cpp",
        "FrameBuffer.cpp",
        "GfxStreamAgents.cpp",
        "virtio-gpu-gfxstream-renderer.cpp",
        "virtio-gpu-gfxstream-renderer-goldfish.cpp",
        "VirtioGpuTimelines.cpp",
        "VsyncThread.cpp",
    ],
    host_ldlibs: [
        "-lpthread",
    ],
    target: {
        host: {
            srcs: ["NativeSubWindow_x11.cpp"],
        },
        android: {
            srcs: ["NativeSubWindow_android.cpp"],
        },
    },
}

cc_test_library {
    name: "gfxstream_backend_test_support",
    defaults: ["gfxstream_defaults"],
    srcs: [
        "tests/GLSnapshotTesting.cpp",
        "tests/GLTestUtils.cpp",
        "tests/GLSnapshotTestDispatch.cpp",
        "tests/GLSnapshotTestStateUtils.cpp",
        "tests/OpenGLTestContext.cpp",
        "tests/SampleApplication.cpp",
        "tests/ShaderUtils.cpp",
    ],
    header_libs: [
        "gfxstream_opengl_headers",
        "gfxstream_vulkan_cereal_common",
    ],
    shared_libs: [
        "libbase",
        "libgfxstream_backend",
    ],
    export_static_lib_headers: [
        "gfxstream_oswindow_test_support",
    ],
    static_libs: [
        "gfxstream_apigen_codec_common",
        "gfxstream_base",
        "gfxstream_base_test_support",
        "gfxstream_host_common_test_support",
        "gfxstream_snapshot",
        "gfxstream_oswindow_test_support",
        "libgmock",
        "liblz4",
    ],
    export_include_dirs: ["tests"],
}

cc_library {
    name: "libgfxstream_test_image_utils",
    defaults: ["gfxstream_defaults"],
    shared_libs: [
        "libbase",
    ],
    static_libs: [
        "libgfxstream_stb",
    ],
    srcs: [
        "tests/ImageUtils.cpp",
    ],
}

// Run with `atest --host gfxstream_compositorvk_test`
cc_test_host {
    name: "gfxstream_compositorvk_test",
    defaults: ["gfxstream_defaults"],
    header_libs: [
        "gfxstream_vulkan_cereal_common",
    ],
    srcs: [
        "tests/CompositorVk_unittest.cpp",
    ],
    data: [
        "tests/testdata/256x256_android.png",
        "tests/testdata/256x256_android_with_transparency.png",
        "tests/testdata/256x256_golden_blend_premultiplied.png",
        "tests/testdata/256x256_golden_crop.png",
        "tests/testdata/256x256_golden_simple_composition.png",
        "tests/testdata/256x256_golden_multiple_layers.png",
        "tests/testdata/256x256_golden_multiple_targets_0.png",
        "tests/testdata/256x256_golden_multiple_targets_1.png",
        "tests/testdata/256x256_golden_multiple_targets_2.png",
        "tests/testdata/256x256_golden_multiple_targets_3.png",
        "tests/testdata/256x256_golden_multiple_targets_4.png",
        "tests/testdata/256x256_golden_multiple_targets_5.png",
        "tests/testdata/256x256_golden_multiple_targets_6.png",
        "tests/testdata/256x256_golden_multiple_targets_7.png",
        "tests/testdata/256x256_golden_multiple_targets_8.png",
        "tests/testdata/256x256_golden_multiple_targets_9.png",
        "tests/testdata/256x256_golden_solid_color.png",
        "tests/testdata/256x256_golden_solid_color_above.png",
        "tests/testdata/256x256_golden_solid_color_below.png",
        "tests/testdata/256x256_golden_transform_none.png",
        "tests/testdata/256x256_golden_transform_fliph.png",
        "tests/testdata/256x256_golden_transform_flipv.png",
        "tests/testdata/256x256_golden_transform_rot90.png",
        "tests/testdata/256x256_golden_transform_rot180.png",
        "tests/testdata/256x256_golden_transform_rot270.png",
        "tests/testdata/256x256_golden_transform_fliphrot90.png",
        "tests/testdata/256x256_golden_transform_flipvrot90.png",
    ],
    shared_libs: [
        "libbase",
        "libgfxstream_backend",
        "libgfxstream_test_image_utils",
    ],
    static_libs: [
        "gfxstream_vulkan_server",
        "gfxstream_glm",
        "libc++fs",
    ],
    test_options: {
        // Disabled by default as requires Vulkan.
        unit_test: false,
    },
    test_suites: [
        "general-tests",
    ],
}

// Run with `atest --host gfxstream_framebuffer_tests`
cc_test_host {
    name: "gfxstream_framebuffer_tests",
    defaults: ["gfxstream_defaults"],
    header_libs: [
        "gfxstream_vulkan_cereal_common",
    ],
    srcs: [
        "tests/FrameBuffer_unittest.cpp",
    ],
    shared_libs: [
        "libbase",
        "libgfxstream_backend",
        "libgfxstream_test_image_utils",
    ],
    static_libs: [
        "gfxstream_backend_test_support",
        "gfxstream_base",
        "gfxstream_base_test_support",
        "gfxstream_glm",
        "gfxstream_host_common_test_support",
        "gfxstream_oswindow_test_support",
        "gfxstream_snapshot",
        "gfxstream_vulkan_server",
        "libgmock",
        "liblz4",
    ],
    test_options: {
        // Disabled by default as requires Vulkan.
        unit_test: false,
    },
    test_suites: [
        "general-tests",
    ],
}

cc_test_host {
    name: "gfxstream_magma_tests",
    defaults: ["gfxstream_defaults"],
    srcs: [
        "tests/Magma_unittest.cpp",
    ],
    shared_libs: [
        "libbase",
        "libgfxstream_backend",
    ],
    test_suites: [
        "general-tests",
    ],
}
