• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("//foundation/graphic/graphic_2d/graphic_config.gni")
16import("$graphic_2d_root/rosen/modules/render_service_base/config.gni")
17
18config("render_service_link_config") {
19  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
20    ldflags = [
21      "-Wl,--lto-O2",
22      "-Wl,-mllvm",
23      "-Wl,-wholeprogramdevirt-check=fallback",
24      "-Wl,-Bsymbolic",
25    ]
26
27    if (graphic_2d_feature_enable_pgo && enable_enhanced_opt) {
28      ldflags += [ "-Wl,--aarch64-inline-plt" ]
29    }
30  }
31}
32
33## Build librender_service.so
34ohos_shared_library("librender_service") {
35  branch_protector_ret = "pac_ret"
36  sanitize = {
37    cfi = true
38    cfi_cross_dso = true
39    cfi_vcall_icall_only = true
40    debug = false
41  }
42  if (enhanced_opt) {
43    configs = [ ":render_service_link_config" ]
44  }
45  defines = []
46  if (graphic_2d_feature_color_gamut_enable) {
47    defines += [ "PADDING_HEIGHT_32" ]
48  } else {
49    defines += []
50  }
51  if (use_musl) {
52    defines += [ "FRAME_AWARE_TRACE" ]
53  }
54  if (use_video_processing_engine) {
55    defines += [ "USE_VIDEO_PROCESSING_ENGINE" ]
56  }
57  defines += gpu_defines
58  cflags = [ "-DIMAGE_COLORSPACE_FLAG" ]
59  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
60    defines += [ "IS_OHOS" ]
61    if (!use_libfuzzer) {
62      cflags += [ "-flto=thin" ]
63    }
64    if (enhanced_opt) {
65      if (!use_libfuzzer) {
66        cflags += [ "-fwhole-program-vtables" ]
67      }
68      if (graphic_2d_feature_enable_pgo &&
69          graphic_2d_feature_product != "default") {
70        cflags += [
71          "-fprofile-use=" + rebase_path(
72                  "${graphic_2d_feature_pgo_path}/librender_service.profdata",
73                  root_build_dir),
74          "-Wno-error=backend-plugin",
75          "-Wno-profile-instr-out-of-date",
76          "-Wno-profile-instr-unprofiled",
77        ]
78      }
79      if (graphic_2d_feature_product == "pc" && target_cpu == "arm64") {
80        cflags += [ "-moutline-atomics" ]
81      }
82    }
83  }
84
85  sources = [
86    "core/feature/anco_manager/rs_anco_manager.cpp",
87    "core/feature/capture/rs_surface_capture_task.cpp",
88    "core/feature/hdr/rs_hdr_util.cpp",
89    "core/feature/hwc/rs_uni_hwc_compute_util.cpp",
90    "core/feature/hyper_graphic_manager/rs_vblank_idle_corrector.cpp",
91    "core/feature/window_keyframe/rs_window_keyframe_buffer.cpp",
92    "core/feature/window_keyframe/rs_window_keyframe_node_info.cpp",
93    "core/pipeline/hardware_thread/rs_realtime_refresh_rate_manager.cpp",
94    "core/pipeline/hwc/rs_uni_hwc_visitor.cpp",
95    "core/pipeline/main_thread/rs_main_thread.cpp",
96    "core/pipeline/main_thread/rs_render_service.cpp",
97    "core/pipeline/main_thread/rs_render_service_connection.cpp",
98    "core/pipeline/main_thread/rs_render_service_listener.cpp",
99    "core/pipeline/main_thread/rs_render_service_visitor.cpp",
100    "core/pipeline/render_thread/rs_base_render_engine.cpp",
101    "core/pipeline/render_thread/rs_base_render_util.cpp",
102    "core/pipeline/render_thread/rs_composer_adapter.cpp",
103    "core/pipeline/render_thread/rs_divided_render_util.cpp",
104    "core/pipeline/render_thread/rs_physical_screen_processor.cpp",
105    "core/pipeline/render_thread/rs_render_engine.cpp",
106    "core/pipeline/render_thread/rs_virtual_screen_processor.cpp",
107    "core/pipeline/rs_draw_window_cache.cpp",
108    "core/pipeline/rs_pointer_window_manager.cpp",
109    "core/pipeline/rs_processor.cpp",
110    "core/pipeline/rs_processor_factory.cpp",
111    "core/pipeline/rs_unmarshal_task_manager.cpp",
112    "core/pipeline/rs_vsync_rate_reduce_manager.cpp",
113    "core/pipeline/slr_scale/rs_slr_scale.cpp",
114    "core/screen_manager/rs_screen.cpp",
115    "core/screen_manager/rs_screen_manager.cpp",
116    "core/system/rs_system_parameters.cpp",
117    "core/transaction/rs_irender_service_connection_ipc_interface_code_access_verifier.cpp",
118    "core/transaction/rs_irender_service_ipc_interface_code_access_verifier.cpp",
119    "core/transaction/rs_render_service_connection_stub.cpp",
120    "core/transaction/rs_render_service_security_utils.cpp",
121    "core/transaction/rs_render_service_stub.cpp",
122    "core/transaction/rs_unmarshal_thread.cpp",
123  ]
124
125  #feature_cfg
126  sources += [
127    "core/feature_cfg/feature_param/extend_feature/capture_base_param.cpp",
128    "core/feature_cfg/feature_param/extend_feature/color_gamut_param.cpp",
129    "core/feature_cfg/feature_param/extend_feature/drm_param.cpp",
130    "core/feature_cfg/feature_param/extend_feature/hfbc_param.cpp",
131    "core/feature_cfg/feature_param/extend_feature/mem_param.cpp",
132    "core/feature_cfg/feature_param/extend_feature/multiscreen_param.cpp",
133    "core/feature_cfg/feature_param/extend_feature/speciallayer_param.cpp",
134    "core/feature_cfg/feature_param/extend_feature/surface_capture_param.cpp",
135    "core/feature_cfg/feature_param/extend_feature/ui_capture_param.cpp",
136    "core/feature_cfg/feature_param/feature_param.cpp",
137    "core/feature_cfg/feature_param/performance_feature/accessibility_param.cpp",
138    "core/feature_cfg/feature_param/performance_feature/dirtyregion_param.cpp",
139    "core/feature_cfg/feature_param/performance_feature/dvsync_param.cpp",
140    "core/feature_cfg/feature_param/performance_feature/filter_param.cpp",
141    "core/feature_cfg/feature_param/performance_feature/gpu_resource_release_param.cpp",
142    "core/feature_cfg/feature_param/performance_feature/hard_cursor_param.cpp",
143    "core/feature_cfg/feature_param/performance_feature/hwc_param.cpp",
144    "core/feature_cfg/feature_param/performance_feature/opinc_param.cpp",
145    "core/feature_cfg/feature_param/performance_feature/prevalidate_param.cpp",
146    "core/feature_cfg/feature_param/performance_feature/rotateoffscreen_param.cpp",
147    "core/feature_cfg/feature_param/performance_feature/socperf_param.cpp",
148    "core/feature_cfg/feature_param/performance_feature/stencil_pixel_occlusion_culling_param.cpp",
149    "core/feature_cfg/feature_param/performance_feature/uifirst_param.cpp",
150    "core/feature_cfg/feature_param/performance_feature/vrate_param.cpp",
151    "core/feature_cfg/graphic_feature_param_manager.cpp",
152    "core/feature_cfg/xml_parser/extend_feature_parser/capture_base_param_parse.cpp",
153    "core/feature_cfg/xml_parser/extend_feature_parser/color_gamut_param_parse.cpp",
154    "core/feature_cfg/xml_parser/extend_feature_parser/drm_param_parse.cpp",
155    "core/feature_cfg/xml_parser/extend_feature_parser/hfbc_param_parse.cpp",
156    "core/feature_cfg/xml_parser/extend_feature_parser/mem_param_parse.cpp",
157    "core/feature_cfg/xml_parser/extend_feature_parser/multiscreen_param_parse.cpp",
158    "core/feature_cfg/xml_parser/extend_feature_parser/speciallayer_param_parse.cpp",
159    "core/feature_cfg/xml_parser/extend_feature_parser/surface_capture_param_parse.cpp",
160    "core/feature_cfg/xml_parser/extend_feature_parser/ui_capture_param_parse.cpp",
161    "core/feature_cfg/xml_parser/performance_feature_parser/accessibility_param_parse.cpp",
162    "core/feature_cfg/xml_parser/performance_feature_parser/dirtyregion_param_parse.cpp",
163    "core/feature_cfg/xml_parser/performance_feature_parser/dvsync_param_parse.cpp",
164    "core/feature_cfg/xml_parser/performance_feature_parser/filter_param_parse.cpp",
165    "core/feature_cfg/xml_parser/performance_feature_parser/gpu_resource_release_param_parse.cpp",
166    "core/feature_cfg/xml_parser/performance_feature_parser/hard_cursor_param_parse.cpp",
167    "core/feature_cfg/xml_parser/performance_feature_parser/hwc_param_parse.cpp",
168    "core/feature_cfg/xml_parser/performance_feature_parser/opinc_param_parse.cpp",
169    "core/feature_cfg/xml_parser/performance_feature_parser/prevalidate_param_parse.cpp",
170    "core/feature_cfg/xml_parser/performance_feature_parser/rotateoffscreen_param_parse.cpp",
171    "core/feature_cfg/xml_parser/performance_feature_parser/socperf_param_parse.cpp",
172    "core/feature_cfg/xml_parser/performance_feature_parser/stencil_pixel_occlusion_culling_param_parse.cpp",
173    "core/feature_cfg/xml_parser/performance_feature_parser/uifirst_param_parse.cpp",
174    "core/feature_cfg/xml_parser/performance_feature_parser/vrate_param_parse.cpp",
175    "core/feature_cfg/xml_parser/xml_parser_base.cpp",
176  ]
177
178  #blurPredict
179  sources += [
180    "$rosen_root/modules/frame_load/src/rs_frame_blur_predict.cpp",
181    "$rosen_root/modules/frame_load/src/rs_frame_deadline_predict.cpp",
182  ]
183
184  #dfx
185  sources += [ "core/drawable/dfx/rs_skp_capture_dfx.cpp" ]
186
187  if (defined(input_ext_feature_magiccursor) && input_ext_feature_magiccursor) {
188    sources += [
189      "core/pipeline/magic_pointer_render/rs_magic_pointer_render_manager.cpp",
190    ]
191  }
192
193  if (rs_enable_gpu) {
194    sources += [
195      #drawable
196      "core/drawable/dfx/rs_dirty_rects_dfx.cpp",
197      "core/drawable/rs_canvas_drawing_render_node_drawable.cpp",
198      "core/drawable/rs_canvas_render_node_drawable.cpp",
199      "core/drawable/rs_display_render_node_drawable.cpp",
200      "core/drawable/rs_effect_render_node_drawable.cpp",
201      "core/drawable/rs_render_node_drawable.cpp",
202      "core/drawable/rs_render_node_drawable_autocache.cpp",
203      "core/drawable/rs_root_render_node_drawable.cpp",
204      "core/drawable/rs_surface_render_node_drawable.cpp",
205      "core/drawable/rs_ui_first_surface_render_node_drawable.cpp",
206      "core/feature/capture/rs_surface_capture_task_parallel.cpp",
207      "core/feature/capture/rs_ui_capture_task_parallel.cpp",
208      "core/feature/capture/rs_uni_ui_capture.cpp",
209      "core/feature/hwc/rs_uni_hwc_prevalidate_util.cpp",
210      "core/feature/opinc/rs_opinc_manager.cpp",
211      "core/feature/round_corner_display/rs_rcd_render_listener.cpp",
212      "core/feature/round_corner_display/rs_rcd_render_visitor.cpp",
213      "core/feature/round_corner_display/rs_rcd_surface_render_node.cpp",
214      "core/feature/round_corner_display/rs_rcd_surface_render_node_drawable.cpp",
215      "core/feature/round_corner_display/rs_round_corner_config.cpp",
216      "core/feature/round_corner_display/rs_round_corner_display.cpp",
217      "core/feature/round_corner_display/rs_round_corner_display_manager.cpp",
218      "core/feature/uifirst/rs_uifirst_manager.cpp",
219      "core/memory/rs_memory_manager.cpp",
220      "core/pipeline/hardware_thread/rs_hardware_thread.cpp",
221      "core/pipeline/main_thread/rs_uni_render_listener.cpp",
222      "core/pipeline/main_thread/rs_uni_render_visitor.cpp",
223      "core/pipeline/render_thread/rs_draw_frame.cpp",
224      "core/pipeline/render_thread/rs_uni_render_composer_adapter.cpp",
225      "core/pipeline/render_thread/rs_uni_render_engine.cpp",
226      "core/pipeline/render_thread/rs_uni_render_processor.cpp",
227      "core/pipeline/render_thread/rs_uni_render_thread.cpp",
228      "core/pipeline/render_thread/rs_uni_render_util.cpp",
229      "core/pipeline/render_thread/rs_uni_render_virtual_processor.cpp",
230    ]
231  }
232
233  if (rs_enable_eglimage && rs_enable_gpu) {
234    sources += [ "core/feature/gpuComposition/rs_egl_image_manager.cpp" ]
235  }
236
237  if (graphic_2d_feature_enable_vulkan) {
238    sources += [
239      "core/feature/gpuComposition/rs_vk_image_manager.cpp",
240      "core/pipeline/rs_vk_pipeline_config.cpp",
241    ]
242  }
243
244  if (graphic_2d_feature_product != "wearable") {
245    defines += [ "IS_ENABLE_DRM" ]
246  }
247
248  if (rs_enable_parallel_render && rs_enable_gpu) {
249    sources += [
250      "core/feature/uifirst/rs_sub_thread.cpp",
251      "core/feature/uifirst/rs_sub_thread_manager.cpp",
252      "core/pipeline/parallel_render/rs_render_task.cpp",
253    ]
254  }
255
256  if (use_memmgr_plugin || use_memmgr) {
257    sources += [ "core/memory/rs_app_state_listener.cpp" ]
258  }
259
260  if (tp_feature_enable) {
261    sources += [ "core/screen_manager/touch_screen.cpp" ]
262  }
263
264  include_dirs = [
265    "core",
266    "core/feature_cfg",
267    "core/feature_cfg/feature_param",
268    "core/feature_cfg/feature_param/extend_feature",
269    "core/feature_cfg/feature_param/performance_feature",
270    "core/feature_cfg/xml_parser",
271    "core/feature_cfg/xml_parser/extend_feature_parser",
272    "core/feature_cfg/xml_parser/performance_feature_parser",
273    "core/round_corner_display",
274    "$graphic_2d_root/rosen/include",
275    "$graphic_2d_root/rosen/modules/2d_graphics",
276    "$graphic_2d_root/rosen/modules/composer/vsync/include",
277    "$graphic_2d_root/rosen/modules/composer/hdi_backend/include",
278    "$graphic_2d_root/rosen/modules/frame_report/include",
279    "$graphic_2d_root/rosen/modules/render_frame_trace/include",
280    "$graphic_2d_root/rosen/modules/render_service_base/include",
281    "$graphic_2d_root/rosen/modules/render_service_base/src",
282    "$graphic_2d_root/rosen/modules/utils",
283    "$graphic_2d_root/utils/log",
284    "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/config",
285    "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/frame_rate_manager",
286    "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/hgm_screen_manager",
287    "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/utils",
288    "$graphic_2d_root/rosen/modules/hyper_graphic_manager/frame_rate_vote",
289    "$graphic_2d_root/rosen/modules/create_pixelmap_surface/include",
290    "$graphic_2d_root/rosen/modules/graphics_effect/include",
291    "$graphic_2d_root/rosen/modules/frame_load/include",
292  ]
293  if (use_video_processing_engine) {
294    include_dirs += [ "$video_processing_engine_root/interfaces/inner_api" ]
295  }
296
297  deps = [
298    "$graphic_2d_root/rosen/modules/composer:libcomposer",
299    "$graphic_2d_root/rosen/modules/create_pixelmap_surface:create_pixelmap_surface",
300    "$graphic_2d_root/rosen/modules/graphics_effect:libgraphics_effect",
301    "$graphic_2d_root/rosen/modules/hyper_graphic_manager:libhyper_graphic_manager",
302    "$graphic_2d_root/rosen/modules/render_frame_trace:render_frame_trace",
303    "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base",
304  ]
305
306  if (graphic_2d_feature_enable_chipset_vsync) {
307    defines += [ "RS_ENABLE_CHIPSET_VSYNC" ]
308    deps += [ "$graphic_2d_ext_root/chipset_vsync:libchipset_vsync" ]
309    include_dirs += [ "$graphic_2d_ext_root/chipset_vsync/include" ]
310  }
311
312  if (graphic_2d_feature_overlay_display_enable) {
313    sources += [ "core/feature/overlay_display/rs_overlay_display_manager.cpp" ]
314  }
315
316  if (rosen_is_ohos) {
317    sources += [ "$rosen_root/modules/frame_report/src/rs_frame_report.cpp" ]
318  } else if (!is_arkui_x) {
319    sources +=
320        [ "$rosen_root/modules/frame_report/src/mingw/rs_frame_report.cpp" ]
321  }
322
323  #profiler
324  if (rosen_is_ohos && graphic_2d_feature_rs_enable_profiler &&
325      player_framework_enable) {
326    defines += [ "RS_PROFILER_ENABLED" ]
327    defines += [ "RS_PROFILER_BETA_ENABLED" ]
328    sources += [
329      "$rosen_root/modules/render_service_profiler/rs_profiler.cpp",
330      "$rosen_root/modules/render_service_profiler/rs_profiler_beta_recorder.cpp",
331      "$rosen_root/modules/render_service_profiler/rs_profiler_capture_recorder.cpp",
332      "$rosen_root/modules/render_service_profiler/rs_profiler_capturedata.cpp",
333      "$rosen_root/modules/render_service_profiler/rs_profiler_command.cpp",
334      "$rosen_root/modules/render_service_profiler/rs_profiler_file.cpp",
335      "$rosen_root/modules/render_service_profiler/rs_profiler_network.cpp",
336      "$rosen_root/modules/render_service_profiler/rs_profiler_packet.cpp",
337      "$rosen_root/modules/render_service_profiler/rs_profiler_socket.cpp",
338      "$rosen_root/modules/render_service_profiler/rs_profiler_telemetry.cpp",
339    ]
340  }
341
342  include_dirs += [ "$graphic_2d_root/rosen/modules/render_service_profiler" ]
343
344  public_external_deps = [ "skia:skia_canvaskit" ]
345
346  if (defined(rs_enable_parallel_upload) && rs_enable_parallel_upload) {
347    sources += [
348      "core/pipeline/parallel_render/resource/rs_upload_resource_thread.cpp",
349    ]
350    include_dirs += [ "$graphic_2d_root/rosen/modules/render_service/core/pipeline/parallel_render/resource" ]
351    if (defined(use_rosen_drawing) && use_rosen_drawing) {
352      sources += [
353        "core/pipeline/parallel_render/resource/rs_resource_helper_drawing.cpp",
354      ]
355    } else {
356      sources += [
357        "core/pipeline/parallel_render/resource/rs_resource_helper_skia.cpp",
358      ]
359    }
360  }
361
362  if (rs_enable_gpu) {
363    public_deps = [ "$graphic_2d_root:libvulkan" ]
364  }
365
366  if (defined(use_rosen_drawing) && use_rosen_drawing) {
367    defines += [ "USE_ROSEN_DRAWING" ]
368    if (rs_enable_gpu) {
369      defines += [ "RS_ENABLE_GPU" ]
370    }
371    deps += [ "$rosen_root/modules/2d_graphics:2d_graphics" ]
372  }
373
374  public_external_deps += [
375    "config_policy:configpolicy_util",
376    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
377    "libxml2:libxml2",
378  ]
379
380  external_deps = [
381    "ability_runtime:app_manager",
382    "cJSON:cjson",
383    "c_utils:utils",
384    "drivers_interface_display:libdisplay_commontype_proxy_2.1",
385    "eventhandler:libeventhandler",
386    "ffrt:libffrt",
387    "graphic_surface:frame_report",
388    "graphic_surface:surface",
389    "hicollie:libhicollie",
390    "hilog:libhilog",
391    "hisysevent:libhisysevent",
392    "hitrace:hitrace_meter",
393    "init:libbegetutil",
394    "ipc:ipc_core",
395    "libpng:libpng",
396    "qos_manager:qos",
397    "safwk:system_ability_fwk",
398    "samgr:samgr_proxy",
399    "window_manager:libwsutils",
400  ]
401  if (use_video_processing_engine) {
402    external_deps += [ "video_processing_engine:videoprocessingengine" ]
403  }
404
405  if (defined(ddgr_ext_configs)) {
406    libs = ddgr_ext_configs.ddgr_libs
407    defines += ddgr_ext_configs.ddgr_defines
408    sources += ddgr_ext_configs.libddgr_ext_adaptor_sources
409    include_dirs += ddgr_ext_configs.libddgr_ext_adaptor_include_dirs
410  }
411
412  if (rosen_is_ohos) {
413    external_deps += [
414      "image_framework:image_native",
415      "lz4:liblz4_shared",
416    ]
417  }
418
419  if (defined(global_parts_info) &&
420      defined(global_parts_info.resourceschedule_soc_perf)) {
421    external_deps += [ "soc_perf:socperf_client" ]
422    defines += [ "SOC_PERF_ENABLE" ]
423  }
424
425  if (defined(global_parts_info) &&
426      defined(global_parts_info.resourceschedule_resource_schedule_service)) {
427    external_deps += [ "resource_schedule_service:ressched_client" ]
428    defines += [ "RES_SCHED_ENABLE" ]
429  }
430
431  if (defined(global_parts_info) && defined(global_parts_info.sensors_sensor)) {
432    external_deps += [ "sensor:sensor_interface_native" ]
433    defines += [ "RS_SUBSCRIBE_SENSOR_ENABLE" ]
434  }
435
436  if (accessibility_enable) {
437    external_deps += [ "accessibility:accessibilityconfig" ]
438    external_deps += [ "accessibility:accessibility_common" ]
439    defines += accessibility_defines
440  }
441
442  if (use_memmgr_plugin) {
443    external_deps += [ "memmgr:memmgrclient" ]
444  } else if (use_memmgr) {
445    external_deps += [ "memmgr:memmgrclient" ]
446  }
447
448  if (rosen_is_ohos && defined(enable_ipc_security) && enable_ipc_security) {
449    defines += [ "ENABLE_IPC_SECURITY" ]
450    external_deps += [ "access_token:libaccesstoken_sdk" ]
451  }
452
453  if (rosen_is_ohos && defined(enable_ipc_security_access_counter) &&
454      enable_ipc_security_access_counter) {
455    defines += [ "ENABLE_IPC_SECURITY_ACCESS_COUNTER" ]
456  }
457
458  if (tp_feature_enable) {
459    defines += tp_defines
460  }
461
462  part_name = "graphic_2d"
463  subsystem_name = "graphic"
464}
465
466## Build render_service.bin
467ohos_executable("render_service") {
468  branch_protector_ret = "pac_ret"
469  sanitize = {
470    cfi = true
471    cfi_cross_dso = true
472    cfi_vcall_icall_only = true
473    debug = false
474    if (rosen_is_ohos) {
475      boundary_sanitize = true
476      integer_overflow = true
477      ubsan = true
478    }
479  }
480  sources = [ "core/main.cpp" ]
481
482  include_dirs = [
483    "core",
484    "$graphic_2d_root/interfaces/inner_api/common",
485    "$graphic_2d_root/utils/color_manager/export",
486  ]
487
488  deps = [
489    ":librender_service",
490    "$graphic_2d_root/rosen/modules/composer:libcomposer",
491    "$graphic_2d_root/rosen/modules/hyper_graphic_manager:libhyper_graphic_manager",
492    "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base",
493  ]
494
495  external_deps = [
496    "c_utils:utils",
497    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
498    "hilog:libhilog",
499    "ipc:ipc_core",
500    "samgr:samgr_proxy",
501  ]
502
503  if (defined(global_parts_info) && defined(global_parts_info.sensors_sensor)) {
504    external_deps += [ "sensor:sensor_interface_native" ]
505  }
506
507  part_name = "graphic_2d"
508  subsystem_name = "graphic"
509}
510