• 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(
17    "//foundation/graphic/graphic_2d/rosen/modules/render_service_base/config.gni")
18
19config("export_config") {
20  cflags_cc = [ "-std=c++17" ]
21  include_dirs = [ "include" ]
22
23  defines = rs_common_define
24}
25
26ohos_source_set("render_service_base_src") {
27  defines = []
28  defines += gpu_defines
29  defines += [ "MODULE_RSB" ]
30
31  sources = [
32    #animation
33    "src/animation/rs_animation_fraction.cpp",
34    "src/animation/rs_animation_manager.cpp",
35    "src/animation/rs_interpolator.cpp",
36    "src/animation/rs_render_animation.cpp",
37    "src/animation/rs_render_curve_animation.cpp",
38    "src/animation/rs_render_keyframe_animation.cpp",
39    "src/animation/rs_render_path_animation.cpp",
40    "src/animation/rs_render_property_animation.cpp",
41    "src/animation/rs_render_spring_animation.cpp",
42    "src/animation/rs_render_transition.cpp",
43    "src/animation/rs_render_transition_effect.cpp",
44    "src/animation/rs_spring_interpolator.cpp",
45    "src/animation/rs_spring_model.cpp",
46    "src/animation/rs_steps_interpolator.cpp",
47    "src/animation/rs_transition_effect.cpp",
48    "src/animation/rs_value_estimator.cpp",
49
50    # message(depracated)
51    "src/command/rs_message_processor.cpp",
52
53    # modifier
54    "src/modifier/rs_render_modifier.cpp",
55    "src/modifier/rs_render_property.cpp",
56
57    #command
58    "src/command/rs_animation_command.cpp",
59    "src/command/rs_base_node_command.cpp",
60    "src/command/rs_canvas_node_command.cpp",
61    "src/command/rs_command_factory.cpp",
62    "src/command/rs_display_node_command.cpp",
63    "src/command/rs_node_command.cpp",
64    "src/command/rs_proxy_node_command.cpp",
65    "src/command/rs_root_node_command.cpp",
66    "src/command/rs_surface_node_command.cpp",
67
68    #common
69    "src/common/rs_color.cpp",
70    "src/common/rs_common_def.cpp",
71    "src/common/rs_obj_abs_geometry.cpp",
72    "src/common/rs_occlusion_region.cpp",
73    "src/common/rs_thread_handler_generic.cpp",
74    "src/common/rs_thread_looper_generic.cpp",
75    "src/common/rs_thread_looper_impl.cpp",
76
77    #delegate
78    "src/delegate/rs_functional_delegate.cpp",
79
80    #ipc_callbacks
81    "src/ipc_callbacks/buffer_available_callback_proxy.cpp",
82    "src/ipc_callbacks/buffer_available_callback_stub.cpp",
83    "src/ipc_callbacks/rs_application_agent_proxy.cpp",
84    "src/ipc_callbacks/rs_application_agent_stub.cpp",
85    "src/ipc_callbacks/rs_occlusion_change_callback_proxy.cpp",
86    "src/ipc_callbacks/rs_occlusion_change_callback_stub.cpp",
87    "src/ipc_callbacks/rs_render_mode_change_callback_proxy.cpp",
88    "src/ipc_callbacks/rs_render_mode_change_callback_stub.cpp",
89    "src/ipc_callbacks/screen_change_callback_proxy.cpp",
90    "src/ipc_callbacks/screen_change_callback_stub.cpp",
91    "src/ipc_callbacks/surface_capture_callback_proxy.cpp",
92    "src/ipc_callbacks/surface_capture_callback_stub.cpp",
93
94    #pipeline
95    "src/pipeline/rs_base_render_node.cpp",
96    "src/pipeline/rs_canvas_render_node.cpp",
97    "src/pipeline/rs_context.cpp",
98    "src/pipeline/rs_dirty_region_manager.cpp",
99    "src/pipeline/rs_display_render_node.cpp",
100    "src/pipeline/rs_draw_cmd.cpp",
101    "src/pipeline/rs_draw_cmd_list.cpp",
102    "src/pipeline/rs_occlusion_config.cpp",
103    "src/pipeline/rs_paint_filter_canvas.cpp",
104    "src/pipeline/rs_proxy_render_node.cpp",
105    "src/pipeline/rs_recording_canvas.cpp",
106    "src/pipeline/rs_render_node.cpp",
107    "src/pipeline/rs_render_node_map.cpp",
108    "src/pipeline/rs_root_render_node.cpp",
109    "src/pipeline/rs_surface_handler.cpp",
110    "src/pipeline/rs_surface_render_node.cpp",
111
112    #property
113    "src/property/rs_properties.cpp",
114    "src/property/rs_properties_painter.cpp",
115    "src/property/rs_property_trace.cpp",
116
117    #render
118    "src/render/rs_blur_filter.cpp",
119    "src/render/rs_border.cpp",
120    "src/render/rs_filter.cpp",
121    "src/render/rs_image.cpp",
122    "src/render/rs_image_cache.cpp",
123    "src/render/rs_mask.cpp",
124    "src/render/rs_material_filter.cpp",
125    "src/render/rs_path.cpp",
126    "src/render/rs_shader.cpp",
127    "src/render/rs_shadow.cpp",
128    "src/render/rs_skia_filter.cpp",
129
130    #transaction
131    "src/transaction/rs_occlusion_data.cpp",
132    "src/transaction/rs_transaction_data.cpp",
133    "src/transaction/rs_transaction_proxy.cpp",
134
135    #screen_manager
136    "src/screen_manager/rs_screen_capability.cpp",
137    "src/screen_manager/rs_screen_data.cpp",
138    "src/screen_manager/rs_screen_hdr_capability.cpp",
139    "src/screen_manager/rs_screen_mode_info.cpp",
140    "src/screen_manager/rs_screen_props.cpp",
141    "src/screen_manager/rs_virtual_screen_resolution.cpp",
142  ]
143
144  cflags = [
145    "-Wall",
146    "-Wno-pointer-arith",
147    "-Wno-non-virtual-dtor",
148    "-Wno-missing-field-initializers",
149    "-Wno-c++11-narrowing",
150    "-fvisibility=hidden",
151  ]
152
153  cflags_cc = [
154    "-std=c++17",
155    "-fvisibility-inlines-hidden",
156  ]
157
158  public_configs = [
159    ":export_config",
160    "$rosen_root/modules/platform:eventhandler_config",
161    "$rosen_root/modules/platform:image_native_config",
162  ]
163  public_deps = [ "src/platform:platform" ]
164
165  if (enable_export_macro) {
166    defines += [ "ENABLE_EXPORT_MACRO" ]
167  }
168
169  if (rs_enable_gpu) {
170    sources += [ "src/common/rs_shared_context.cpp" ]
171  }
172
173  if (current_os == "mingw" || current_os == "mac" || current_os == "linux") {
174    sources -= [ "src/common/rs_shared_context.cpp" ]
175  }
176
177  include_dirs = [
178    "//foundation/graphic/graphic_2d/rosen/modules/render_service_base/src",
179    "//foundation/graphic/graphic_2d/utils/log",
180    "//third_party/flutter/skia/src",
181  ]
182
183  deps = [
184    "$rosen_root/modules/platform:eventhandler",
185    "$rosen_root/modules/platform:hilog",
186    "$rosen_root/modules/platform:ipc_core",
187    "//foundation/graphic/graphic_2d/utils:sandbox_utils",
188  ]
189
190  if (!rosen_cross_platform) {
191    external_deps = [ "hitrace_native:hitrace_meter" ]
192  }
193
194  if (rosen_is_win) {
195    defines += [ "_USE_MATH_DEFINES" ]
196  }
197
198  if (defined(graphic_2d_ext_configs.vendor_root)) {
199    sources -= graphic_2d_ext_configs.librender_service_base_ext_sources_del
200    sources += graphic_2d_ext_configs.librender_service_base_ext_sources
201  }
202}
203
204config("render_service_base_all_deps_config") {
205  include_dirs = [ "include" ]
206}
207
208ohos_shared_library("librender_service_base") {
209  all_dependent_configs = [ ":render_service_base_all_deps_config" ]
210
211  public_deps = [
212    ":render_service_base_src",
213    "src/platform:platform",
214  ]
215
216  part_name = "graphic_standard"
217  subsystem_name = "graphic"
218}
219