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", ], // HUANGLONG begin include_dirs: [ "vendor/huanglong/aosp_ext/frameworks/native/services/surfaceflinger", "vendor/huanglong/aosp_ext/frameworks/native/services/surfaceflinger/CompositionEngine" ], // HUANGLONG end } cc_library { name: "libcompositionengine", defaults: ["libcompositionengine_defaults"], srcs: [ // HUANGLONG begin ":compositionengineex_source", // HUANGLONG end "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, }, }