• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/path_iterator.cpp",
82      "$drawing_core_src_dir/draw/pen.cpp",
83      "$drawing_core_src_dir/draw/surface.cpp",
84      "$drawing_core_src_dir/effect/blender.cpp",
85      "$drawing_core_src_dir/effect/blur_draw_looper.cpp",
86      "$drawing_core_src_dir/effect/color_filter.cpp",
87      "$drawing_core_src_dir/effect/color_matrix.cpp",
88      "$drawing_core_src_dir/effect/color_space.cpp",
89      "$drawing_core_src_dir/effect/filter.cpp",
90      "$drawing_core_src_dir/effect/image_filter.cpp",
91      "$drawing_core_src_dir/effect/mask_filter.cpp",
92      "$drawing_core_src_dir/effect/path_effect.cpp",
93      "$drawing_core_src_dir/effect/runtime_blender_builder.cpp",
94      "$drawing_core_src_dir/effect/runtime_effect.cpp",
95      "$drawing_core_src_dir/effect/runtime_shader_builder.cpp",
96      "$drawing_core_src_dir/effect/shader_effect.cpp",
97      "$drawing_core_src_dir/engine_adapter/impl_factory.cpp",
98      "$drawing_core_src_dir/engine_adapter/skia_adapter/rs_skia_memory_tracer.cpp",
99      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp",
100      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_blender.cpp",
101      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_camera.cpp",
102      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp",
103      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_canvas_autocache.cpp",
104      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp",
105      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp",
106      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_data.cpp",
107      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_document.cpp",
108      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_file_w_stream.cpp",
109      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_font.cpp",
110      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_font_mgr.cpp",
111      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_font_style_set.cpp",
112      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_graphics.cpp",
113      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_helper.cpp",
114      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_hm_symbol.cpp",
115      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_hm_symbol_config_ohos.cpp",
116      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image.cpp",
117      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp",
118      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp",
119      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp",
120      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp",
121      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_matrix44.cpp",
122      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_memory_stream.cpp",
123      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_paint.cpp",
124      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path.cpp",
125      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp",
126      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path_iterator.cpp",
127      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_picture.cpp",
128      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_picture_recorder.cpp",
129      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_pixmap.cpp",
130      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_region.cpp",
131      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_blender_builder.cpp",
132      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_effect.cpp",
133      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_shader_builder.cpp",
134      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_serial_procs.cpp",
135      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp",
136      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_sharing_serial_context.cpp",
137      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_static_factory.cpp",
138      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_surface.cpp",
139      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_text_blob.cpp",
140      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_text_blob_builder.cpp",
141      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_texture_info.cpp",
142      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_trace_memory_dump.cpp",
143      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_typeface.cpp",
144      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_utils.cpp",
145      "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_vertices.cpp",
146      "$drawing_core_src_dir/engine_adapter/static_factory.cpp",
147      "$drawing_core_src_dir/image/bitmap.cpp",
148      "$drawing_core_src_dir/image/image.cpp",
149      "$drawing_core_src_dir/image/picture.cpp",
150      "$drawing_core_src_dir/image/pixmap.cpp",
151      "$drawing_core_src_dir/image/trace_memory_dump.cpp",
152      "$drawing_core_src_dir/recording/cmd_list.cpp",
153      "$drawing_core_src_dir/recording/cmd_list_helper.cpp",
154      "$drawing_core_src_dir/recording/draw_cmd.cpp",
155      "$drawing_core_src_dir/recording/draw_cmd_list.cpp",
156      "$drawing_core_src_dir/recording/mask_cmd_list.cpp",
157      "$drawing_core_src_dir/recording/mem_allocator.cpp",
158      "$drawing_core_src_dir/recording/record_cmd.cpp",
159      "$drawing_core_src_dir/recording/recording_canvas.cpp",
160      "$drawing_core_src_dir/text/font.cpp",
161      "$drawing_core_src_dir/text/font_mgr.cpp",
162      "$drawing_core_src_dir/text/font_style_set.cpp",
163      "$drawing_core_src_dir/text/hm_symbol.cpp",
164      "$drawing_core_src_dir/text/hm_symbol_config_ohos.cpp",
165      "$drawing_core_src_dir/text/text.cpp",
166      "$drawing_core_src_dir/text/text_blob.cpp",
167      "$drawing_core_src_dir/text/text_blob_builder.cpp",
168      "$drawing_core_src_dir/text/typeface.cpp",
169      "$drawing_core_src_dir/utils/camera3d.cpp",
170      "$drawing_core_src_dir/utils/data.cpp",
171      "$drawing_core_src_dir/utils/document.cpp",
172      "$drawing_core_src_dir/utils/file_w_stream.cpp",
173      "$drawing_core_src_dir/utils/matrix.cpp",
174      "$drawing_core_src_dir/utils/matrix44.cpp",
175      "$drawing_core_src_dir/utils/memory_stream.cpp",
176      "$drawing_core_src_dir/utils/object_mgr.cpp",
177      "$drawing_core_src_dir/utils/perfmonitor_reporter.cpp",
178      "$drawing_core_src_dir/utils/performanceCaculate.cpp",
179      "$drawing_core_src_dir/utils/picture_recorder.cpp",
180      "$drawing_core_src_dir/utils/region.cpp",
181      "$drawing_core_src_dir/utils/resource_holder.cpp",
182      "$drawing_core_src_dir/utils/round_rect.cpp",
183      "$drawing_core_src_dir/utils/serial_procs.cpp",
184      "$drawing_core_src_dir/utils/sharing_serial_context.cpp",
185      "$drawing_core_src_dir/utils/string_util.cpp",
186      "$drawing_core_src_dir/utils/vertices.cpp",
187    ]
188
189    if (platform == "ohos" || platform == "ohos_ng") {
190      sanitize = {
191        boundary_sanitize = true
192        integer_overflow = true
193        ubsan = true
194      }
195      external_deps += [ "init:libbegetutil" ]
196      sources += [ "$drawing_core_src_dir/utils/system_properties.cpp" ]
197      if (defined(
198          graphic_2d_platform_configs.system_graphic_properties_sources)) {
199        sources += graphic_2d_platform_configs.system_graphic_properties_sources
200      } else {
201        sources +=
202            [ "$drawing_core_src_dir/utils/system_graphic_properties.cpp" ]
203      }
204    }
205    if (is_emulator) {
206      defines += [ "ROSEN_EMULATOR" ]
207    }
208
209    include_dirs = [
210      "$drawing_core_include_dir",
211      "$src_dir",
212      "$drawing_core_src_dir",
213      "$drawing_core_src_dir/engine_adapter",
214      "$rosen_root/modules/render_service_base/include",
215      "$rosen_root/modules/texgine/src",
216      "$rosen_root/modules/texgine/texgine_drawing/src",
217      "$rosen_root/../interfaces/kits/napi/graphic/drawing/common_napi",
218    ]
219
220    external_deps += [ "skia:skia_canvaskit" ]
221
222    if (defined(graphic_2d_feature_enable_sdf) &&
223        graphic_2d_feature_enable_sdf) {
224      deps += [ "graphic_2d_ext:libsdf" ]
225      include_dirs += [ "$graphic_2d_ext_root/sdf/include" ]
226      defines += [ "RS_ENABLE_SDF" ]
227    }
228
229    if (rs_enable_gpu) {
230      sources += [
231        "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_gpu_context.cpp",
232        "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_task_executor.cpp",
233        "$drawing_core_src_dir/image/gpu_context.cpp",
234      ]
235      defines += [ "RS_ENABLE_GPU" ]
236
237      if (!is_emulator && !build_ohos_sdk && !is_arkui_x) {
238        external_deps += [ "qos_manager:qos" ]
239        defines += [ "SKIA_PRIO_SCHED_ENABLE" ]
240      }
241
242      if (!build_ohos_sdk && !is_arkui_x) {
243        defines += [ "RES_SCHED_ENABLE" ]
244        include_dirs += [ "$rosen_root/modules/frame_report/include" ]
245        if (rosen_is_ohos) {
246          sources +=
247              [ "$rosen_root/modules/frame_report/src/rs_frame_report.cpp" ]
248        } else {
249          sources += [
250            "$rosen_root/modules/frame_report/src/mingw/rs_frame_report.cpp",
251          ]
252        }
253      }
254    }
255
256    if (is_arkui_x) {
257      configs = [ "//third_party/jsoncpp:jsoncpp_public_config" ]
258    } else {
259      external_deps += [ "jsoncpp:jsoncpp" ]
260    }
261
262    defines += [ "USE_ACE_SKIA" ]
263
264    if (defined(ddgr_ext_configs) &&
265        (current_os == "linux" || current_os == "mingw") &&
266        ddgr_ext_configs.ddgr_feature_cross_compile) {
267      public_deps += [
268        "$graphic_2d_ext_root/ddgr:libddgr",
269        "$graphic_2d_ext_root/ddgr/tools/playbackengine:libplaybackengine",
270      ]
271    }
272    cflags = []
273    if (defined(graphic_2d_ext_feature_enable_ddgr) &&
274        graphic_2d_ext_feature_enable_ddgr) {
275      defines += [ "ENABLE_DDGR_OPTIMIZE" ]
276      sources += ddgr_adapter_opt_set.drawing_ddgr_adapter_src_set
277      include_dirs += ddgr_adapter_opt_set.drawing_ddgr_adapter_include_set
278      public_external_deps += [ "graphic_2d_ext:libddgr" ]
279      cflags += [
280        "-fprofile-use=" +
281            rebase_path("${ddgr_feature_pgo_path}libddgr.profdata",
282                        root_build_dir),
283        "-Wno-error=backend-plugin",
284        "-Wno-profile-instr-out-of-date",
285        "-Wno-profile-instr-unprofiled",
286      ]
287    }
288
289    if (enable_text_gine) {
290      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
291      if (use_texgine) {
292        defines += [ "USE_TEXGINE" ]
293      }
294      include_dirs += [
295        "$rosen_root/modules/2d_engine/rosen_text",
296        "$rosen_root/modules/2d_engine/rosen_text/adapter",
297        "$rosen_root/modules/2d_engine/rosen_text/export",
298        "$platform_dir/image_native",
299      ]
300      if (defined(use_new_skia) && use_new_skia) {
301        defines += [ "NEW_SKIA" ]
302      }
303    } else {
304      sources += [
305        "$rosen_text_root/properties/font_collection_txt.cpp",
306        "$rosen_text_root/properties/placeholder_run.cpp",
307        "$rosen_text_root/properties/rosen_converter_txt.cpp",
308        "$rosen_text_root/properties/text_style.cpp",
309        "$rosen_text_root/properties/typography_create_txt.cpp",
310        "$rosen_text_root/properties/typography_style.cpp",
311        "$rosen_text_root/properties/typography_txt.cpp",
312        "$rosen_text_root/ui/font_collection.cpp",
313        "$rosen_text_root/ui/typography.cpp",
314        "$rosen_text_root/ui/typography_create.cpp",
315      ]
316      include_dirs += [ "$rosen_2d_engine_root" ]
317    }
318    if (graphic_2d_feature_enable_vulkan) {
319      defines += [ "RS_ENABLE_VK" ]
320      public_external_deps += [ "vulkan-headers:vulkan_headers" ]
321    }
322    if (platform == "ohos" || platform == "ohos_ng") {
323      external_deps += [
324        "bounds_checking_function:libsec_static",
325        "hilog:libhilog",
326        "hitrace:hitrace_meter",
327        "icu:shared_icuuc",
328        "skia:skia_canvaskit",
329      ]
330
331      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
332      deps = []
333      defines += [
334        "SUPPORT_OHOS_PIXMAP",
335        "ROSEN_OHOS",
336      ]
337
338      if (!defined(use_new_skia) || !use_new_skia) {
339        include_dirs += [ "$flutter_root/engine/flutter/third_party/txt/src" ]
340      }
341    } else {
342      deps = []
343      cflags += [ "-std=c++17" ]
344
345      deps += [ "$rosen_root/modules/platform:hilog" ]
346
347      if (is_arkui_x) {
348        deps += [
349          "//third_party/bounds_checking_function:libsec_static",
350          "//third_party/skia:skia_$platform",
351        ]
352      } else {
353        external_deps += [
354          "bounds_checking_function:libsec_static",
355          "skia:skia_canvaskit",
356        ]
357      }
358
359      deps += [ "$graphic_2d_root/utils:sandbox_utils" ]
360      defines += [ "MODULE_DRAWING" ]
361      if (is_arkui_x) {
362        defines += [ "CROSS_PLATFORM" ]
363        deps += [ "//third_party/icu/icu4c:static_icuuc" ]
364      }
365
366      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
367    }
368    if (enable_text_gine) {
369      deps += [ "$rosen_root/modules/2d_engine/rosen_text:rosen_text_inner" ]
370      defines += [ "USE_GRAPHIC_TEXT_GINE" ]
371      if (use_skia_txt) {
372        include_dirs +=
373            [ "$graphic_2d_root/rosen/modules/2d_engine/rosen_text/skia_txt" ]
374      }
375    }
376    if (rosen_is_ohos) {
377      defines += gpu_defines
378      if (rs_enable_gpu) {
379        defines += [
380          "GL_GLEXT_PROTOTYPES",
381          "EGL_EGLEXT_PROTOTYPES",
382        ]
383      }
384      public_deps += [
385        "$graphic_2d_root/frameworks/opengl_wrapper:EGL",
386        "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3",
387      ]
388      external_deps += [ "c_utils:utils" ]
389      public_external_deps += [ "graphic_surface:surface" ]
390    }
391
392    part_name = "graphic_2d"
393    subsystem_name = "graphic"
394  }
395}
396
397foreach(item, ace_platforms) {
398  graphics2d_source_set("2d_graphics_source_" + item.name) {
399    platform = item.name
400    defines = []
401
402    if (defined(item.config)) {
403      config = item.config
404    } else {
405      config = {
406      }
407    }
408
409    if (defined(config.defines)) {
410      defines += config.defines
411    }
412
413    if (defined(config.cflags_cc)) {
414      cflags_cc = config.cflags_cc
415    } else {
416      cflags_cc = []
417    }
418  }
419}
420
421if (!is_arkui_x) {
422  ## Build 2d_graphics.so
423  ohos_shared_library("2d_graphics") {
424    branch_protector_ret = "pac_ret"
425    sanitize = {
426      cfi = true
427      cfi_cross_dso = true
428      cfi_no_nvcall = true
429      cfi_vcall_icall_only = true
430      debug = false
431    }
432    platform = current_os
433    if (platform == "mingw") {
434      platform = "windows"
435    }
436    deps = [ ":2d_graphics_source_$platform" ]
437
438    external_deps = [
439      "bounds_checking_function:libsec_static",
440      "hilog:libhilog",
441    ]
442    public_external_deps = [ "skia:skia_canvaskit" ]
443    public_configs = [ ":export_config" ]
444
445    if (platform == "ohos") {
446      version_script = "2d_graphics.versionscript"
447    }
448
449    part_name = "graphic_2d"
450    subsystem_name = "graphic"
451  }
452} else {
453  ohos_source_set("2d_graphics") {
454    platform = current_os
455
456    deps = [ ":2d_graphics_source_$platform" ]
457
458    if (is_arkui_x) {
459      include_dirs = [ "//third_party/bounds_checking_function/include" ]
460      deps += [ "//third_party/bounds_checking_function:libsec_static" ]
461    } else {
462      external_deps += [ "bounds_checking_function:libsec_static" ]
463    }
464    public_configs = [ ":export_config" ]
465    part_name = "graphic_2d"
466    subsystem_name = "graphic"
467  }
468}
469
470if (enable_text_gine) {
471  ohos_shared_library("2d_graphics_new") {
472    platform = current_os
473    if (platform == "mingw") {
474      platform = "windows"
475    }
476    deps = [ ":2d_graphics_source_$platform" ]
477    external_deps = [ "hilog:libhilog" ]
478    public_external_deps = [ "bounds_checking_function:libsec_static" ]
479    defines += [ "USE_GRAPHIC_TEXT_GINE" ]
480    public_configs = [ ":2d_graphics_config" ]
481    innerapi_tags = [ "platformsdk_indirect" ]
482    part_name = "graphic_2d"
483    subsystem_name = "graphic"
484  }
485}
486
487## Build 2d_graphics.so
488ohos_shared_library("2d_graphics_canvaskit0310") {
489  sanitize = {
490    cfi = true
491    cfi_cross_dso = true
492    cfi_no_nvcall = true
493    cfi_vcall_icall_only = true
494    debug = false
495  }
496  sources = [
497    "$drawing_core_src_dir/draw/brush.cpp",
498    "$drawing_core_src_dir/draw/color.cpp",
499    "$drawing_core_src_dir/draw/core_canvas.cpp",
500    "$drawing_core_src_dir/draw/path.cpp",
501    "$drawing_core_src_dir/draw/path_iterator.cpp",
502    "$drawing_core_src_dir/draw/pen.cpp",
503    "$drawing_core_src_dir/effect/blur_draw_looper.cpp",
504    "$drawing_core_src_dir/effect/color_filter.cpp",
505    "$drawing_core_src_dir/effect/color_space.cpp",
506    "$drawing_core_src_dir/effect/filter.cpp",
507    "$drawing_core_src_dir/effect/image_filter.cpp",
508    "$drawing_core_src_dir/effect/mask_filter.cpp",
509    "$drawing_core_src_dir/effect/path_effect.cpp",
510    "$drawing_core_src_dir/effect/runtime_effect.cpp",
511    "$drawing_core_src_dir/effect/runtime_shader_builder.cpp",
512    "$drawing_core_src_dir/effect/shader_effect.cpp",
513    "$drawing_core_src_dir/engine_adapter/impl_factory.cpp",
514    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp",
515    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_camera.cpp",
516    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp",
517    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp",
518    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp",
519    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_document.cpp",
520    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_file_w_stream.cpp",
521    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_graphics.cpp",
522    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_helper.cpp",
523    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image.cpp",
524    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp",
525    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp",
526    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp",
527    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp",
528    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_paint.cpp",
529    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path.cpp",
530    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp",
531    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_path_iterator.cpp",
532    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_picture.cpp",
533    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_picture_recorder.cpp",
534    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_pixmap.cpp",
535    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_effect.cpp",
536    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_runtime_shader_builder.cpp",
537    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_serial_procs.cpp",
538    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp",
539    "$drawing_core_src_dir/engine_adapter/skia_adapter/skia_sharing_serial_context.cpp",
540    "$drawing_core_src_dir/image/bitmap.cpp",
541    "$drawing_core_src_dir/image/image.cpp",
542    "$drawing_core_src_dir/image/picture.cpp",
543    "$drawing_core_src_dir/image/pixmap.cpp",
544    "$drawing_core_src_dir/text/text.cpp",
545    "$drawing_core_src_dir/utils/camera3d.cpp",
546    "$drawing_core_src_dir/utils/document.cpp",
547    "$drawing_core_src_dir/utils/file_w_stream.cpp",
548    "$drawing_core_src_dir/utils/matrix.cpp",
549    "$drawing_core_src_dir/utils/picture_recorder.cpp",
550    "$drawing_core_src_dir/utils/serial_procs.cpp",
551    "$drawing_core_src_dir/utils/sharing_serial_context.cpp",
552  ]
553
554  if (enable_text_gine) {
555    defines += [ "USE_CANVASKIT0310_SKIA" ]
556  } else {
557    defines = [ "USE_CANVASKIT0310_SKIA" ]
558  }
559
560  include_dirs = [
561    "$drawing_core_include_dir",
562    "$src_dir",
563    "$drawing_core_src_dir",
564    "$drawing_core_src_dir/engine_adapter",
565  ]
566
567  external_deps = [
568    "hilog:libhilog",
569    "image_framework:image_native",
570  ]
571
572  external_deps += [ "skia:skia_canvaskit" ]
573  if (defined(graphic_2d_feature_enable_sdf) && graphic_2d_feature_enable_sdf) {
574    deps = [ "graphic_2d_ext:libsdf" ]
575    include_dirs += [ "$graphic_2d_ext_root/sdf/include" ]
576    defines += [ "RS_ENABLE_SDF" ]
577  }
578
579  if (!is_arkui_x) {
580    deps = [
581      # "//third_party/skia_canvaskit0310:skia",
582    ]
583    external_deps += [ "graphic_surface:surface" ]
584  }
585
586  if (enable_text_gine) {
587    defines += [ "USE_GRAPHIC_TEXT_GINE" ]
588  }
589
590  part_name = "graphic_2d"
591  subsystem_name = "graphic"
592}
593
594group("2d_graphics_packages") {
595  deps = [
596    "$drawing_root:2d_graphics",
597    "$drawing_root/drawing_ndk:native_drawing_ndk",
598  ]
599}
600