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