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