| 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, | 
 |     }, | 
 | } |