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