1# Copyright (c) 2022-2023 Huawei Device Co., Ltd.. All rights reserved.
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/ace_platforms.gni")
16import("//foundation/graphic/graphic_2d/graphic_config.gni")
17import("$graphic_2d_root/rosen/modules/2d_engine/rosen_text/config.gni")
18
19drawing_root = "$rosen_root/modules/2d_graphics"
20drawing_core_include_dir = "$rosen_root/modules/2d_graphics/include"
21drawing_core_src_dir = "$rosen_root/modules/2d_graphics/src/drawing"
22src_dir = "$rosen_root/modules/2d_graphics/src"
23platform_dir = "$rosen_root/modules/platform"
24
25config("2d_graphics_config") {
26  include_dirs = [
27    "$drawing_core_include_dir",
28    "$src_dir",
29    "$drawing_core_src_dir",
30    "$drawing_core_src_dir/engine_adapter",
31    "$platform_dir/image_native",
32    "$rosen_root/modules/render_service_base/include",
33    "$rosen_root/modules/texgine/texgine_drawing/src",
34  ]
35}
36
37config("export_config") {
38  include_dirs = [
39    "$drawing_core_include_dir",
40    "$src_dir",
41    "$drawing_core_src_dir",
42    "$drawing_core_src_dir/engine_adapter",
43    "$graphic_2d_root/utils/color_manager/export",
44    "$rosen_root/modules/render_service_base/include",
45    "$rosen_root/modules/texgine/texgine_drawing/src",
46    "$rosen_root/modules/2d_engine/rosen_text/export",
47  ]
48
49  if (rs_enable_gpu) {
50    defines = [ "RS_ENABLE_GPU" ]
51  }
52}
53
54if (enable_text_gine) {
55  defines = [ "USE_GRAPHIC_TEXT_GINE" ]
56}
57
58template("graphics2d_source_set") {
59  forward_variables_from(invoker, "*")
60
61  ohos_source_set(target_name) {
62    defines += invoker.defines
63    cflags_cc += invoker.cflags_cc
64    if (use_texgine) {
65      defines += [ "USE_TEXGINE" ]
66    } else if (use_skia_txt) {
67      defines += [ "USE_SKIA_TXT" ]
68    }
69
70    public_deps = []
71    external_deps = [ "napi:ace_napi" ]
72    public_external_deps = []
73    sources = [
74      "$drawing_core_src_dir/draw/OpListHandle.cpp",
75      "$drawing_core_src_dir/draw/brush.cpp",
76      "$drawing_core_src_dir/draw/canvas.cpp",
77      "$drawing_core_src_dir/draw/color.cpp",
78      "$drawing_core_src_dir/draw/core_canvas.cpp",
79      "$drawing_core_src_dir/draw/paint.cpp",
80      "$drawing_core_src_dir/draw/path.cpp",
81      "$drawing_core_src_dir/draw/pen.cpp",
82      "$drawing_core_src_dir/draw/surface.cpp",
83      "$drawing_core_src_dir/effect/blender.cpp",
84      "$drawing_core_src_dir/effect/blur_draw_looper.cpp",
85      "$drawing_core_src_dir/effect/color_filter.cpp",
86      "$drawing_core_src_dir/effect/color_matrix.cpp",
87      "$drawing_core_src_dir/effect/color_space.cpp",
88      "$drawing_core_src_dir/effect/filter.cpp",
89      "$drawing_core_src_dir/effect/image_filter.cpp",
90      "$drawing_core_src_dir/effect/mask_filter.cpp",
91      "$drawing_core_src_dir/effect/path_effect.cpp",
92      "$drawing_core_src_dir/effect/runtime_blender_builder.cpp",
93      "$drawing_core_src_dir/effect/runtime_effect.cpp",
94      "$drawing_core_src_dir/effect/runtime_shader_builder.cpp",
95      "$drawing_core_src_dir/effect/shader_effect.cpp",
96      "$drawing_core_src_dir/engine_adapter/impl_factory.cpp",
97      "$drawing_core_src_dir/engine_adapter/skia_adapter/rs_skia_memory_tracer.cpp",
98      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp",
99      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_blender.cpp",
100      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_camera.cpp",
101      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp",
102      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_canvas_autocache.cpp",
103      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp",
104      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp",
105      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_data.cpp",
106      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_font.cpp",
107      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_font_mgr.cpp",
108      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_font_style_set.cpp",
109      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_graphics.cpp",
110      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_helper.cpp",
111      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_hm_symbol.cpp",
112      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_hm_symbol_config_ohos.cpp",
113      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image.cpp",
114      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp",
115      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp",
116      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp",
117      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp",
118      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_matrix44.cpp",
119      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_memory_stream.cpp",
120      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_paint.cpp",
121      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path.cpp",
122      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp",
123      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_picture.cpp",
124      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_pixmap.cpp",
125      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_region.cpp",
126      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_blender_builder.cpp",
127      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_effect.cpp",
128      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_shader_builder.cpp",
129      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp",
130      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_static_factory.cpp",
131      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_surface.cpp",
132      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_text_blob.cpp",
133      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_text_blob_builder.cpp",
134      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_texture_info.cpp",
135      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_trace_memory_dump.cpp",
136      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_typeface.cpp",
137      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_utils.cpp",
138      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_vertices.cpp",
139      "$drawing_core_src_dir/engine_adapter/static_factory.cpp",
140      "$drawing_core_src_dir/image/bitmap.cpp",
141      "$drawing_core_src_dir/image/image.cpp",
142      "$drawing_core_src_dir/image/picture.cpp",
143      "$drawing_core_src_dir/image/pixmap.cpp",
144      "$drawing_core_src_dir/image/trace_memory_dump.cpp",
145      "$drawing_core_src_dir/recording/cmd_list.cpp",
146      "$drawing_core_src_dir/recording/cmd_list_helper.cpp",
147      "$drawing_core_src_dir/recording/draw_cmd.cpp",
148      "$drawing_core_src_dir/recording/draw_cmd_list.cpp",
149      "$drawing_core_src_dir/recording/mask_cmd_list.cpp",
150      "$drawing_core_src_dir/recording/mem_allocator.cpp",
151      "$drawing_core_src_dir/recording/record_cmd.cpp",
152      "$drawing_core_src_dir/recording/recording_canvas.cpp",
153      "$drawing_core_src_dir/text/font.cpp",
154      "$drawing_core_src_dir/text/font_mgr.cpp",
155      "$drawing_core_src_dir/text/font_style_set.cpp",
156      "$drawing_core_src_dir/text/hm_symbol.cpp",
157      "$drawing_core_src_dir/text/hm_symbol_config_ohos.cpp",
158      "$drawing_core_src_dir/text/text.cpp",
159      "$drawing_core_src_dir/text/text_blob.cpp",
160      "$drawing_core_src_dir/text/text_blob_builder.cpp",
161      "$drawing_core_src_dir/text/typeface.cpp",
162      "$drawing_core_src_dir/utils/camera3d.cpp",
163      "$drawing_core_src_dir/utils/data.cpp",
164      "$drawing_core_src_dir/utils/matrix.cpp",
165      "$drawing_core_src_dir/utils/matrix44.cpp",
166      "$drawing_core_src_dir/utils/memory_stream.cpp",
167      "$drawing_core_src_dir/utils/object_mgr.cpp",
168      "$drawing_core_src_dir/utils/performanceCaculate.cpp",
169      "$drawing_core_src_dir/utils/region.cpp",
170      "$drawing_core_src_dir/utils/resource_holder.cpp",
171      "$drawing_core_src_dir/utils/round_rect.cpp",
172      "$drawing_core_src_dir/utils/string_util.cpp",
173      "$drawing_core_src_dir/utils/vertices.cpp",
174    ]
175
176    if (platform == "ohos" || platform == "ohos_ng") {
177      sanitize = {
178        boundary_sanitize = true
179        integer_overflow = true
180        ubsan = true
181      }
182      external_deps += [ "init:libbegetutil" ]
183      sources += [ "$drawing_core_src_dir/utils/system_properties.cpp" ]
184      if (defined(
185          graphic_2d_platform_configs.system_graphic_properties_sources)) {
186        sources += graphic_2d_platform_configs.system_graphic_properties_sources
187      } else {
188        sources +=
189            [ "$drawing_core_src_dir/utils/system_graphic_properties.cpp" ]
190      }
191    }
192    if (is_emulator) {
193      defines += [ "ROSEN_EMULATOR" ]
194    }
195
196    include_dirs = [
197      "$drawing_core_include_dir",
198      "$src_dir",
199      "$drawing_core_src_dir",
200      "$drawing_core_src_dir/engine_adapter",
201      "$rosen_root/modules/render_service_base/include",
202      "//third_party/skia/include/core",
203      "//third_party/skia/src/core",
204      "$rosen_root/modules/texgine/src",
205      "$rosen_root/modules/texgine/texgine_drawing/src",
206      "$rosen_root/../interfaces/kits/napi/graphic/drawing/common_napi",
207    ]
208
209    if (rs_enable_gpu) {
210      sources += [
211        "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_gpu_context.cpp",
212        "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_task_executor.cpp",
213        "$drawing_core_src_dir/image/gpu_context.cpp",
214      ]
215      defines += [ "RS_ENABLE_GPU" ]
216
217      if (!is_emulator && !build_ohos_sdk && !is_arkui_x) {
218        external_deps += [ "qos_manager:qos" ]
219        defines += [ "SKIA_PRIO_SCHED_ENABLE" ]
220      }
221
222      if (!build_ohos_sdk && !is_arkui_x) {
223        defines += [ "RES_SCHED_ENABLE" ]
224        include_dirs += [ "$rosen_root/modules/frame_report/include" ]
225        if (rosen_is_ohos) {
226          sources +=
227              [ "$rosen_root/modules/frame_report/src/rs_frame_report.cpp" ]
228        } else {
229          sources += [
230            "$rosen_root/modules/frame_report/src/mingw/rs_frame_report.cpp",
231          ]
232        }
233      }
234    }
235
236    if (is_arkui_x) {
237      configs = [ "//third_party/jsoncpp:jsoncpp_public_config" ]
238    } else {
239      external_deps += [ "jsoncpp:jsoncpp" ]
240    }
241
242    defines += [ "USE_ACE_SKIA" ]
243
244    if (defined(graphic_2d_feature_enable_ddgr) &&
245        graphic_2d_feature_enable_ddgr) {
246      defines += [ "ENABLE_DDGR_OPTIMIZE" ]
247      sources += ddgr_adapter_opt_set.drawing_ddgr_adapter_src_set
248      include_dirs += ddgr_adapter_opt_set.drawing_ddgr_adapter_include_set
249      public_deps += [ "$graphic_2d_ext_root/ddgr:libddgr" ]
250    }
251
252    if (enable_text_gine) {
253      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
254      if (use_texgine) {
255        defines += [ "USE_TEXGINE" ]
256      }
257      include_dirs += [
258        "$rosen_root/modules/2d_engine/rosen_text",
259        "$rosen_root/modules/2d_engine/rosen_text/adapter",
260        "$rosen_root/modules/2d_engine/rosen_text/export",
261        "$platform_dir/image_native",
262      ]
263      if (defined(use_new_skia) && use_new_skia) {
264        defines += [ "NEW_SKIA" ]
265      }
266    } else {
267      sources += [
268        "$rosen_text_root/properties/font_collection_txt.cpp",
269        "$rosen_text_root/properties/placeholder_run.cpp",
270        "$rosen_text_root/properties/rosen_converter_txt.cpp",
271        "$rosen_text_root/properties/text_style.cpp",
272        "$rosen_text_root/properties/typography_create_txt.cpp",
273        "$rosen_text_root/properties/typography_style.cpp",
274        "$rosen_text_root/properties/typography_txt.cpp",
275        "$rosen_text_root/ui/font_collection.cpp",
276        "$rosen_text_root/ui/typography.cpp",
277        "$rosen_text_root/ui/typography_create.cpp",
278      ]
279      include_dirs += [ "$rosen_2d_engine_root" ]
280    }
281    if (graphic_2d_feature_enable_vulkan) {
282      defines += [ "RS_ENABLE_VK" ]
283      public_external_deps += [ "vulkan-headers:vulkan_headers" ]
284    }
285    if (platform == "ohos" || platform == "ohos_ng") {
286      external_deps += [
287        "bounds_checking_function:libsec_static",
288        "hilog:libhilog",
289        "hitrace:hitrace_meter",
290        "skia:skia_canvaskit",
291      ]
292
293      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
294      deps = [ "$graphic_2d_root/rosen/build/icu:rosen_libicu_$platform" ]
295      defines += [
296        "SUPPORT_OHOS_PIXMAP",
297        "ROSEN_OHOS",
298      ]
299
300      if (defined(use_new_skia) && use_new_skia) {
301        remove_configs = [ "//build/config/compiler:default_include_dirs" ]
302        include_dirs += [
303          "//",
304          root_gen_dir,
305        ]
306      } else {
307        include_dirs += [ "$flutter_root/engine/flutter/third_party/txt/src" ]
308      }
309    } else {
310      deps = []
311      cflags = [ "-std=c++17" ]
312
313      deps += [ "$rosen_root/modules/platform:hilog" ]
314
315      if (is_arkui_x) {
316        deps += [
317          "//third_party/bounds_checking_function:libsec_static",
318          "//third_party/skia:skia_$platform",
319        ]
320      } else {
321        external_deps += [
322          "bounds_checking_function:libsec_static",
323          "skia:skia_canvaskit",
324        ]
325      }
326
327      deps += [ "$graphic_2d_root/utils:sandbox_utils" ]
328      defines += [ "MODULE_DRAWING" ]
329      if (is_arkui_x) {
330        defines += [ "CROSS_PLATFORM" ]
331        deps += [ "//foundation/graphic/graphic_2d/rosen/build/icu:rosen_libicu_$platform" ]
332      }
333
334      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
335    }
336    if (enable_text_gine) {
337      deps += [ "$rosen_root/modules/2d_engine/rosen_text:rosen_text_inner" ]
338      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
339      if (use_skia_txt) {
340        include_dirs +=
341            [ "$graphic_2d_root/rosen/modules/2d_engine/rosen_text/skia_txt" ]
342      }
343    }
344    if (rosen_is_ohos) {
345      defines += gpu_defines
346      if (rs_enable_gpu) {
347        defines += [
348          "GL_GLEXT_PROTOTYPES",
349          "EGL_EGLEXT_PROTOTYPES",
350        ]
351      }
352      public_deps += [
353        "$graphic_2d_root/frameworks/opengl_wrapper:EGL",
354        "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3",
355      ]
356      external_deps += [ "c_utils:utils" ]
357      public_external_deps += [ "graphic_surface:surface" ]
358    }
359
360    part_name = "graphic_2d"
361    subsystem_name = "graphic"
362  }
363}
364
365foreach(item, ace_platforms) {
366  graphics2d_source_set("2d_graphics_source_" + item.name) {
367    platform = item.name
368    defines = []
369
370    if (defined(item.config)) {
371      config = item.config
372    } else {
373      config = {
374      }
375    }
376
377    if (defined(config.defines)) {
378      defines += config.defines
379    }
380
381    if (defined(config.cflags_cc)) {
382      cflags_cc = config.cflags_cc
383    } else {
384      cflags_cc = []
385    }
386  }
387}
388
389if (!is_arkui_x) {
390  ## Build 2d_graphics.so
391  ohos_shared_library("2d_graphics") {
392    sanitize = {
393      cfi = true
394      cfi_cross_dso = true
395      cfi_no_nvcall = true
396      cfi_vcall_icall_only = true
397      debug = false
398    }
399    platform = current_os
400    if (platform == "mingw") {
401      platform = "windows"
402    }
403    if (!(host_os == "linux" && host_cpu == "arm64")) {
404      deps = [ ":2d_graphics_source_$platform" ]
405    }
406
407    external_deps = [
408      "bounds_checking_function:libsec_static",
409      "hilog:libhilog",
410    ]
411
412    public_configs = [ ":export_config" ]
413
414    if (platform == "ohos") {
415      version_script = "2d_graphics.versionscript"
416    }
417
418    part_name = "graphic_2d"
419    subsystem_name = "graphic"
420  }
421} else {
422  ohos_source_set("2d_graphics") {
423    platform = current_os
424
425    deps = [ ":2d_graphics_source_$platform" ]
426
427    if (is_arkui_x) {
428      include_dirs = [ "//third_party/bounds_checking_function/include" ]
429      deps += [ "//third_party/bounds_checking_function:libsec_static" ]
430    } else {
431      external_deps += [ "bounds_checking_function:libsec_static" ]
432    }
433    public_configs = [ ":export_config" ]
434    part_name = "graphic_2d"
435    subsystem_name = "graphic"
436  }
437}
438
439if (enable_text_gine) {
440  ohos_shared_library("2d_graphics_new") {
441    platform = current_os
442    if (platform == "mingw") {
443      platform = "windows"
444    }
445    deps = [ "$rosen_root/modules/texgine/texgine_drawing:libtexgine_drawing" ]
446    if (!(host_os == "linux" && host_cpu == "arm64")) {
447      deps += [ ":2d_graphics_source_$platform" ]
448    }
449    external_deps = [ "hilog:libhilog" ]
450    public_external_deps = [ "bounds_checking_function:libsec_static" ]
451    defines += [ "USE_GRAPHIC_TEXT_GINE" ]
452    public_configs = [ ":2d_graphics_config" ]
453    innerapi_tags = [ "platformsdk_indirect" ]
454    part_name = "graphic_2d"
455    subsystem_name = "graphic"
456  }
457}
458
459## Build 2d_graphics.so
460ohos_shared_library("2d_graphics_canvaskit0310") {
461  sanitize = {
462    cfi = true
463    cfi_cross_dso = true
464    cfi_no_nvcall = true
465    cfi_vcall_icall_only = true
466    debug = false
467  }
468  sources = [
469    "$drawing_core_src_dir/draw/brush.cpp",
470    "$drawing_core_src_dir/draw/color.cpp",
471    "$drawing_core_src_dir/draw/core_canvas.cpp",
472    "$drawing_core_src_dir/draw/path.cpp",
473    "$drawing_core_src_dir/draw/pen.cpp",
474    "$drawing_core_src_dir/effect/blur_draw_looper.cpp",
475    "$drawing_core_src_dir/effect/color_filter.cpp",
476    "$drawing_core_src_dir/effect/color_space.cpp",
477    "$drawing_core_src_dir/effect/filter.cpp",
478    "$drawing_core_src_dir/effect/image_filter.cpp",
479    "$drawing_core_src_dir/effect/mask_filter.cpp",
480    "$drawing_core_src_dir/effect/path_effect.cpp",
481    "$drawing_core_src_dir/effect/runtime_effect.cpp",
482    "$drawing_core_src_dir/effect/runtime_shader_builder.cpp",
483    "$drawing_core_src_dir/effect/shader_effect.cpp",
484    "$drawing_core_src_dir/engine_adapter/impl_factory.cpp",
485    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp",
486    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_camera.cpp",
487    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp",
488    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp",
489    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp",
490    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_graphics.cpp",
491    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_helper.cpp",
492    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image.cpp",
493    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp",
494    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp",
495    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp",
496    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp",
497    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_paint.cpp",
498    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path.cpp",
499    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp",
500    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_picture.cpp",
501    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_pixmap.cpp",
502    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_effect.cpp",
503    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_shader_builder.cpp",
504    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp",
505    "$drawing_core_src_dir/image/bitmap.cpp",
506    "$drawing_core_src_dir/image/image.cpp",
507    "$drawing_core_src_dir/image/picture.cpp",
508    "$drawing_core_src_dir/image/pixmap.cpp",
509    "$drawing_core_src_dir/text/text.cpp",
510    "$drawing_core_src_dir/utils/camera3d.cpp",
511    "$drawing_core_src_dir/utils/matrix.cpp",
512  ]
513
514  if (enable_text_gine) {
515    defines += [ "USE_CANVASKIT0310_SKIA" ]
516  } else {
517    defines = [ "USE_CANVASKIT0310_SKIA" ]
518  }
519
520  include_dirs = [
521    "$drawing_core_include_dir",
522    "$src_dir",
523    "$drawing_core_src_dir",
524    "$drawing_core_src_dir/engine_adapter",
525  ]
526
527  external_deps = [
528    "hilog:libhilog",
529    "image_framework:image_native",
530  ]
531
532  if (!is_arkui_x) {
533    deps = [
534      # "//third_party/skia_canvaskit0310:skia",
535    ]
536    external_deps += [ "graphic_surface:surface" ]
537  }
538
539  if (enable_text_gine) {
540    defines += [ "USE_GRAPHIC_TEXT_GINE" ]
541  }
542
543  part_name = "graphic_2d"
544  subsystem_name = "graphic"
545}
546
547group("2d_graphics_packages") {
548  deps = [
549    "$drawing_root:2d_graphics",
550    "$drawing_root/drawing_ndk:native_drawing_ndk",
551  ]
552}
553