package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_native_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_native_license"],
}

cc_defaults {
    name: "libcompositionengine_defaults",
    defaults: ["surfaceflinger_defaults"],
    cflags: [
        "-DLOG_TAG=\"CompositionEngine\"",
        "-DATRACE_TAG=ATRACE_TAG_GRAPHICS",
    ],
    shared_libs: [
        "android.hardware.graphics.allocator@2.0",
        "android.hardware.graphics.composer@2.1",
        "android.hardware.graphics.composer@2.2",
        "android.hardware.graphics.composer@2.3",
        "android.hardware.graphics.composer@2.4",
        "android.hardware.power@1.0",
        "android.hardware.power@1.3",
        "libbase",
        "libcutils",
        "libgui",
        "liblayers_proto",
        "liblog",
        "libnativewindow",
        "libprotobuf-cpp-lite",
        "libSurfaceFlingerProp",
        "libtimestats",
        "libui",
        "libutils",
    ],
    static_libs: [
        "libmath",
        "librenderengine",
        "libtrace_proto",
    ],
    header_libs: [
        "android.hardware.graphics.composer@2.1-command-buffer",
        "android.hardware.graphics.composer@2.2-command-buffer",
        "android.hardware.graphics.composer@2.3-command-buffer",
        "android.hardware.graphics.composer@2.4-command-buffer",
        "libsurfaceflinger_headers",
    ],
}

cc_library {
    name: "libcompositionengine",
    defaults: ["libcompositionengine_defaults"],
    srcs: [
        "src/planner/CachedSet.cpp",
        "src/planner/Flattener.cpp",
        "src/planner/LayerState.cpp",
        "src/planner/Planner.cpp",
        "src/planner/Predictor.cpp",
        "src/planner/TexturePool.cpp",
        "src/ClientCompositionRequestCache.cpp",
        "src/CompositionEngine.cpp",
        "src/Display.cpp",
        "src/DisplayColorProfile.cpp",
        "src/DisplaySurface.cpp",
        "src/DumpHelpers.cpp",
        "src/HwcBufferCache.cpp",
        "src/LayerFECompositionState.cpp",
        "src/Output.cpp",
        "src/OutputCompositionState.cpp",
        "src/OutputLayer.cpp",
        "src/OutputLayerCompositionState.cpp",
        "src/RenderSurface.cpp",
    ],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
}

cc_library {
    name: "libcompositionengine_mocks",
    defaults: ["libcompositionengine_defaults"],
    srcs: [
        "mock/CompositionEngine.cpp",
        "mock/Display.cpp",
        "mock/DisplayColorProfile.cpp",
        "mock/DisplaySurface.cpp",
        "mock/LayerFE.cpp",
        "mock/NativeWindow.cpp",
        "mock/Output.cpp",
        "mock/OutputLayer.cpp",
        "mock/RenderSurface.cpp",
    ],
    static_libs: [
        "libgtest",
        "libgmock",
        "libcompositionengine",
    ],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
}

cc_test {
    name: "libcompositionengine_test",
    test_suites: ["device-tests"],
    defaults: ["libcompositionengine_defaults"],
    srcs: [
        "tests/planner/CachedSetTest.cpp",
        "tests/planner/FlattenerTest.cpp",
        "tests/planner/LayerStateTest.cpp",
        "tests/planner/PredictorTest.cpp",
        "tests/planner/TexturePoolTest.cpp",
        "tests/CompositionEngineTest.cpp",
        "tests/DisplayColorProfileTest.cpp",
        "tests/DisplayTest.cpp",
        "tests/HwcBufferCacheTest.cpp",
        "tests/MockHWC2.cpp",
        "tests/MockHWComposer.cpp",
        "tests/MockPowerAdvisor.cpp",
        "tests/OutputLayerTest.cpp",
        "tests/OutputTest.cpp",
        "tests/ProjectionSpaceTest.cpp",
        "tests/RenderSurfaceTest.cpp",
    ],
    static_libs: [
        "libcompositionengine",
        "libcompositionengine_mocks",
        "libgui_mocks",
        "librenderengine_mocks",
        "libgmock",
        "libgtest",
    ],
    sanitize: {
        // By using the address sanitizer, we not only uncover any issues
        // with the test, but also any issues with the code under test.
        //
        // Note: If you get an runtime link error like:
        //
        //   CANNOT LINK EXECUTABLE "/data/local/tmp/libcompositionengine_test": library "libclang_rt.asan-aarch64-android.so" not found
        //
        // it is because the address sanitizer shared objects are not installed
        // by default in the system image.
        //
        // You can either "make dist tests" before flashing, or set this
        // option to false temporarily.
        address: true,
    },
}
