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 += [ 29 "-Wl,--aarch64-inline-plt", 30 "-Wl,-mllvm,-enable-partial-inlining", 31 ] 32 if (graphic_2d_feature_enable_codemerge) { 33 ldflags += [ 34 "-Wl,-plugin-opt=-split-machine-functions", 35 "-Wl,-mllvm", 36 "-Wl,-fixup-unconditional-branch-unsafely", 37 "-Wl,--no-create-thunks-introduced-by-mfs", 38 "-Wl,-mllvm", 39 "-Wl,-mfs-psi-cutoff=999500", 40 "-Wl,-z", 41 "-Wl,keep-text-section-prefix", 42 "-Wl,--symbol-ordering-file=" + rebase_path( 43 "${graphic_2d_feature_pgo_path}/librender_service_base.txt", 44 root_build_dir), 45 "-Wl,--no-warn-symbol-ordering", 46 ] 47 } 48 } 49 } 50} 51 52## Build librender_service.so 53ohos_shared_library("librender_service") { 54 branch_protector_ret = "pac_ret" 55 sanitize = { 56 cfi = true 57 cfi_cross_dso = true 58 cfi_vcall_icall_only = true 59 debug = false 60 } 61 if (enhanced_opt) { 62 configs = [ ":render_service_link_config" ] 63 } 64 defines = [] 65 if (graphic_2d_feature_enable_rdo) { 66 defines += [ "RS_ENABLE_RDO" ] 67 } 68 if (graphic_2d_feature_color_gamut_enable) { 69 defines += [ "PADDING_HEIGHT_32" ] 70 } else { 71 defines += [] 72 } 73 if (use_musl) { 74 defines += [ "FRAME_AWARE_TRACE" ] 75 } 76 if (use_video_processing_engine) { 77 defines += [ "USE_VIDEO_PROCESSING_ENGINE" ] 78 } 79 defines += gpu_defines 80 defines += [ "MODULE_RS" ] 81 cflags = [ "-DIMAGE_COLORSPACE_FLAG" ] 82 if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) { 83 defines += [ "IS_OHOS" ] 84 if (!use_libfuzzer) { 85 cflags += [ "-flto=thin" ] 86 } 87 if (enhanced_opt) { 88 if (!use_libfuzzer) { 89 cflags += [ "-fwhole-program-vtables" ] 90 } 91 if (graphic_2d_feature_enable_pgo && 92 graphic_2d_feature_product != "default") { 93 if (graphic_2d_feature_enable_codemerge) { 94 defines += [ "CM_FEATURE_ENABLE" ] 95 } 96 cflags += [ 97 "-fprofile-use=" + rebase_path( 98 "${graphic_2d_feature_pgo_path}/librender_service.profdata", 99 root_build_dir), 100 "-Wno-error=backend-plugin", 101 "-Wno-profile-instr-out-of-date", 102 "-Wno-profile-instr-unprofiled", 103 "-mllvm", 104 "-enable-partial-inlining", 105 ] 106 } 107 if (graphic_2d_feature_product == "pc" && target_cpu == "arm64") { 108 cflags += [ "-moutline-atomics" ] 109 } 110 } 111 } 112 113 public_deps = [] 114 115 sources = [ 116 "core/feature/anco_manager/rs_anco_manager.cpp", 117 "core/feature/capture/rs_surface_capture_task.cpp", 118 "core/feature/dirty/rs_uni_dirty_compute_util.cpp", 119 "core/feature/drm/rs_drm_util.cpp", 120 "core/feature/hdr/rs_hdr_util.cpp", 121 "core/feature/hetero_hdr/rs_hdr_buffer_layer.cpp", 122 "core/feature/hetero_hdr/rs_hdr_manager.cpp", 123 "core/feature/hetero_hdr/rs_hdr_surface_render_node_drawable.cpp", 124 "core/feature/hetero_hdr/rs_hetero_hdr_util.cpp", 125 "core/feature/hwc/hpae_offline/rs_hpae_offline_layer.cpp", 126 "core/feature/hwc/hpae_offline/rs_hpae_offline_processor.cpp", 127 "core/feature/hwc/hpae_offline/rs_hpae_offline_process_syncer.cpp", 128 "core/feature/hwc/hpae_offline/rs_hpae_offline_thread_manager.cpp", 129 "core/feature/hwc/rs_uni_hwc_compute_util.cpp", 130 "core/feature/hpae/rs_hpae_buffer.cpp", 131 "core/feature/hpae/rs_hpae_manager.cpp", 132 "core/feature/hpae/rs_hpae_render_listener.cpp", 133 "core/feature/hyper_graphic_manager/hgm_context.cpp", 134 "core/feature/hyper_graphic_manager/hgm_hardware_utils.cpp", 135 "core/feature/hyper_graphic_manager/rs_vblank_idle_corrector.cpp", 136 "core/feature/lpp/lpp_video_handler.cpp", 137 "core/feature/occlusion_culling/rs_occlusion_handler.cpp", 138 "core/feature/occlusion_culling/rs_occlusion_node.cpp", 139 "core/feature/opinc/rs_opinc_draw_cache.cpp", 140 "core/feature/vrate/rs_vsync_rate_reduce_manager.cpp", 141 "core/feature/window_keyframe/rs_window_keyframe_buffer.cpp", 142 "core/feature/window_keyframe/rs_window_keyframe_node_info.cpp", 143 "core/feature/chipset_vsync/rs_chipset_vsync.cpp", 144 "core/pipeline/hardware_thread/rs_realtime_refresh_rate_manager.cpp", 145 "core/pipeline/hwc/rs_uni_hwc_visitor.cpp", 146 "core/pipeline/main_thread/rs_main_thread.cpp", 147 "core/pipeline/main_thread/rs_render_service.cpp", 148 "core/pipeline/main_thread/rs_render_service_connection.cpp", 149 "core/pipeline/main_thread/rs_render_service_listener.cpp", 150 "core/pipeline/main_thread/rs_render_service_visitor.cpp", 151 "core/pipeline/render_thread/rs_base_render_engine.cpp", 152 "core/pipeline/render_thread/rs_base_render_util.cpp", 153 "core/pipeline/render_thread/rs_composer_adapter.cpp", 154 "core/pipeline/render_thread/rs_divided_render_util.cpp", 155 "core/pipeline/render_thread/rs_physical_screen_processor.cpp", 156 "core/pipeline/render_thread/rs_render_engine.cpp", 157 "core/pipeline/render_thread/rs_virtual_screen_processor.cpp", 158 "core/pipeline/rs_pointer_window_manager.cpp", 159 "core/pipeline/rs_processor.cpp", 160 "core/pipeline/rs_processor_factory.cpp", 161 "core/pipeline/rs_unmarshal_task_manager.cpp", 162 "core/pipeline/slr_scale/rs_slr_scale.cpp", 163 "core/screen_manager/rs_screen.cpp", 164 "core/screen_manager/rs_screen_manager.cpp", 165 "core/system/rs_system_parameters.cpp", 166 "core/transaction/rs_irender_service_connection_ipc_interface_code_access_verifier.cpp", 167 "core/transaction/rs_irender_service_ipc_interface_code_access_verifier.cpp", 168 "core/transaction/rs_render_service_connection_stub.cpp", 169 "core/transaction/rs_render_service_security_utils.cpp", 170 "core/transaction/rs_render_service_stub.cpp", 171 "core/transaction/rs_unmarshal_thread.cpp", 172 ] 173 174 #feature_cfg 175 sources += [ 176 "core/feature_cfg/feature_param/extend_feature/capture_base_param.cpp", 177 "core/feature_cfg/feature_param/extend_feature/color_gamut_param.cpp", 178 "core/feature_cfg/feature_param/extend_feature/drm_param.cpp", 179 "core/feature_cfg/feature_param/extend_feature/hfbc_param.cpp", 180 "core/feature_cfg/feature_param/extend_feature/mem_param.cpp", 181 "core/feature_cfg/feature_param/extend_feature/multiscreen_param.cpp", 182 "core/feature_cfg/feature_param/extend_feature/speciallayer_param.cpp", 183 "core/feature_cfg/feature_param/extend_feature/surface_capture_param.cpp", 184 "core/feature_cfg/feature_param/extend_feature/ui_capture_param.cpp", 185 "core/feature_cfg/feature_param/feature_param.cpp", 186 "core/feature_cfg/feature_param/performance_feature/accessibility_param.cpp", 187 "core/feature_cfg/feature_param/performance_feature/dirtyregion_param.cpp", 188 "core/feature_cfg/feature_param/performance_feature/dvsync_param.cpp", 189 "core/feature_cfg/feature_param/performance_feature/filter_param.cpp", 190 "core/feature_cfg/feature_param/performance_feature/hard_cursor_param.cpp", 191 "core/feature_cfg/feature_param/performance_feature/hwc_param.cpp", 192 "core/feature_cfg/feature_param/performance_feature/occlusion_culling_param.cpp", 193 "core/feature_cfg/feature_param/performance_feature/opinc_param.cpp", 194 "core/feature_cfg/feature_param/performance_feature/prevalidate_param.cpp", 195 "core/feature_cfg/feature_param/performance_feature/rotateoffscreen_param.cpp", 196 "core/feature_cfg/feature_param/performance_feature/socperf_param.cpp", 197 "core/feature_cfg/feature_param/performance_feature/subtree_parallel_param.cpp", 198 "core/feature_cfg/feature_param/performance_feature/uifirst_param.cpp", 199 "core/feature_cfg/feature_param/performance_feature/vrate_param.cpp", 200 "core/feature_cfg/graphic_feature_param_manager.cpp", 201 "core/feature_cfg/xml_parser/extend_feature_parser/capture_base_param_parse.cpp", 202 "core/feature_cfg/xml_parser/extend_feature_parser/color_gamut_param_parse.cpp", 203 "core/feature_cfg/xml_parser/extend_feature_parser/drm_param_parse.cpp", 204 "core/feature_cfg/xml_parser/extend_feature_parser/hfbc_param_parse.cpp", 205 "core/feature_cfg/xml_parser/extend_feature_parser/mem_param_parse.cpp", 206 "core/feature_cfg/xml_parser/extend_feature_parser/multiscreen_param_parse.cpp", 207 "core/feature_cfg/xml_parser/extend_feature_parser/speciallayer_param_parse.cpp", 208 "core/feature_cfg/xml_parser/extend_feature_parser/surface_capture_param_parse.cpp", 209 "core/feature_cfg/xml_parser/extend_feature_parser/ui_capture_param_parse.cpp", 210 "core/feature_cfg/xml_parser/performance_feature_parser/accessibility_param_parse.cpp", 211 "core/feature_cfg/xml_parser/performance_feature_parser/dirtyregion_param_parse.cpp", 212 "core/feature_cfg/xml_parser/performance_feature_parser/dvsync_param_parse.cpp", 213 "core/feature_cfg/xml_parser/performance_feature_parser/filter_param_parse.cpp", 214 "core/feature_cfg/xml_parser/performance_feature_parser/hard_cursor_param_parse.cpp", 215 "core/feature_cfg/xml_parser/performance_feature_parser/hwc_param_parse.cpp", 216 "core/feature_cfg/xml_parser/performance_feature_parser/occlusion_culling_param_parse.cpp", 217 "core/feature_cfg/xml_parser/performance_feature_parser/opinc_param_parse.cpp", 218 "core/feature_cfg/xml_parser/performance_feature_parser/prevalidate_param_parse.cpp", 219 "core/feature_cfg/xml_parser/performance_feature_parser/rotateoffscreen_param_parse.cpp", 220 "core/feature_cfg/xml_parser/performance_feature_parser/socperf_param_parse.cpp", 221 "core/feature_cfg/xml_parser/performance_feature_parser/subtree_parallel_param_parse.cpp", 222 "core/feature_cfg/xml_parser/performance_feature_parser/uifirst_param_parse.cpp", 223 "core/feature_cfg/xml_parser/performance_feature_parser/vrate_param_parse.cpp", 224 "core/feature_cfg/xml_parser/xml_parser_base.cpp", 225 ] 226 227 #blurPredict 228 sources += [ 229 "$rosen_root/modules/frame_load/src/rs_frame_blur_predict.cpp", 230 "$rosen_root/modules/frame_load/src/rs_frame_deadline_predict.cpp", 231 ] 232 233 #dfx 234 sources += [ 235 "core/drawable/dfx/rs_refresh_rate_dfx.cpp", 236 "core/drawable/dfx/rs_skp_capture_dfx.cpp", 237 ] 238 239 if (defined(input_ext_feature_magiccursor) && input_ext_feature_magiccursor) { 240 sources += [ 241 "core/pipeline/magic_pointer_render/rs_magic_pointer_render_manager.cpp", 242 ] 243 } 244 245 if (rs_enable_gpu) { 246 sources += [ 247 #drawable 248 "core/drawable/dfx/rs_dirty_rects_dfx.cpp", 249 "core/drawable/rs_canvas_drawing_render_node_drawable.cpp", 250 "core/drawable/rs_canvas_render_node_drawable.cpp", 251 "core/drawable/rs_effect_render_node_drawable.cpp", 252 "core/drawable/rs_logical_display_render_node_drawable.cpp", 253 "core/drawable/rs_render_node_drawable.cpp", 254 "core/drawable/rs_root_render_node_drawable.cpp", 255 "core/drawable/rs_screen_render_node_drawable.cpp", 256 "core/drawable/rs_surface_render_node_drawable.cpp", 257 "core/feature/capture/rs_surface_capture_task_parallel.cpp", 258 "core/feature/capture/rs_ui_capture_solo_task_parallel.cpp", 259 "core/feature/capture/rs_ui_capture_task_parallel.cpp", 260 "core/feature/capture/rs_uni_ui_capture.cpp", 261 "core/feature/hwc/rs_uni_hwc_prevalidate_util.cpp", 262 "core/feature/round_corner_display/rs_rcd_render_listener.cpp", 263 "core/feature/round_corner_display/rs_rcd_render_visitor.cpp", 264 "core/feature/round_corner_display/rs_rcd_surface_render_node.cpp", 265 "core/feature/round_corner_display/rs_rcd_surface_render_node_drawable.cpp", 266 "core/feature/round_corner_display/rs_round_corner_config.cpp", 267 "core/feature/round_corner_display/rs_round_corner_display.cpp", 268 "core/feature/round_corner_display/rs_round_corner_display_manager.cpp", 269 "core/feature/uifirst/rs_draw_window_cache.cpp", 270 "core/feature/uifirst/rs_sub_thread_cache.cpp", 271 "core/feature/uifirst/rs_uifirst_frame_rate_control.cpp", 272 "core/feature/uifirst/rs_uifirst_manager.cpp", 273 "core/memory/rs_memory_manager.cpp", 274 "core/pipeline/hardware_thread/rs_hardware_thread.cpp", 275 "core/pipeline/main_thread/rs_uni_render_listener.cpp", 276 "core/pipeline/main_thread/rs_uni_render_visitor.cpp", 277 "core/pipeline/render_thread/rs_draw_frame.cpp", 278 "core/pipeline/render_thread/rs_uni_render_composer_adapter.cpp", 279 "core/pipeline/render_thread/rs_uni_render_engine.cpp", 280 "core/pipeline/render_thread/rs_uni_render_processor.cpp", 281 "core/pipeline/render_thread/rs_uni_render_thread.cpp", 282 "core/pipeline/render_thread/rs_uni_render_util.cpp", 283 "core/pipeline/render_thread/rs_uni_render_virtual_processor.cpp", 284 ] 285 } 286 287 if (graphic_2d_feature_enable_rdo) { 288 sources += [ "core/feature/rdo/rs_rdo.cpp", ] 289 } 290 291 if (rs_enable_eglimage && rs_enable_gpu) { 292 sources += [ "core/feature/gpuComposition/rs_egl_image_manager.cpp" ] 293 } 294 295 if (graphic_2d_feature_enable_vulkan) { 296 sources += [ 297 "core/feature/gpuComposition/rs_vk_image_manager.cpp", 298 "core/pipeline/rs_vk_pipeline_config.cpp", 299 ] 300 } 301 302 if ((rs_enable_eglimage && rs_enable_gpu) || graphic_2d_feature_enable_vulkan) { 303 sources += [ "core/feature/gpuComposition/rs_image_manager.cpp" ] 304 } 305 306 if (graphic_2d_feature_product != "wearable") { 307 defines += [ "IS_ENABLE_DRM" ] 308 } 309 310 if (rs_enable_parallel_render && rs_enable_gpu) { 311 sources += [ 312 "core/feature/uifirst/rs_sub_thread.cpp", 313 "core/feature/uifirst/rs_sub_thread_manager.cpp", 314 "core/pipeline/parallel_render/rs_render_task.cpp", 315 ] 316 } 317 318 if (defined(graphic_2d_feature_subtree_parallel_enable) && graphic_2d_feature_subtree_parallel_enable 319 && defined(graphic_2d_subtree_configs.subtree_root)) { 320 sources += graphic_2d_subtree_configs.librender_service_subtree_sources 321 } 322 323 if (use_memmgr_plugin || use_memmgr) { 324 sources += [ "core/memory/rs_app_state_listener.cpp" ] 325 } 326 327 if (tp_feature_enable) { 328 sources += [ "core/screen_manager/touch_screen.cpp" ] 329 } 330 331 include_dirs = [ 332 "core", 333 "core/feature_cfg", 334 "core/feature_cfg/feature_param", 335 "core/feature_cfg/feature_param/extend_feature", 336 "core/feature_cfg/feature_param/performance_feature", 337 "core/feature_cfg/xml_parser", 338 "core/feature_cfg/xml_parser/extend_feature_parser", 339 "core/feature_cfg/xml_parser/performance_feature_parser", 340 "core/round_corner_display", 341 "$graphic_2d_root/rosen/include", 342 "$graphic_2d_root/rosen/modules/2d_graphics", 343 "$graphic_2d_root/rosen/modules/composer/vsync/include", 344 "$graphic_2d_root/rosen/modules/composer/hdi_backend/include", 345 "$graphic_2d_root/rosen/modules/frame_report/include", 346 "$graphic_2d_root/rosen/modules/render_frame_trace/include", 347 "$graphic_2d_root/rosen/modules/render_service_base/include", 348 "$graphic_2d_root/rosen/modules/render_service_base/src", 349 "$graphic_2d_root/rosen/modules/utils", 350 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/config", 351 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/frame_rate_manager", 352 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/hgm_screen_manager", 353 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/soft_vsync_manager", 354 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/utils", 355 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/frame_rate_vote", 356 "$graphic_2d_root/rosen/modules/create_pixelmap_surface/include", 357 "$graphic_2d_root/rosen/modules/frame_load/include", 358 "$graphic_2d_root/rosen/modules/ressched/include", 359 "$graphic_2d_root/utils/log", 360 "$graphic_2d_root/utils/socketpair/export", 361 ] 362 363 public_deps += [ 364 "$graphic_2d_root/rosen/modules/composer:libcomposer", 365 ] 366 367 if (graphic_2d_feature_subtree_parallel_enable && defined(graphic_2d_subtree_configs.subtree_root)) { 368 include_dirs += graphic_2d_subtree_configs.librender_service_subtree_include 369 } 370 371 deps = [ 372 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 373 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 374 "$graphic_2d_root/rosen/modules/composer/vsync:libvsync", 375 "$graphic_2d_root/rosen/modules/create_pixelmap_surface:create_pixelmap_surface", 376 "$graphic_2d_root/rosen/modules/hyper_graphic_manager:libhyper_graphic_manager", 377 "$graphic_2d_root/rosen/modules/render_frame_trace:render_frame_trace", 378 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 379 "$graphic_2d_root/utils/color_manager:color_manager", 380 "$graphic_2d_root/utils:socketpair", 381 ] 382 383 if (graphic_2d_feature_enable_chipset_vsync) { 384 defines += [ "RS_ENABLE_CHIPSET_VSYNC" ] 385 sources += [ "core/feature/chipset_vsync/rs_chipset_vsync.cpp" ] 386 } 387 388 if (graphic_2d_feature_overlay_display_enable) { 389 sources += [ "core/feature/overlay_display/rs_overlay_display_manager.cpp" ] 390 } 391 392 if (graphic_2d_feature_tv_metadata_enable) { 393 sources += [ "core/feature/tv_metadata/rs_tv_metadata_manager.cpp" ] 394 } 395 396 if (rosen_is_ohos) { 397 sources += [ "$rosen_root/modules/frame_report/src/rs_frame_report.cpp" ] 398 } else if (!is_arkui_x) { 399 sources += 400 [ "$rosen_root/modules/frame_report/src/mingw/rs_frame_report.cpp" ] 401 } 402 403 #profiler 404 if (rosen_is_ohos && graphic_2d_feature_rs_enable_profiler && 405 player_framework_enable) { 406 defines += [ "RS_PROFILER_ENABLED" ] 407 defines += [ "RS_PROFILER_BETA_ENABLED" ] 408 sources += [ 409 "$rosen_root/modules/render_service_profiler/rs_profiler.cpp", 410 "$rosen_root/modules/render_service_profiler/rs_profiler_beta_recorder.cpp", 411 "$rosen_root/modules/render_service_profiler/rs_profiler_capture_recorder.cpp", 412 "$rosen_root/modules/render_service_profiler/rs_profiler_capturedata.cpp", 413 "$rosen_root/modules/render_service_profiler/rs_profiler_command.cpp", 414 "$rosen_root/modules/render_service_profiler/rs_profiler_file.cpp", 415 "$rosen_root/modules/render_service_profiler/rs_profiler_hrp_service.cpp", 416 "$rosen_root/modules/render_service_profiler/rs_profiler_network.cpp", 417 "$rosen_root/modules/render_service_profiler/rs_profiler_packet.cpp", 418 "$rosen_root/modules/render_service_profiler/rs_profiler_socket.cpp", 419 "$rosen_root/modules/render_service_profiler/rs_profiler_telemetry.cpp", 420 "$rosen_root/modules/render_service_profiler/rs_profiler_test_tree.cpp", 421 ] 422 } 423 424 include_dirs += [ "$graphic_2d_root/rosen/modules/render_service_profiler" ] 425 426 public_external_deps = [ "skia:skia_canvaskit" ] 427 428 if (defined(rs_enable_parallel_upload) && rs_enable_parallel_upload) { 429 sources += [ 430 "core/pipeline/parallel_render/resource/rs_upload_resource_thread.cpp", 431 ] 432 include_dirs += [ "$graphic_2d_root/rosen/modules/render_service/core/pipeline/parallel_render/resource" ] 433 if (defined(use_rosen_drawing) && use_rosen_drawing) { 434 sources += [ 435 "core/pipeline/parallel_render/resource/rs_resource_helper_drawing.cpp", 436 ] 437 } else { 438 sources += [ 439 "core/pipeline/parallel_render/resource/rs_resource_helper_skia.cpp", 440 ] 441 } 442 } 443 444 if (rs_enable_gpu) { 445 public_deps += [ "$graphic_2d_root:libvulkan" ] 446 deps += [ 447 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 448 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 449 ] 450 } 451 452 if (defined(use_rosen_drawing) && use_rosen_drawing) { 453 defines += [ "USE_ROSEN_DRAWING" ] 454 if (rs_enable_gpu) { 455 defines += [ "RS_ENABLE_GPU" ] 456 } 457 deps += [ "$rosen_root/modules/2d_graphics:2d_graphics" ] 458 } 459 460 public_external_deps += [ 461 "config_policy:configpolicy_util", 462 "drivers_interface_display:libdisplay_commontype_proxy_1.0", 463 "libxml2:libxml2", 464 ] 465 466 external_deps = [ 467 "ability_runtime:app_manager", 468 "cJSON:cjson", 469 "c_utils:utils", 470 "drivers_interface_display:libdisplay_commontype_proxy_2.2", 471 "eventhandler:libeventhandler", 472 "ffrt:libffrt", 473 "graphic_surface:surface", 474 "graphics_effect:graphics_effect_core", 475 "hicollie:libhicollie", 476 "hilog:libhilog", 477 "hisysevent:libhisysevent", 478 "hitrace:hitrace_meter", 479 "init:libbegetutil", 480 "ipc:ipc_core", 481 "libpng:libpng", 482 "qos_manager:qos", 483 "safwk:system_ability_fwk", 484 "samgr:samgr_proxy", 485 "window_manager:libwsutils", 486 ] 487 if (graphic_2d_feature_rs_enable_uni_render) { 488 external_deps += [ "ability_runtime:ability_manager" ] 489 } 490 if (use_video_processing_engine) { 491 external_deps += [ "video_processing_engine:videoprocessingengine" ] 492 } 493 494 if (defined(ddgr_ext_configs)) { 495 libs = ddgr_ext_configs.ddgr_libs 496 defines += ddgr_ext_configs.ddgr_defines 497 sources += ddgr_ext_configs.libddgr_ext_adaptor_sources 498 include_dirs += ddgr_ext_configs.libddgr_ext_adaptor_include_dirs 499 } 500 501 if (rosen_is_ohos) { 502 external_deps += [ 503 "image_framework:image_native", 504 "lz4:liblz4_shared", 505 ] 506 } 507 508 if (defined(global_parts_info) && 509 defined(global_parts_info.resourceschedule_soc_perf)) { 510 external_deps += [ "soc_perf:socperf_client" ] 511 defines += [ "SOC_PERF_ENABLE" ] 512 } 513 514 if (defined(global_parts_info) && 515 defined(global_parts_info.resourceschedule_resource_schedule_service)) { 516 external_deps += [ "resource_schedule_service:ressched_client" ] 517 defines += [ "RES_SCHED_ENABLE" ] 518 } 519 520 if (defined(global_parts_info) && defined(global_parts_info.sensors_sensor)) { 521 external_deps += [ "sensor:sensor_interface_native" ] 522 defines += [ "RS_SUBSCRIBE_SENSOR_ENABLE" ] 523 } 524 525 if (accessibility_enable) { 526 external_deps += [ "accessibility:accessibilityconfig" ] 527 external_deps += [ "accessibility:accessibility_common" ] 528 defines += accessibility_defines 529 } 530 531 if (use_memmgr_plugin) { 532 external_deps += [ "memmgr:memmgrclient" ] 533 } else if (use_memmgr) { 534 external_deps += [ "memmgr:memmgrclient" ] 535 } 536 537 if (rosen_is_ohos && defined(enable_ipc_security) && enable_ipc_security) { 538 defines += [ "ENABLE_IPC_SECURITY" ] 539 external_deps += [ "access_token:libaccesstoken_sdk" ] 540 } 541 542 if (rosen_is_ohos && defined(enable_ipc_security_access_counter) && 543 enable_ipc_security_access_counter) { 544 defines += [ "ENABLE_IPC_SECURITY_ACCESS_COUNTER" ] 545 } 546 547 if (tp_feature_enable) { 548 defines += tp_defines 549 } 550 551 part_name = "graphic_2d" 552 subsystem_name = "graphic" 553} 554 555## Build render_service.bin 556ohos_executable("render_service") { 557 branch_protector_ret = "pac_ret" 558 sanitize = { 559 cfi = true 560 cfi_cross_dso = true 561 cfi_vcall_icall_only = true 562 debug = false 563 if (rosen_is_ohos) { 564 boundary_sanitize = true 565 integer_overflow = true 566 ubsan = true 567 } 568 } 569 sources = [ "core/main.cpp" ] 570 571 include_dirs = [ 572 "core", 573 "$graphic_2d_root/interfaces/inner_api/common", 574 "$graphic_2d_root/utils/color_manager/export", 575 "$graphic_2d_root/utils/socketpair/export", 576 ] 577 578 deps = [ 579 ":librender_service", 580 "$graphic_2d_root/rosen/modules/composer:libcomposer", 581 "$graphic_2d_root/rosen/modules/composer/vsync:libvsync", 582 "$graphic_2d_root/rosen/modules/hyper_graphic_manager:libhyper_graphic_manager", 583 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 584 "$graphic_2d_root/utils:socketpair", 585 ] 586 587 external_deps = [ 588 "c_utils:utils", 589 "drivers_interface_display:libdisplay_commontype_proxy_1.0", 590 "eventhandler:libeventhandler", 591 "hilog:libhilog", 592 "ipc:ipc_core", 593 "samgr:samgr_proxy", 594 ] 595 596 if (defined(global_parts_info) && defined(global_parts_info.sensors_sensor)) { 597 external_deps += [ "sensor:sensor_interface_native" ] 598 } 599 600 part_name = "graphic_2d" 601 subsystem_name = "graphic" 602} 603