1# Copyright (c) 2021-2023 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 18## Build librender_service.so 19ohos_shared_library("librender_service") { 20 defines = [] 21 if (graphic_2d_feature_color_gamut_enable) { 22 defines += [ "PADDING_HEIGHT_32" ] 23 } else { 24 defines += [] 25 } 26 if (use_musl) { 27 defines += [ "FRAME_AWARE_TRACE" ] 28 } 29 defines += gpu_defines 30 31 sources = [ 32 "core/memory/rs_memory_manager.cpp", 33 "core/memory/rs_skia_memory_tracer.cpp", 34 "core/pipeline/rs_base_render_engine.cpp", 35 "core/pipeline/rs_base_render_util.cpp", 36 "core/pipeline/rs_cold_start_thread.cpp", 37 "core/pipeline/rs_composer_adapter.cpp", 38 "core/pipeline/rs_divided_render_util.cpp", 39 "core/pipeline/rs_hardware_thread.cpp", 40 "core/pipeline/rs_main_thread.cpp", 41 "core/pipeline/rs_physical_screen_processor.cpp", 42 "core/pipeline/rs_processor.cpp", 43 "core/pipeline/rs_processor_factory.cpp", 44 "core/pipeline/rs_qos_thread.cpp", 45 "core/pipeline/rs_render_engine.cpp", 46 "core/pipeline/rs_render_service.cpp", 47 "core/pipeline/rs_render_service_connection.cpp", 48 "core/pipeline/rs_render_service_listener.cpp", 49 "core/pipeline/rs_render_service_visitor.cpp", 50 "core/pipeline/rs_surface_capture_task.cpp", 51 "core/pipeline/rs_uni_render_composer_adapter.cpp", 52 "core/pipeline/rs_uni_render_engine.cpp", 53 "core/pipeline/rs_uni_render_listener.cpp", 54 "core/pipeline/rs_uni_render_processor.cpp", 55 "core/pipeline/rs_uni_render_util.cpp", 56 "core/pipeline/rs_uni_render_virtual_processor.cpp", 57 "core/pipeline/rs_uni_render_visitor.cpp", 58 "core/pipeline/rs_uni_ui_capture.cpp", 59 "core/pipeline/rs_unmarshal_thread.cpp", 60 "core/pipeline/rs_virtual_screen_processor.cpp", 61 "core/screen_manager/rs_screen.cpp", 62 "core/screen_manager/rs_screen_manager.cpp", 63 "core/system/rs_system_parameters.cpp", 64 "core/transaction/rs_render_service_connection_stub.cpp", 65 "core/transaction/rs_render_service_stub.cpp", 66 ] 67 68 if (rs_enable_driven_render && rs_enable_gpu) { 69 sources += [ 70 "core/pipeline/driven_render/rs_driven_render_ext.cpp", 71 "core/pipeline/driven_render/rs_driven_render_listener.cpp", 72 "core/pipeline/driven_render/rs_driven_render_manager.cpp", 73 "core/pipeline/driven_render/rs_driven_render_visitor.cpp", 74 "core/pipeline/driven_render/rs_driven_surface_render_node.cpp", 75 ] 76 } 77 78 if (rs_enable_eglimage) { 79 sources += [ "core/pipeline/rs_egl_image_manager.cpp" ] 80 } 81 82 if (rs_enable_parallel_render && rs_enable_gpu) { 83 sources += [ 84 "core/pipeline/parallel_render/rs_node_cost_manager.cpp", 85 "core/pipeline/parallel_render/rs_parallel_hardware_composer.cpp", 86 "core/pipeline/parallel_render/rs_parallel_pack_visitor.cpp", 87 "core/pipeline/parallel_render/rs_parallel_render_manager.cpp", 88 "core/pipeline/parallel_render/rs_parallel_sub_thread.cpp", 89 "core/pipeline/parallel_render/rs_parallel_task_manager.cpp", 90 "core/pipeline/parallel_render/rs_render_task.cpp", 91 "core/pipeline/parallel_render/rs_sub_thread.cpp", 92 "core/pipeline/parallel_render/rs_sub_thread_manager.cpp", 93 ] 94 } 95 96 include_dirs = [ 97 "core", 98 "$graphic_2d_root/frameworks/surface/include", 99 "$graphic_2d_root/rosen/include", 100 "$graphic_2d_root/rosen/modules/composer/vsync/include", 101 "$graphic_2d_root/rosen/modules/render_frame_trace/include", 102 "$graphic_2d_root/rosen/modules/render_service_base/src", 103 "$graphic_2d_root/rosen/modules/utils", 104 "//commonlibrary/c_utils/base/include", 105 "//utils/system/safwk/native/include", 106 "$graphic_2d_root/utils/log", 107 "//foundation/barrierfree/accessibility/interfaces/innerkits/acfwk/include", 108 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/config", 109 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/frame_rate_manager", 110 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/hgm_screen_manager", 111 "$graphic_2d_root/rosen/modules/hyper_graphic_manager/core/utils", 112 ] 113 114 deps = [ 115 "$graphic_2d_root:libsurface", 116 "$graphic_2d_root/rosen/modules/composer:libcomposer", 117 "$graphic_2d_root/rosen/modules/hyper_graphic_manager:libhyper_graphic_manager", 118 "$graphic_2d_root/rosen/modules/render_frame_trace:render_frame_trace", 119 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 120 ] 121 122 public_deps = [ "//third_party/libpng:libpng" ] 123 124 if (defined(use_new_skia) && use_new_skia) { 125 public_deps += [ "//third_party/skia:skia_ohos" ] 126 } else { 127 public_deps += [ "//third_party/flutter/build/skia:ace_skia_ohos" ] 128 } 129 130 if (defined(use_new_render_context) && use_new_render_context) { 131 include_dirs += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ] 132 defines += [ "NEW_RENDER_CONTEXT" ] 133 } 134 135 if (rs_enable_gpu) { 136 if (graphic_2d_feature_enable_vulkan) { 137 include_dirs += [ "//third_party/flutter/engine/flutter/vulkan" ] 138 } 139 140 public_deps += [ "$graphic_2d_root:libvulkan" ] 141 } 142 143 if (defined(use_rosen_drawing) && use_rosen_drawing) { 144 defines += [ "USE_ROSEN_DRAWING" ] 145 deps += [ "$rosen_root/modules/2d_graphics:2d_graphics" ] 146 } 147 148 external_deps = [ 149 "access_token:libaccesstoken_sdk", 150 "access_token:libtokenid_sdk", 151 "c_utils:utils", 152 "eventhandler:libeventhandler", 153 "hicollie:libhicollie", 154 "hilog:libhilog", 155 "hisysevent:libhisysevent", 156 "hitrace:hitrace_meter", 157 "init:libbegetutil", 158 "ipc:ipc_core", 159 "safwk:system_ability_fwk", 160 "samgr:samgr_proxy", 161 "window_manager:libwsutils", 162 ] 163 164 if (defined(ddgr_ext_configs)) { 165 libs = ddgr_ext_configs.ddgr_libs 166 defines += ddgr_ext_configs.ddgr_defines 167 sources += ddgr_ext_configs.libddgr_ext_adaptor_sources 168 include_dirs += ddgr_ext_configs.libddgr_ext_adaptor_include_dirs 169 } 170 171 if (rosen_is_ohos) { 172 external_deps += [ "image_framework:image_native" ] 173 } 174 175 if (defined(global_parts_info) && 176 defined(global_parts_info.resourceschedule_soc_perf)) { 177 external_deps += [ "soc_perf:socperf_client" ] 178 defines += [ "SOC_PERF_ENABLE" ] 179 } 180 181 if (accessibility_enable) { 182 external_deps += [ "accessibility:accessibilityconfig" ] 183 defines += accessibility_defines 184 } 185 186 part_name = "graphic_2d" 187 subsystem_name = "graphic" 188} 189 190## Build render_service.bin 191ohos_executable("render_service") { 192 sources = [ "core/main.cpp" ] 193 194 include_dirs = [ 195 "core", 196 "//commonlibrary/c_utils/base/include", 197 ] 198 199 deps = [ 200 ":librender_service", 201 "$graphic_2d_root/rosen/modules/composer:libcomposer", 202 "$graphic_2d_root/rosen/modules/hyper_graphic_manager:libhyper_graphic_manager", 203 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 204 ] 205 206 external_deps = [ 207 "c_utils:utils", 208 "hilog:libhilog", 209 "ipc:ipc_core", 210 ] 211 212 part_name = "graphic_2d" 213 subsystem_name = "graphic" 214} 215