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