• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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