1e9297d28Sopenharmony_ci# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2e9297d28Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3e9297d28Sopenharmony_ci# you may not use this file except in compliance with the License.
4e9297d28Sopenharmony_ci# You may obtain a copy of the License at
5e9297d28Sopenharmony_ci#
6e9297d28Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7e9297d28Sopenharmony_ci#
8e9297d28Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9e9297d28Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10e9297d28Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11e9297d28Sopenharmony_ci# See the License for the specific language governing permissions and
12e9297d28Sopenharmony_ci# limitations under the License.
13e9297d28Sopenharmony_ci
14e9297d28Sopenharmony_ciimport("//build/ohos.gni")
15e9297d28Sopenharmony_ciimport("//foundation/graphic/graphic_2d/graphic_config.gni")
16e9297d28Sopenharmony_ciimport("render_service_client.gni")
17e9297d28Sopenharmony_ci
18e9297d28Sopenharmony_ciconfig("render_service_client_config") {
19e9297d28Sopenharmony_ci  include_dirs = [
20e9297d28Sopenharmony_ci    "$graphic_2d_root/rosen/modules",
21e9297d28Sopenharmony_ci    "$graphic_2d_root/rosen/modules/render_service_client/core",
22e9297d28Sopenharmony_ci    "$graphic_2d_root/rosen/modules/render_service_base/include",
23e9297d28Sopenharmony_ci    "$graphic_2d_root/interfaces/inner_api/common",
24e9297d28Sopenharmony_ci    "$graphic_2d_root/interfaces/inner_api/composer",
25e9297d28Sopenharmony_ci    "$graphic_2d_root/rosen/modules/2d_engine/rosen_text/export/rosen_text/",
26e9297d28Sopenharmony_ci    "$graphic_2d_root/rosen/modules/2d_graphics",
27e9297d28Sopenharmony_ci  ]
28e9297d28Sopenharmony_ci  defines = rs_common_define
29e9297d28Sopenharmony_ci  if (defined(is_arkui_x) && is_arkui_x) {
30e9297d28Sopenharmony_ci    include_dirs += [
31e9297d28Sopenharmony_ci      "$graphic_2d_root/utils/color_manager/export",
32e9297d28Sopenharmony_ci      "//foundation/multimedia/image_framework/interfaces/innerkits/include",
33e9297d28Sopenharmony_ci    ]
34e9297d28Sopenharmony_ci  }
35e9297d28Sopenharmony_ci}
36e9297d28Sopenharmony_ci
37e9297d28Sopenharmony_citemplate("render_service_client_source_set") {
38e9297d28Sopenharmony_ci  ohos_source_set(target_name) {
39e9297d28Sopenharmony_ci    branch_protector_ret = "pac_ret"
40e9297d28Sopenharmony_ci    sanitize = {
41e9297d28Sopenharmony_ci      cfi = false
42e9297d28Sopenharmony_ci      cfi_cross_dso = false
43e9297d28Sopenharmony_ci      debug = false
44e9297d28Sopenharmony_ci      blocklist = "./rs_client_blocklist.txt"
45e9297d28Sopenharmony_ci      if (rosen_is_ohos) {
46e9297d28Sopenharmony_ci        boundary_sanitize = true
47e9297d28Sopenharmony_ci        integer_overflow = true
48e9297d28Sopenharmony_ci        ubsan = true
49e9297d28Sopenharmony_ci      }
50e9297d28Sopenharmony_ci    }
51e9297d28Sopenharmony_ci    defines = []
52e9297d28Sopenharmony_ci    defines += gpu_defines
53e9297d28Sopenharmony_ci    defines += [ "MODULE_RSC" ]
54e9297d28Sopenharmony_ci    is_static_lib = invoker.is_static_lib
55e9297d28Sopenharmony_ci    include_dirs = [
56e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/2d_graphics/src",
57e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/frame_report/include",
58e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/render_frame_trace/include",
59e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/render_service_base/src",
60e9297d28Sopenharmony_ci      "$graphic_2d_root/utils/color_manager/export",
61e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/2d_engine/rosen_text/symbol/symbol_animation",
62e9297d28Sopenharmony_ci      "$graphic_2d_root/utils/log",
63e9297d28Sopenharmony_ci      "$graphic_2d_root/utils/sandbox",
64e9297d28Sopenharmony_ci    ]
65e9297d28Sopenharmony_ci
66e9297d28Sopenharmony_ci    if (defined(is_arkui_x) && is_arkui_x) {
67e9297d28Sopenharmony_ci      include_dirs += [
68e9297d28Sopenharmony_ci        "$graphic_2d_root/utils/color_manager/export",
69e9297d28Sopenharmony_ci        "//foundation/multimedia/image_framework/interfaces/innerkits/include",
70e9297d28Sopenharmony_ci        "//foundation/graphic/graphic_surface/interfaces/inner_api/surface",
71e9297d28Sopenharmony_ci      ]
72e9297d28Sopenharmony_ci    }
73e9297d28Sopenharmony_ci
74e9297d28Sopenharmony_ci    sources = [
75e9297d28Sopenharmony_ci      #animation
76e9297d28Sopenharmony_ci      "core/animation/rs_animation.cpp",
77e9297d28Sopenharmony_ci      "core/animation/rs_animation_callback.cpp",
78e9297d28Sopenharmony_ci      "core/animation/rs_animation_group.cpp",
79e9297d28Sopenharmony_ci      "core/animation/rs_animation_timing_curve.cpp",
80e9297d28Sopenharmony_ci      "core/animation/rs_curve_animation.cpp",
81e9297d28Sopenharmony_ci      "core/animation/rs_implicit_animation_param.cpp",
82e9297d28Sopenharmony_ci      "core/animation/rs_implicit_animator.cpp",
83e9297d28Sopenharmony_ci      "core/animation/rs_implicit_animator_map.cpp",
84e9297d28Sopenharmony_ci      "core/animation/rs_interactive_implict_animator.cpp",
85e9297d28Sopenharmony_ci      "core/animation/rs_interpolating_spring_animation.cpp",
86e9297d28Sopenharmony_ci      "core/animation/rs_keyframe_animation.cpp",
87e9297d28Sopenharmony_ci      "core/animation/rs_path_animation.cpp",
88e9297d28Sopenharmony_ci      "core/animation/rs_property_animation.cpp",
89e9297d28Sopenharmony_ci      "core/animation/rs_spring_animation.cpp",
90e9297d28Sopenharmony_ci      "core/animation/rs_symbol_animation.cpp",
91e9297d28Sopenharmony_ci      "core/animation/rs_transition.cpp",
92e9297d28Sopenharmony_ci      "core/animation/rs_transition_effect.cpp",
93e9297d28Sopenharmony_ci
94e9297d28Sopenharmony_ci      #modifier
95e9297d28Sopenharmony_ci      "core/modifier/rs_extended_modifier.cpp",
96e9297d28Sopenharmony_ci      "core/modifier/rs_modifier.cpp",
97e9297d28Sopenharmony_ci      "core/modifier/rs_modifier_extractor.cpp",
98e9297d28Sopenharmony_ci      "core/modifier/rs_modifier_manager.cpp",
99e9297d28Sopenharmony_ci      "core/modifier/rs_modifier_manager_map.cpp",
100e9297d28Sopenharmony_ci      "core/modifier/rs_property.cpp",
101e9297d28Sopenharmony_ci      "core/modifier/rs_property_modifier.cpp",
102e9297d28Sopenharmony_ci      "core/modifier/rs_showing_properties_freezer.cpp",
103e9297d28Sopenharmony_ci
104e9297d28Sopenharmony_ci      #jank_detector
105e9297d28Sopenharmony_ci      "core/jank_detector/rs_jank_detector.cpp",
106e9297d28Sopenharmony_ci
107e9297d28Sopenharmony_ci      #pipeline
108e9297d28Sopenharmony_ci      "core/pipeline/rs_divided_ui_capture.cpp",
109e9297d28Sopenharmony_ci      "core/pipeline/rs_node_map.cpp",
110e9297d28Sopenharmony_ci      "core/pipeline/rs_render_thread.cpp",
111e9297d28Sopenharmony_ci      "core/pipeline/rs_render_thread_visitor.cpp",
112e9297d28Sopenharmony_ci
113e9297d28Sopenharmony_ci      #transaction
114e9297d28Sopenharmony_ci      "core/transaction/rs_application_agent_impl.cpp",
115e9297d28Sopenharmony_ci      "core/transaction/rs_interfaces.cpp",
116e9297d28Sopenharmony_ci      "core/transaction/rs_render_thread_client.cpp",
117e9297d28Sopenharmony_ci      "core/transaction/rs_sync_transaction_controller.cpp",
118e9297d28Sopenharmony_ci      "core/transaction/rs_transaction.cpp",
119e9297d28Sopenharmony_ci
120e9297d28Sopenharmony_ci      #ui
121e9297d28Sopenharmony_ci      "core/ui/rs_canvas_drawing_node.cpp",
122e9297d28Sopenharmony_ci      "core/ui/rs_canvas_node.cpp",
123e9297d28Sopenharmony_ci      "core/ui/rs_display_node.cpp",
124e9297d28Sopenharmony_ci      "core/ui/rs_effect_node.cpp",
125e9297d28Sopenharmony_ci      "core/ui/rs_ext_node_operation.cpp",
126e9297d28Sopenharmony_ci      "core/ui/rs_frame_rate_linker.cpp",
127e9297d28Sopenharmony_ci      "core/ui/rs_frame_rate_policy.cpp",
128e9297d28Sopenharmony_ci      "core/ui/rs_hdr_manager.cpp",
129e9297d28Sopenharmony_ci      "core/ui/rs_node.cpp",
130e9297d28Sopenharmony_ci      "core/ui/rs_proxy_node.cpp",
131e9297d28Sopenharmony_ci      "core/ui/rs_root_node.cpp",
132e9297d28Sopenharmony_ci      "core/ui/rs_surface_extractor.cpp",
133e9297d28Sopenharmony_ci      "core/ui/rs_surface_node.cpp",
134e9297d28Sopenharmony_ci      "core/ui/rs_texture_export.cpp",
135e9297d28Sopenharmony_ci      "core/ui/rs_ui_director.cpp",
136e9297d28Sopenharmony_ci      "core/ui/rs_ui_display_soloist.cpp",
137e9297d28Sopenharmony_ci      "core/ui/rs_ui_share_context.cpp",
138e9297d28Sopenharmony_ci    ]
139e9297d28Sopenharmony_ci
140e9297d28Sopenharmony_ci    if (is_cross_platform) {
141e9297d28Sopenharmony_ci      #ui
142e9297d28Sopenharmony_ci      sources -= [ "core/ui/rs_display_node.cpp" ]
143e9297d28Sopenharmony_ci      defines += [ "CROSS_PLATFORM" ]
144e9297d28Sopenharmony_ci    }
145e9297d28Sopenharmony_ci
146e9297d28Sopenharmony_ci    if (rosen_is_ohos) {
147e9297d28Sopenharmony_ci      sources += [ "$rosen_root/modules/frame_report/src/rs_frame_report.cpp" ]
148e9297d28Sopenharmony_ci    } else if (!is_arkui_x) {
149e9297d28Sopenharmony_ci      sources +=
150e9297d28Sopenharmony_ci          [ "$rosen_root/modules/frame_report/src/mingw/rs_frame_report.cpp" ]
151e9297d28Sopenharmony_ci    }
152e9297d28Sopenharmony_ci
153e9297d28Sopenharmony_ci    cflags = [
154e9297d28Sopenharmony_ci      "-Wall",
155e9297d28Sopenharmony_ci      "-Wno-pointer-arith",
156e9297d28Sopenharmony_ci      "-Wno-non-virtual-dtor",
157e9297d28Sopenharmony_ci      "-Wno-missing-field-initializers",
158e9297d28Sopenharmony_ci      "-Wno-c++11-narrowing",
159e9297d28Sopenharmony_ci      "-fvisibility=hidden",
160e9297d28Sopenharmony_ci    ]
161e9297d28Sopenharmony_ci
162e9297d28Sopenharmony_ci    if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
163e9297d28Sopenharmony_ci      if (!use_libfuzzer) {
164e9297d28Sopenharmony_ci        cflags += [ "-flto=thin" ]
165e9297d28Sopenharmony_ci      }
166e9297d28Sopenharmony_ci      if (enhanced_opt) {
167e9297d28Sopenharmony_ci        if (!use_libfuzzer) {
168e9297d28Sopenharmony_ci          cflags += [ "-fwhole-program-vtables" ]
169e9297d28Sopenharmony_ci        }
170e9297d28Sopenharmony_ci      }
171e9297d28Sopenharmony_ci    }
172e9297d28Sopenharmony_ci
173e9297d28Sopenharmony_ci    cflags_cc = [
174e9297d28Sopenharmony_ci      "-std=c++17",
175e9297d28Sopenharmony_ci      "-fvisibility-inlines-hidden",
176e9297d28Sopenharmony_ci    ]
177e9297d28Sopenharmony_ci
178e9297d28Sopenharmony_ci    deps = [
179e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/platform:ipc_core",
180e9297d28Sopenharmony_ci      "$graphic_2d_root/rosen/modules/render_frame_trace:render_frame_trace",
181e9297d28Sopenharmony_ci    ]
182e9297d28Sopenharmony_ci    public_deps = []
183e9297d28Sopenharmony_ci    if (enable_export_macro) {
184e9297d28Sopenharmony_ci      defines += [ "ENABLE_EXPORT_MACRO" ]
185e9297d28Sopenharmony_ci    }
186e9297d28Sopenharmony_ci
187e9297d28Sopenharmony_ci    if (defined(use_rosen_drawing) && use_rosen_drawing) {
188e9297d28Sopenharmony_ci      defines += [ "USE_ROSEN_DRAWING" ]
189e9297d28Sopenharmony_ci      deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ]
190e9297d28Sopenharmony_ci      if (rs_enable_gpu) {
191e9297d28Sopenharmony_ci        defines += [ "RS_ENABLE_GPU" ]
192e9297d28Sopenharmony_ci      }
193e9297d28Sopenharmony_ci      if (current_os == "mingw") {
194e9297d28Sopenharmony_ci        defines += [ "WINDOWS_PLATFORM" ]
195e9297d28Sopenharmony_ci      }
196e9297d28Sopenharmony_ci    }
197e9297d28Sopenharmony_ci    if (rosen_is_ohos) {
198e9297d28Sopenharmony_ci      deps += [
199e9297d28Sopenharmony_ci        "$graphic_2d_root/rosen/modules/frame_analyzer:libframe_analyzer",
200e9297d28Sopenharmony_ci        "$graphic_2d_root/utils/color_manager:color_manager",
201e9297d28Sopenharmony_ci      ]
202e9297d28Sopenharmony_ci
203e9297d28Sopenharmony_ci      external_deps = [
204e9297d28Sopenharmony_ci        "c_utils:utils",
205e9297d28Sopenharmony_ci        "hisysevent:libhisysevent",
206e9297d28Sopenharmony_ci        "hitrace:hitrace_meter",
207e9297d28Sopenharmony_ci        "image_framework:image_native",
208e9297d28Sopenharmony_ci        "qos_manager:qos",
209e9297d28Sopenharmony_ci      ]
210e9297d28Sopenharmony_ci
211e9297d28Sopenharmony_ci      defines += [ "RES_CLINET_SCHED_ENABLE" ]
212e9297d28Sopenharmony_ci
213e9297d28Sopenharmony_ci      if (accessibility_enable) {
214e9297d28Sopenharmony_ci        external_deps += [ "accessibility:accessibilityconfig" ]
215e9297d28Sopenharmony_ci        external_deps += [ "accessibility:accessibility_common" ]
216e9297d28Sopenharmony_ci        defines += accessibility_defines
217e9297d28Sopenharmony_ci      }
218e9297d28Sopenharmony_ci    } else if (rosen_preview) {
219e9297d28Sopenharmony_ci      deps += [
220e9297d28Sopenharmony_ci        "$graphic_2d_root/frameworks/opengl_wrapper:EGL",
221e9297d28Sopenharmony_ci        "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3",
222e9297d28Sopenharmony_ci        "$graphic_2d_root/rosen/modules/glfw_render_context:libglfw_render_context",
223e9297d28Sopenharmony_ci      ]
224e9297d28Sopenharmony_ci
225e9297d28Sopenharmony_ci      if (rss_enabled) {
226e9297d28Sopenharmony_ci        external_deps = []
227e9297d28Sopenharmony_ci      }
228e9297d28Sopenharmony_ci    }
229e9297d28Sopenharmony_ci    if (defined(external_deps)) {
230e9297d28Sopenharmony_ci      external_deps += [ "hilog:libhilog" ]
231e9297d28Sopenharmony_ci    } else {
232e9297d28Sopenharmony_ci      external_deps = [ "hilog:libhilog" ]
233e9297d28Sopenharmony_ci    }
234e9297d28Sopenharmony_ci
235e9297d28Sopenharmony_ci    external_deps += [ "graphic_surface:surface_headers" ]
236e9297d28Sopenharmony_ci
237e9297d28Sopenharmony_ci    if (rosen_cross_platform) {
238e9297d28Sopenharmony_ci      deps += [ "$rosen_root/modules/platform:hilog" ]
239e9297d28Sopenharmony_ci    }
240e9297d28Sopenharmony_ci
241e9297d28Sopenharmony_ci    if (rss_enabled) {
242e9297d28Sopenharmony_ci      defines += [ "OHOS_RSS_CLIENT" ]
243e9297d28Sopenharmony_ci      external_deps += [ "resource_schedule_service:ressched_client" ]
244e9297d28Sopenharmony_ci    }
245e9297d28Sopenharmony_ci
246e9297d28Sopenharmony_ci    if (is_static_lib) {
247e9297d28Sopenharmony_ci      public_deps += [ "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base_static" ]
248e9297d28Sopenharmony_ci    } else {
249e9297d28Sopenharmony_ci      public_deps += [ "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base" ]
250e9297d28Sopenharmony_ci      deps += [ "$rosen_root/modules/platform:eventhandler" ]
251e9297d28Sopenharmony_ci    }
252e9297d28Sopenharmony_ci
253e9297d28Sopenharmony_ci    if (defined(graphic_2d_broker_configs.vendor_root) && !rosen_preview) {
254e9297d28Sopenharmony_ci      sources +=
255e9297d28Sopenharmony_ci          graphic_2d_broker_configs.librender_service_client_ext_broker_sources
256e9297d28Sopenharmony_ci      sources -= graphic_2d_broker_configs.librender_service_client_ext_broker_sources_del
257e9297d28Sopenharmony_ci      external_deps += [ "ipc:ipc_core" ]
258e9297d28Sopenharmony_ci      external_deps += [ "samgr:samgr_proxy" ]
259e9297d28Sopenharmony_ci    }
260e9297d28Sopenharmony_ci
261e9297d28Sopenharmony_ci    if (tp_feature_enable) {
262e9297d28Sopenharmony_ci      defines += tp_defines
263e9297d28Sopenharmony_ci    }
264e9297d28Sopenharmony_ci
265e9297d28Sopenharmony_ci    public_configs = [ ":render_service_client_config" ]
266e9297d28Sopenharmony_ci
267e9297d28Sopenharmony_ci    part_name = "graphic_2d"
268e9297d28Sopenharmony_ci    subsystem_name = "graphic"
269e9297d28Sopenharmony_ci  }
270e9297d28Sopenharmony_ci}
271e9297d28Sopenharmony_ci
272e9297d28Sopenharmony_cirender_service_client_source_set("render_service_client_src") {
273e9297d28Sopenharmony_ci  is_static_lib = false
274e9297d28Sopenharmony_ci}
275e9297d28Sopenharmony_ci
276e9297d28Sopenharmony_cirender_service_client_source_set("render_service_client_src_static") {
277e9297d28Sopenharmony_ci  is_static_lib = true
278e9297d28Sopenharmony_ci}
279e9297d28Sopenharmony_ci
280e9297d28Sopenharmony_ciconfig("render_service_client_link_config") {
281e9297d28Sopenharmony_ci  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
282e9297d28Sopenharmony_ci    ldflags = [
283e9297d28Sopenharmony_ci      "-Wl,--lto-O2",
284e9297d28Sopenharmony_ci      "-Wl,-mllvm",
285e9297d28Sopenharmony_ci      "-Wl,-wholeprogramdevirt-check=fallback",
286e9297d28Sopenharmony_ci      "-Wl,-Bsymbolic",
287e9297d28Sopenharmony_ci    ]
288e9297d28Sopenharmony_ci  }
289e9297d28Sopenharmony_ci}
290e9297d28Sopenharmony_ci
291e9297d28Sopenharmony_ciohos_shared_library("librender_service_client") {
292e9297d28Sopenharmony_ci  branch_protector_ret = "pac_ret"
293e9297d28Sopenharmony_ci  sanitize = {
294e9297d28Sopenharmony_ci    cfi = false
295e9297d28Sopenharmony_ci    cfi_cross_dso = false
296e9297d28Sopenharmony_ci    debug = false
297e9297d28Sopenharmony_ci    blocklist = "./rs_client_blocklist.txt"
298e9297d28Sopenharmony_ci  }
299e9297d28Sopenharmony_ci
300e9297d28Sopenharmony_ci  public_configs = [ ":render_service_client_config" ]
301e9297d28Sopenharmony_ci
302e9297d28Sopenharmony_ci  public_deps = [ ":render_service_client_src" ]
303e9297d28Sopenharmony_ci
304e9297d28Sopenharmony_ci  external_deps = [ "hilog:libhilog" ]
305e9297d28Sopenharmony_ci
306e9297d28Sopenharmony_ci  if (enhanced_opt) {
307e9297d28Sopenharmony_ci    configs = [ ":render_service_client_link_config" ]
308e9297d28Sopenharmony_ci  }
309e9297d28Sopenharmony_ci
310e9297d28Sopenharmony_ci  public_external_deps = []
311e9297d28Sopenharmony_ci  if (rosen_is_ohos) {
312e9297d28Sopenharmony_ci    public_external_deps += [ "graphic_surface:surface" ]
313e9297d28Sopenharmony_ci  } else if (rosen_preview) {
314e9297d28Sopenharmony_ci    public_external_deps += [ "graphic_surface:surface_headers" ]
315e9297d28Sopenharmony_ci  }
316e9297d28Sopenharmony_ci
317e9297d28Sopenharmony_ci  part_name = "graphic_2d"
318e9297d28Sopenharmony_ci  subsystem_name = "graphic"
319e9297d28Sopenharmony_ci}
320e9297d28Sopenharmony_ci
321e9297d28Sopenharmony_ciohos_source_set("librender_service_client_static") {
322e9297d28Sopenharmony_ci  branch_protector_ret = "pac_ret"
323e9297d28Sopenharmony_ci  sanitize = {
324e9297d28Sopenharmony_ci    cfi = false
325e9297d28Sopenharmony_ci    cfi_cross_dso = false
326e9297d28Sopenharmony_ci    debug = false
327e9297d28Sopenharmony_ci    blocklist = "./rs_client_blocklist.txt"
328e9297d28Sopenharmony_ci  }
329e9297d28Sopenharmony_ci  public_deps = [ ":render_service_client_src_static" ]
330e9297d28Sopenharmony_ci  deps = [ "$rosen_root/modules/platform:eventhandler" ]
331e9297d28Sopenharmony_ci
332e9297d28Sopenharmony_ci  public_external_deps = []
333e9297d28Sopenharmony_ci  if (rosen_is_ohos) {
334e9297d28Sopenharmony_ci    public_external_deps += [ "graphic_surface:surface" ]
335e9297d28Sopenharmony_ci  } else if (rosen_preview) {
336e9297d28Sopenharmony_ci    public_external_deps += [ "graphic_surface:surface_headers" ]
337e9297d28Sopenharmony_ci  } else if (is_arkui_x) {
338e9297d28Sopenharmony_ci    public_deps +=
339e9297d28Sopenharmony_ci        [ "//foundation/graphic/graphic_surface/surface:surface_headers" ]
340e9297d28Sopenharmony_ci  }
341e9297d28Sopenharmony_ci
342e9297d28Sopenharmony_ci  part_name = "graphic_2d"
343e9297d28Sopenharmony_ci  subsystem_name = "graphic"
344e9297d28Sopenharmony_ci}
345e9297d28Sopenharmony_ci
346e9297d28Sopenharmony_cigroup("test") {
347e9297d28Sopenharmony_ci  if (rosen_is_ohos) {
348e9297d28Sopenharmony_ci    testonly = true
349e9297d28Sopenharmony_ci
350e9297d28Sopenharmony_ci    deps = [ "test:test" ]
351e9297d28Sopenharmony_ci  }
352e9297d28Sopenharmony_ci}
353