1# Copyright (c) 2025 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( 17 "//foundation/graphic/graphic_2d/rosen/modules/render_service_base/config.gni") 18 19config("export_config") { 20 include_dirs = [ 21 "include", 22 "${graphic_2d_root}/utils/log", 23 ] 24 cflags_cc = [ "-std=c++17" ] 25 26 defines = rs_common_define 27 defines += gpu_defines 28} 29 30if (!is_mingw && !is_mac && !is_cross_platform && 31 !(host_os == "linux" && host_cpu == "arm64")) { 32 defines = [ "ENABLE_RUST" ] 33 rust_cxx("particle_cxx_gen") { 34 sources = [ "rust/src/lib.rs" ] 35 } 36 37 ohos_rust_static_ffi("particle_cxx_rust") { 38 sources = [ "rust/src/lib.rs" ] 39 deps = [ "//third_party/rust/crates/cxx:lib" ] 40 part_name = "graphic_2d" 41 subsystem_name = "graphic" 42 } 43 44 ohos_static_library("particle_cxx_cppdeps") { 45 branch_protector_ret = "pac_ret" 46 sanitize = { 47 cfi = false 48 cfi_cross_dso = false 49 debug = false 50 blocklist = "./rs_base_blocklist.txt" 51 } 52 part_name = "graphic_2d" 53 subsystem_name = "graphic" 54 defines += [ "RUST_CXX_NO_EXCEPTIONS" ] 55 sources = [ 56 "//third_party/rust/crates/cxx/include/cxx.h", 57 "//third_party/rust/crates/cxx/src/cxx.cc", 58 ] 59 deps = [ "//third_party/rust/crates/cxx:lib" ] 60 } 61} 62 63ohos_source_set("render_service_base_src") { 64 branch_protector_ret = "pac_ret" 65 sanitize = { 66 cfi = false 67 cfi_cross_dso = false 68 debug = false 69 blocklist = "./rs_base_blocklist.txt" 70 if (rosen_is_ohos) { 71 boundary_sanitize = true 72 integer_overflow = false 73 ubsan = true 74 } 75 } 76 defines = [] 77 defines += gpu_defines 78 defines += [ "MODULE_RSB" ] 79 80 sources = [ 81 #animation 82 "src/animation/rs_animation_fraction.cpp", 83 "src/animation/rs_animation_manager.cpp", 84 "src/animation/rs_animation_marshalling.cpp", 85 "src/animation/rs_animation_rate_decider.cpp", 86 "src/animation/rs_animation_timing_protocol.cpp", 87 "src/animation/rs_animation_trace_utils.cpp", 88 "src/animation/rs_cubic_bezier_interpolator.cpp", 89 "src/animation/rs_interpolator.cpp", 90 "src/animation/rs_particle_noise_field.cpp", 91 "src/animation/rs_render_animation.cpp", 92 "src/animation/rs_render_curve_animation.cpp", 93 "src/animation/rs_render_interactive_implict_animator.cpp", 94 "src/animation/rs_render_interactive_implict_animator_map.cpp", 95 "src/animation/rs_render_interpolating_spring_animation.cpp", 96 "src/animation/rs_render_keyframe_animation.cpp", 97 "src/animation/rs_render_particle.cpp", 98 "src/animation/rs_render_particle_animation.cpp", 99 "src/animation/rs_render_particle_effector.cpp", 100 "src/animation/rs_render_particle_emitter.cpp", 101 "src/animation/rs_render_particle_system.cpp", 102 "src/animation/rs_render_path_animation.cpp", 103 "src/animation/rs_render_property_animation.cpp", 104 "src/animation/rs_render_spring_animation.cpp", 105 "src/animation/rs_render_transition.cpp", 106 "src/animation/rs_render_transition_effect.cpp", 107 "src/animation/rs_spring_interpolator.cpp", 108 "src/animation/rs_spring_model.cpp", 109 "src/animation/rs_steps_interpolator.cpp", 110 "src/animation/rs_value_estimator.cpp", 111 112 # message(depracated) 113 "src/command/rs_message_processor.cpp", 114 115 # modifier 116 "src/modifier/rs_render_modifier.cpp", 117 "src/modifier/rs_render_property.cpp", 118 119 #command 120 "src/command/rs_animation_command.cpp", 121 "src/command/rs_base_node_command.cpp", 122 "src/command/rs_canvas_drawing_node_command.cpp", 123 "src/command/rs_canvas_node_command.cpp", 124 "src/command/rs_command_factory.cpp", 125 "src/command/rs_command_verify_helper.cpp", 126 "src/command/rs_display_node_command.cpp", 127 "src/command/rs_effect_node_command.cpp", 128 "src/command/rs_frame_rate_linker_command.cpp", 129 "src/command/rs_node_command.cpp", 130 "src/command/rs_node_showing_command.cpp", 131 "src/command/rs_proxy_node_command.cpp", 132 "src/command/rs_root_node_command.cpp", 133 "src/command/rs_surface_node_command.cpp", 134 135 #offscreen_render 136 "src/offscreen_render/rs_offscreen_render_thread.cpp", 137 138 #common 139 "src/common/rs_background_thread.cpp", 140 "src/common/rs_color.cpp", 141 "src/common/rs_common_def.cpp", 142 "src/common/rs_common_tools.cpp", 143 "src/common/rs_obj_abs_geometry.cpp", 144 "src/common/rs_occlusion_region.cpp", 145 "src/common/rs_occlusion_region_helper.cpp", 146 "src/common/rs_rectangles_merger.cpp", 147 "src/common/rs_special_layer_manager.cpp", 148 "src/common/rs_thread_handler_generic.cpp", 149 "src/common/rs_thread_looper_generic.cpp", 150 "src/common/rs_thread_looper_impl.cpp", 151 "src/common/rs_xcollie.cpp", 152 153 #delegate 154 "src/delegate/rs_functional_delegate.cpp", 155 156 #ipc_callbacks 157 "src/ipc_callbacks/buffer_available_callback_proxy.cpp", 158 "src/ipc_callbacks/buffer_available_callback_stub.cpp", 159 "src/ipc_callbacks/buffer_clear_callback_proxy.cpp", 160 "src/ipc_callbacks/buffer_clear_callback_stub.cpp", 161 "src/ipc_callbacks/hgm_config_change_callback_proxy.cpp", 162 "src/ipc_callbacks/hgm_config_change_callback_stub.cpp", 163 "src/ipc_callbacks/rs_application_agent_proxy.cpp", 164 "src/ipc_callbacks/rs_application_agent_stub.cpp", 165 "src/ipc_callbacks/rs_frame_rate_linker_expected_fps_update_callback_proxy.cpp", 166 "src/ipc_callbacks/rs_frame_rate_linker_expected_fps_update_callback_stub.cpp", 167 "src/ipc_callbacks/rs_occlusion_change_callback_proxy.cpp", 168 "src/ipc_callbacks/rs_occlusion_change_callback_stub.cpp", 169 "src/ipc_callbacks/rs_rt_refresh_callback.cpp", 170 "src/ipc_callbacks/rs_self_drawing_node_rect_change_callback_proxy.cpp", 171 "src/ipc_callbacks/rs_self_drawing_node_rect_change_callback_stub.cpp", 172 "src/ipc_callbacks/rs_surface_buffer_callback.cpp", 173 "src/ipc_callbacks/rs_surface_buffer_callback_proxy.cpp", 174 "src/ipc_callbacks/rs_surface_buffer_callback_stub.cpp", 175 "src/ipc_callbacks/rs_surface_occlusion_change_callback_proxy.cpp", 176 "src/ipc_callbacks/rs_surface_occlusion_change_callback_stub.cpp", 177 "src/ipc_callbacks/rs_uiextension_callback_proxy.cpp", 178 "src/ipc_callbacks/rs_uiextension_callback_stub.cpp", 179 "src/ipc_callbacks/screen_change_callback_proxy.cpp", 180 "src/ipc_callbacks/screen_change_callback_stub.cpp", 181 "src/ipc_callbacks/surface_capture_callback_proxy.cpp", 182 "src/ipc_callbacks/surface_capture_callback_stub.cpp", 183 184 #ipc_security 185 "src/ipc_security/rs_ipc_interface_code_access_verifier_base.cpp", 186 187 #memory 188 "src/memory/rs_memory_flow_control.cpp", 189 "src/memory/rs_memory_graphic.cpp", 190 "src/memory/rs_memory_snapshot.cpp", 191 "src/memory/rs_memory_track.cpp", 192 "src/memory/rs_tag_tracker.cpp", 193 194 #pipeline 195 "src/pipeline/rs_canvas_drawing_render_node.cpp", 196 "src/pipeline/rs_canvas_render_node.cpp", 197 "src/pipeline/rs_context.cpp", 198 "src/pipeline/rs_dirty_region_manager.cpp", 199 "src/pipeline/rs_display_render_node.cpp", 200 "src/pipeline/rs_draw_cmd.cpp", 201 "src/pipeline/rs_draw_cmd_list.cpp", 202 "src/pipeline/rs_effect_render_node.cpp", 203 "src/pipeline/rs_occlusion_config.cpp", 204 "src/pipeline/rs_paint_filter_canvas.cpp", 205 "src/pipeline/rs_proxy_render_node.cpp", 206 "src/pipeline/rs_record_cmd_utils.cpp", 207 "src/pipeline/rs_recording_canvas.cpp", 208 "src/pipeline/rs_render_content.cpp", 209 "src/pipeline/rs_render_display_sync.cpp", 210 "src/pipeline/rs_render_frame_rate_linker.cpp", 211 "src/pipeline/rs_render_frame_rate_linker_map.cpp", 212 "src/pipeline/rs_render_node.cpp", 213 "src/pipeline/rs_render_node_autocache.cpp", 214 "src/pipeline/rs_render_node_gc.cpp", 215 "src/pipeline/rs_render_node_map.cpp", 216 "src/pipeline/rs_root_render_node.cpp", 217 "src/pipeline/rs_single_frame_composer.cpp", 218 "src/pipeline/rs_surface_buffer_callback_manager.cpp", 219 "src/pipeline/rs_surface_handler.cpp", 220 "src/pipeline/rs_surface_render_node.cpp", 221 "src/pipeline/rs_task_dispatcher.cpp", 222 "src/pipeline/rs_uni_render_judgement.cpp", 223 "src/pipeline/sk_resource_manager.cpp", 224 225 #property 226 "src/property/rs_point_light_manager.cpp", 227 "src/property/rs_properties.cpp", 228 "src/property/rs_properties_painter.cpp", 229 "src/property/rs_property_drawable.cpp", 230 "src/property/rs_property_drawable_bounds_geometry.cpp", 231 "src/property/rs_property_drawable_frame_geometry.cpp", 232 "src/property/rs_property_drawable_utilities.cpp", 233 "src/property/rs_property_trace.cpp", 234 235 #render 236 "src/render/rs_aibar_shader_filter.cpp", 237 "src/render/rs_attraction_effect_filter.cpp", 238 "src/render/rs_blur_filter.cpp", 239 "src/render/rs_border.cpp", 240 "src/render/rs_color_extract.cpp", 241 "src/render/rs_color_picker.cpp", 242 "src/render/rs_colorful_shadow_filter.cpp", 243 "src/render/rs_distortion_shader_filter.cpp", 244 "src/render/rs_dot_matrix_shader.cpp", 245 "src/render/rs_drawing_filter.cpp", 246 "src/render/rs_filter.cpp", 247 "src/render/rs_filter_cache_manager.cpp", 248 "src/render/rs_flow_light_sweep_shader.cpp", 249 "src/render/rs_fly_out_shader_filter.cpp", 250 "src/render/rs_foreground_effect_filter.cpp", 251 "src/render/rs_grey_shader_filter.cpp", 252 "src/render/rs_high_performance_visual_engine.cpp", 253 "src/render/rs_hps_blur.cpp", 254 "src/render/rs_image.cpp", 255 "src/render/rs_image_base.cpp", 256 "src/render/rs_image_cache.cpp", 257 "src/render/rs_kawase_blur.cpp", 258 "src/render/rs_kawase_blur_shader_filter.cpp", 259 "src/render/rs_light_up_effect_filter.cpp", 260 "src/render/rs_linear_gradient_blur_shader_filter.cpp", 261 "src/render/rs_magnifier_shader_filter.cpp", 262 "src/render/rs_mask.cpp", 263 "src/render/rs_maskcolor_shader_filter.cpp", 264 "src/render/rs_material_filter.cpp", 265 "src/render/rs_mesa_blur_shader_filter.cpp", 266 "src/render/rs_motion_blur_filter.cpp", 267 "src/render/rs_particles_drawable.cpp", 268 "src/render/rs_path.cpp", 269 "src/render/rs_pixel_map_shader.cpp", 270 "src/render/rs_pixel_map_util.cpp", 271 "src/render/rs_resource_manager.cpp", 272 "src/render/rs_shader.cpp", 273 "src/render/rs_shadow.cpp", 274 "src/render/rs_skia_filter.cpp", 275 "src/render/rs_spherize_effect_filter.cpp", 276 "src/render/rs_typeface_cache.cpp", 277 "src/render/rs_water_ripple_shader_filter.cpp", 278 279 #transaction 280 "src/transaction/rs_hgm_config_data.cpp", 281 "src/transaction/rs_occlusion_data.cpp", 282 "src/transaction/rs_self_drawing_node_rect_data.cpp", 283 "src/transaction/rs_transaction_data.cpp", 284 "src/transaction/rs_transaction_handler.cpp", 285 "src/transaction/rs_transaction_metric_collector.cpp", 286 "src/transaction/rs_transaction_proxy.cpp", 287 "src/transaction/rs_uiextension_data.cpp", 288 289 #gfx 290 "src/gfx/dump/rs_dump_manager.cpp", 291 "src/gfx/fps_info/rs_surface_fps.cpp", 292 "src/gfx/fps_info/rs_surface_fps_manager.cpp", 293 "src/gfx/performance/rs_perfmonitor_reporter.cpp", 294 295 #screen_manager 296 "src/screen_manager/rs_screen_capability.cpp", 297 "src/screen_manager/rs_screen_data.cpp", 298 "src/screen_manager/rs_screen_hdr_capability.cpp", 299 "src/screen_manager/rs_screen_mode_info.cpp", 300 "src/screen_manager/rs_screen_props.cpp", 301 "src/screen_manager/rs_virtual_screen_resolution.cpp", 302 303 #info_collection 304 "src/info_collection/rs_gpu_dirty_region_collection.cpp", 305 "src/info_collection/rs_hardware_compose_disabled_reason_collection.cpp", 306 "src/info_collection/rs_hdr_collection.cpp", 307 "src/info_collection/rs_layer_compose_collection.cpp", 308 309 #monitor 310 "src/monitor/self_drawing_node_monitor.cpp", 311 ] 312 313 if (rs_enable_gpu) { 314 sources += [ 315 #drawable 316 "src/drawable/rs_drawable.cpp", 317 "src/drawable/rs_misc_drawable.cpp", 318 "src/drawable/rs_property_drawable.cpp", 319 "src/drawable/rs_property_drawable_background.cpp", 320 "src/drawable/rs_property_drawable_foreground.cpp", 321 "src/drawable/rs_property_drawable_utils.cpp", 322 "src/drawable/rs_render_node_drawable_adapter.cpp", 323 "src/drawable/rs_render_node_shadow_drawable.cpp", 324 325 #params 326 "src/params/rs_canvas_drawing_render_params.cpp", 327 "src/params/rs_display_render_params.cpp", 328 "src/params/rs_effect_render_params.cpp", 329 "src/params/rs_rcd_render_params.cpp", 330 "src/params/rs_render_params.cpp", 331 "src/params/rs_render_thread_params.cpp", 332 "src/params/rs_surface_render_params.cpp", 333 ] 334 } 335 336 if (defined(input_ext_feature_magiccursor) && input_ext_feature_magiccursor) { 337 sources += [ 338 #ipc_callbacks 339 "src/ipc_callbacks/pointer_render/pointer_luminance_callback_ipc_interface_code_access_verifier.cpp", 340 "src/ipc_callbacks/pointer_render/pointer_luminance_callback_proxy.cpp", 341 "src/ipc_callbacks/pointer_render/pointer_luminance_callback_stub.cpp", 342 ] 343 } 344 345 if (rosen_is_ohos) { 346 sources += [ 347 #color_temperature 348 "src/display_engine/rs_color_temperature.cpp", 349 350 #luminance 351 "src/display_engine/rs_luminance_control.cpp", 352 ] 353 } else { 354 sources += [ 355 #color_temperature 356 "src/display_engine/mingw/rs_color_temperature.cpp", 357 358 #luminance 359 "src/display_engine/mingw/rs_luminance_control.cpp", 360 ] 361 } 362 363 if (is_cross_platform) { 364 sources -= [ 365 #command 366 "src/command/rs_display_node_command.cpp", 367 368 #common 369 "src/common/rs_thread_handler_generic.cpp", 370 "src/common/rs_thread_looper_generic.cpp", 371 "src/common/rs_thread_looper_impl.cpp", 372 373 #ipc_callbacks 374 "src/ipc_callbacks/buffer_available_callback_proxy.cpp", 375 "src/ipc_callbacks/buffer_available_callback_stub.cpp", 376 "src/ipc_callbacks/buffer_clear_callback_proxy.cpp", 377 "src/ipc_callbacks/buffer_clear_callback_stub.cpp", 378 "src/ipc_callbacks/hgm_config_change_callback_proxy.cpp", 379 "src/ipc_callbacks/hgm_config_change_callback_stub.cpp", 380 "src/ipc_callbacks/rs_occlusion_change_callback_proxy.cpp", 381 "src/ipc_callbacks/rs_occlusion_change_callback_stub.cpp", 382 "src/ipc_callbacks/rs_surface_occlusion_change_callback_proxy.cpp", 383 "src/ipc_callbacks/rs_surface_occlusion_change_callback_stub.cpp", 384 "src/ipc_callbacks/screen_change_callback_proxy.cpp", 385 "src/ipc_callbacks/screen_change_callback_stub.cpp", 386 "src/ipc_callbacks/surface_capture_callback_proxy.cpp", 387 "src/ipc_callbacks/surface_capture_callback_stub.cpp", 388 389 #ipc_security 390 "src/ipc_security/rs_ipc_interface_code_access_verifier_base.cpp", 391 392 #memory 393 "src/memory/rs_memory_graphic.cpp", 394 "src/memory/rs_memory_track.cpp", 395 "src/memory/rs_tag_tracker.cpp", 396 397 #pipeline 398 "src/pipeline/rs_occlusion_config.cpp", 399 400 #transaction 401 "src/transaction/rs_hgm_config_data.cpp", 402 "src/transaction/rs_occlusion_data.cpp", 403 404 #screen_manager 405 "src/screen_manager/rs_screen_capability.cpp", 406 "src/screen_manager/rs_screen_data.cpp", 407 "src/screen_manager/rs_screen_hdr_capability.cpp", 408 "src/screen_manager/rs_screen_mode_info.cpp", 409 "src/screen_manager/rs_screen_props.cpp", 410 "src/screen_manager/rs_virtual_screen_resolution.cpp", 411 ] 412 } 413 414 cflags = [ 415 "-Wall", 416 "-Wno-pointer-arith", 417 "-Wno-non-virtual-dtor", 418 "-Wno-missing-field-initializers", 419 "-Wno-c++11-narrowing", 420 "-fvisibility=hidden", 421 "-DIMAGE_COLORSPACE_FLAG", 422 ] 423 424 if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) { 425 if (!use_libfuzzer) { 426 cflags += [ "-flto=thin" ] 427 } 428 if (enhanced_opt) { 429 if (!use_libfuzzer) { 430 cflags += [ "-fwhole-program-vtables" ] 431 } 432 if (graphic_2d_feature_enable_pgo && 433 graphic_2d_feature_product != "default") { 434 cflags += [ 435 "-fprofile-use=" + rebase_path( 436 "${graphic_2d_feature_pgo_path}/librender_service_base.profdata", 437 root_build_dir), 438 "-Wno-error=backend-plugin", 439 "-Wno-profile-instr-out-of-date", 440 "-Wno-profile-instr-unprofiled", 441 ] 442 } 443 if (graphic_2d_feature_product == "pc" && target_cpu == "arm64") { 444 cflags += [ "-moutline-atomics" ] 445 } 446 } 447 } 448 449 if (graphic_2d_feature_product != "wearable") { 450 defines += [ "IS_ENABLE_DRM" ] 451 } 452 453 cflags_cc = [ 454 "-std=c++17", 455 "-fvisibility-inlines-hidden", 456 ] 457 458 public_configs = [ ":export_config" ] 459 public_deps = [ "src/platform:platform" ] 460 461 if (enable_export_macro) { 462 defines += [ "ENABLE_EXPORT_MACRO" ] 463 } 464 465 if (rs_enable_gpu) { 466 defines += [ 467 "GL_GLEXT_PROTOTYPES", 468 "EGL_EGLEXT_PROTOTYPES", 469 ] 470 } 471 472 if (current_os == "ohos") { 473 defines += [ "IS_OHOS" ] 474 } 475 476 include_dirs = [ 477 "$graphic_2d_root/rosen/modules/utils", 478 "$graphic_2d_root/interfaces/inner_api/common", 479 "$graphic_2d_root/rosen/modules/graphics_effect/include", 480 "$graphic_2d_root/rosen/modules/render_service_base/src", 481 "$graphic_2d_root/rosen/modules/render_service_base/include", 482 "$graphic_2d_root/utils/color_manager/export", 483 "$graphic_2d_root/utils/log", 484 ] 485 486 if (is_arkui_x) { 487 include_dirs += [ 488 "$graphic_2d_root/utils/color_manager/export", 489 "//foundation/multimedia/image_framework/interfaces/innerkits/include", 490 "//foundation/graphic/graphic_surface/interfaces/inner_api/surface", 491 ] 492 } 493 494 deps = [ 495 "$graphic_2d_root/utils/sandbox:sandbox_utils", 496 "$rosen_root/modules/graphics_effect:libgraphics_effect", 497 "$rosen_root/modules/platform:hilog", 498 "$rosen_root/modules/platform:ipc_core", 499 ] 500 501 external_deps = [ 502 "graphic_surface:surface_headers", 503 "hilog:libhilog", 504 ] 505 506 if (use_memmgr_plugin || use_memmgr) { 507 external_deps += [ "memmgr:memmgrclient" ] 508 } 509 510 if (rosen_is_ohos) { 511 external_deps += [ 512 "hicollie:libhicollie", 513 "hisysevent:libhisysevent", 514 "image_framework:image_native", 515 "lz4:liblz4_shared", 516 ] 517 } 518 519 if (!is_mingw && !is_mac && !is_cross_platform && 520 !(host_os == "linux" && host_cpu == "arm64")) { 521 defines += [ "ENABLE_RUST" ] 522 sources += get_target_outputs(":particle_cxx_gen") 523 include_dirs += [ 524 "//third_party/rust/crates/cxx/include", 525 "${target_gen_dir}/rust/src", 526 ] 527 deps += [ 528 ":particle_cxx_cppdeps", 529 ":particle_cxx_gen", 530 ":particle_cxx_rust", 531 ] 532 } 533 534 if (use_video_processing_engine) { 535 defines += [ "USE_VIDEO_PROCESSING_ENGINE" ] 536 include_dirs += [ "$video_processing_engine_root/interfaces/inner_api" ] 537 external_deps += [ "video_processing_engine:videoprocessingengine" ] 538 sources += [ "src/render/rs_colorspace_convert.cpp" ] 539 } 540 541 if (rosen_is_ohos && defined(enable_ipc_security) && enable_ipc_security) { 542 defines += [ "ENABLE_IPC_SECURITY" ] 543 external_deps += [ 544 "access_token:libaccesstoken_sdk", 545 "ipc:ipc_core", 546 ] 547 } 548 549 if (rosen_is_ohos && defined(enable_ipc_security_access_counter) && 550 enable_ipc_security_access_counter) { 551 defines += [ "ENABLE_IPC_SECURITY_ACCESS_COUNTER" ] 552 } 553 554 if (defined(graphic_2d_math_tools_configs.vendor_root)) { 555 sources += 556 graphic_2d_math_tools_configs.librender_service_ext_math_tools_sources 557 sources -= graphic_2d_math_tools_configs.librender_service_ext_math_tools_sources_del 558 } 559 560 if (defined(use_rosen_drawing) && use_rosen_drawing) { 561 defines += [ "USE_ROSEN_DRAWING" ] 562 if (rs_enable_gpu) { 563 defines += [ "RS_ENABLE_GPU" ] 564 } 565 566 deps += [ "$rosen_root/modules/2d_graphics:2d_graphics" ] 567 } 568 569 if (rosen_cross_platform) { 570 public_configs += [ 571 "$rosen_root/modules/platform:eventhandler_config", 572 "$rosen_root/modules/platform:image_native_config", 573 ] 574 } else { 575 external_deps += [ 576 "drivers_interface_display:display_commontype_idl_headers", 577 "hitrace:hitrace_meter", 578 ] 579 } 580 581 if (rosen_is_win) { 582 defines += [ "_USE_MATH_DEFINES" ] 583 } 584 585 if (defined(ddgr_ext_configs)) { 586 libs = ddgr_ext_configs.ddgr_libs 587 defines += ddgr_ext_configs.ddgr_defines 588 sources += ddgr_ext_configs.libddgr_ext_adaptor_base_sources 589 include_dirs += ddgr_ext_configs.libddgr_ext_adaptor_include_dirs 590 } 591 592 #profiler 593 if (rosen_is_ohos && graphic_2d_feature_rs_enable_profiler && 594 player_framework_enable) { 595 defines += [ "RS_PROFILER_ENABLED" ] 596 defines += [ "RS_PROFILER_BETA_ENABLED" ] 597 sources += [ 598 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_archive.cpp", 599 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_base.cpp", 600 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_cache.cpp", 601 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_dump.cpp", 602 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_pixelmap.cpp", 603 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_settings.cpp", 604 "$graphic_2d_root/rosen/modules/render_service_profiler/rs_profiler_utils.cpp", 605 ] 606 607 if (defined(global_parts_info) && 608 defined(global_parts_info.open_source_libyuv)) { 609 defines += [ "RS_PROFILER_SUPPORTS_PIXELMAP_YUV_EXT" ] 610 } 611 } 612 include_dirs += [ "$graphic_2d_root/rosen/modules/render_service_profiler" ] 613 614 if (defined(global_parts_info) && 615 defined(global_parts_info.resourceschedule_resource_schedule_service)) { 616 external_deps += [ "resource_schedule_service:ressched_client" ] 617 defines += [ "RES_BASE_SCHED_ENABLE" ] 618 external_deps += [ "qos_manager:qos" ] 619 } 620 621 part_name = "graphic_2d" 622 subsystem_name = "graphic" 623} 624 625config("render_service_base_all_deps_config") { 626 include_dirs = [ 627 "include", 628 "$rosen_root/modules/2d_graphics/include", 629 "$rosen_root/modules/2d_graphics/src", 630 "$rosen_root/modules/2d_graphics/src/drawing/engine_adapter", 631 ] 632} 633 634config("render_service_base_link_config") { 635 if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) { 636 ldflags = [ 637 "-Wl,--lto-O2", 638 "-Wl,-mllvm", 639 "-Wl,-wholeprogramdevirt-check=fallback", 640 "-Wl,-Bsymbolic", 641 ] 642 643 if (graphic_2d_feature_enable_pgo && enable_enhanced_opt) { 644 ldflags += [ "-Wl,--aarch64-inline-plt" ] 645 } 646 } 647} 648 649ohos_shared_library("librender_service_base") { 650 branch_protector_ret = "pac_ret" 651 if (!is_mingw && !is_win && !is_linux) { 652 sanitize = { 653 cfi = false 654 cfi_cross_dso = false 655 debug = false 656 blocklist = "./rs_base_blocklist.txt" 657 } 658 } 659 660 sources = [ "src/common/rs_common_hook.cpp" ] 661 662 public_configs = [ ":render_service_base_all_deps_config" ] 663 664 if (enhanced_opt) { 665 configs = [ ":render_service_base_link_config" ] 666 } 667 668 deps = [ 669 "$rosen_root/modules/platform:eventhandler", 670 "src/platform:platform", 671 ] 672 673 public_deps = [ ":render_service_base_src" ] 674 675 external_deps = [ "hilog:libhilog" ] 676 677 public_external_deps = [] 678 if (rosen_is_ohos) { 679 external_deps += [ "hisysevent:libhisysevent" ] 680 public_external_deps += [ 681 "graphic_surface:sync_fence", 682 "image_framework:image_native", 683 ] 684 } 685 686 if (rs_enable_gpu) { 687 public_external_deps += [ "openssl:libcrypto_shared" ] 688 } 689 690 part_name = "graphic_2d" 691 subsystem_name = "graphic" 692} 693 694ohos_source_set("librender_service_base_static") { 695 branch_protector_ret = "pac_ret" 696 sanitize = { 697 cfi = false 698 cfi_cross_dso = false 699 debug = false 700 blocklist = "./rs_base_blocklist.txt" 701 } 702 703 public_configs = [ ":render_service_base_all_deps_config" ] 704 705 if (is_arkui_x) { 706 sources = [ "src/common/rs_common_hook.cpp" ] 707 } 708 709 deps = [ "$rosen_root/modules/platform:eventhandler" ] 710 public_deps = [ 711 ":render_service_base_src", 712 "src/platform:platform", 713 ] 714 715 public_external_deps = [] 716 if (rosen_is_ohos) { 717 public_external_deps += [ 718 "graphic_surface:sync_fence", 719 "image_framework:image_native", 720 ] 721 } 722 723 if (rs_enable_gpu) { 724 if (is_arkui_x) { 725 public_deps += [ "//third_party/openssl:libcrypto_static" ] 726 } else { 727 public_external_deps += [ "openssl:libcrypto_shared" ] 728 } 729 } 730 731 part_name = "graphic_2d" 732 subsystem_name = "graphic" 733} 734