• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_native_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_native_license"],
8    default_team: "trendy_team_android_core_graphics_stack",
9}
10
11cc_defaults {
12    name: "renderengine_defaults",
13    cflags: [
14        "-DLOG_TAG=\"RenderEngine\"",
15        "-Wall",
16        "-Werror",
17        "-Wthread-safety",
18        "-Wunused",
19        "-Wunreachable-code",
20    ],
21}
22
23cc_defaults {
24    name: "librenderengine_defaults",
25    defaults: [
26        "android.hardware.graphics.composer3-ndk_shared",
27        "renderengine_defaults",
28        "libsurfaceflinger_common_deps",
29    ],
30    cflags: [
31        "-DGL_GLEXT_PROTOTYPES",
32        "-DEGL_EGLEXT_PROTOTYPES",
33    ],
34    shared_libs: [
35        "libbase",
36        "libcutils",
37        "libEGL",
38        "libGLESv1_CM",
39        "libGLESv2",
40        "libgui",
41        "liblog",
42        "libnativewindow",
43        "libprocessgroup",
44        "libsync",
45        "libui",
46        "libutils",
47        "libvulkan",
48    ],
49
50    static_libs: [
51        "libshaders",
52        "libtonemap",
53        "libsurfaceflinger_common",
54        "libsurfaceflingerflags",
55        "libgui_window_info_static",
56    ],
57    local_include_dirs: ["include"],
58    export_include_dirs: ["include"],
59}
60
61// Needed by FlagManager to access a #define.
62cc_library_static {
63    name: "librenderengine_includes",
64    local_include_dirs: ["include"],
65    export_include_dirs: ["include"],
66}
67
68filegroup {
69    name: "librenderengine_sources",
70    srcs: [
71        "ExternalTexture.cpp",
72        "RenderEngine.cpp",
73    ],
74}
75
76filegroup {
77    name: "librenderengine_threaded_sources",
78    srcs: [
79        "threaded/RenderEngineThreaded.cpp",
80    ],
81}
82
83filegroup {
84    name: "librenderengine_skia_sources",
85    srcs: [
86        "skia/AutoBackendTexture.cpp",
87        "skia/Cache.cpp",
88        "skia/ColorSpaces.cpp",
89        "skia/GaneshVkRenderEngine.cpp",
90        "skia/GraphiteVkRenderEngine.cpp",
91        "skia/GLExtensions.cpp",
92        "skia/SkiaRenderEngine.cpp",
93        "skia/SkiaGLRenderEngine.cpp",
94        "skia/SkiaVkRenderEngine.cpp",
95        "skia/VulkanInterface.cpp",
96        "skia/compat/GaneshBackendTexture.cpp",
97        "skia/compat/GaneshGpuContext.cpp",
98        "skia/compat/GraphiteBackendTexture.cpp",
99        "skia/compat/GraphiteGpuContext.cpp",
100        "skia/debug/CaptureTimer.cpp",
101        "skia/debug/CommonPool.cpp",
102        "skia/debug/SkiaCapture.cpp",
103        "skia/debug/SkiaMemoryReporter.cpp",
104        "skia/filters/BlurFilter.cpp",
105        "skia/filters/GainmapFactory.cpp",
106        "skia/filters/GaussianBlurFilter.cpp",
107        "skia/filters/KawaseBlurDualFilter.cpp",
108        "skia/filters/KawaseBlurFilter.cpp",
109        "skia/filters/LinearEffect.cpp",
110        "skia/filters/LutShader.cpp",
111        "skia/filters/MouriMap.cpp",
112        "skia/filters/StretchShaderFactory.cpp",
113        "skia/filters/EdgeExtensionShaderFactory.cpp",
114    ],
115}
116
117// Used to consolidate and simplify pulling Skia & Skia deps into targets that depend on
118// librenderengine. This allows shared deps to be deduplicated (e.g. Perfetto), which doesn't seem
119// possible if libskia_renderengine is just pulled into librenderengine via whole_static_libs.
120cc_defaults {
121    name: "librenderengine_deps",
122    defaults: [
123        "skia_renderengine_deps",
124        "libsurfaceflinger_common_deps",
125    ],
126    static_libs: [
127        "libgui_window_info_static",
128        "libskia_renderengine",
129    ],
130    shared_libs: [
131        "libbinder",
132    ],
133}
134
135// Note: if compilation fails when adding librenderengine as a dependency, try adding
136// librenderengine_deps to the defaults field of your dependent target.
137cc_library_static {
138    name: "librenderengine",
139    defaults: [
140        "librenderengine_defaults",
141        "librenderengine_deps",
142    ],
143    double_loadable: true,
144    cflags: [
145        "-fvisibility=hidden",
146        "-Werror=format",
147        "-Wno-unused-parameter",
148    ],
149    srcs: [
150        ":librenderengine_sources",
151        ":librenderengine_threaded_sources",
152        ":librenderengine_skia_sources",
153    ],
154    header_libs: [
155        "libtonemap_headers",
156    ],
157    include_dirs: [
158        "external/skia/src/gpu",
159    ],
160    lto: {
161        thin: true,
162    },
163}
164
165cc_library_static {
166    name: "librenderengine_mocks",
167    defaults: ["librenderengine_defaults"],
168    srcs: [
169        "mock/RenderEngine.cpp",
170    ],
171    static_libs: [
172        "libgtest",
173        "libgmock",
174    ],
175    local_include_dirs: ["include"],
176    export_include_dirs: ["include"],
177}
178