1# Copyright (c) 2022 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( 18 "//foundation/graphic/graphic_2d/rosen/modules/2d_engine/rosen_text/config.gni") 19 20drawing_src_dir = "$rosen_root/modules/2d_graphics/src/drawing" 21src_dir = "$rosen_root/modules/2d_graphics/src" 22 23template("graphics2d_source_set") { 24 forward_variables_from(invoker, "*") 25 26 ohos_source_set(target_name) { 27 defines += invoker.defines 28 cflags_cc += invoker.cflags_cc 29 sources = [ 30 "$drawing_src_dir/c/drawing_bitmap.cpp", 31 "$drawing_src_dir/c/drawing_brush.cpp", 32 "$drawing_src_dir/c/drawing_canvas.cpp", 33 "$drawing_src_dir/c/drawing_color.cpp", 34 "$drawing_src_dir/c/drawing_font_collection.cpp", 35 "$drawing_src_dir/c/drawing_path.cpp", 36 "$drawing_src_dir/c/drawing_pen.cpp", 37 "$drawing_src_dir/c/drawing_text_typography.cpp", 38 "$drawing_src_dir/draw/brush.cpp", 39 "$drawing_src_dir/draw/color.cpp", 40 "$drawing_src_dir/draw/core_canvas.cpp", 41 "$drawing_src_dir/draw/path.cpp", 42 "$drawing_src_dir/draw/pen.cpp", 43 "$drawing_src_dir/effect/color_filter.cpp", 44 "$drawing_src_dir/effect/color_space.cpp", 45 "$drawing_src_dir/effect/filter.cpp", 46 "$drawing_src_dir/effect/image_filter.cpp", 47 "$drawing_src_dir/effect/mask_filter.cpp", 48 "$drawing_src_dir/effect/path_effect.cpp", 49 "$drawing_src_dir/effect/shader_effect.cpp", 50 "$drawing_src_dir/engine_adapter/impl_factory.cpp", 51 "$drawing_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp", 52 "$drawing_src_dir/engine_adapter/skia_adapter/skia_camera.cpp", 53 "$drawing_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp", 54 "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp", 55 "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp", 56 "$drawing_src_dir/engine_adapter/skia_adapter/skia_image.cpp", 57 "$drawing_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp", 58 "$drawing_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp", 59 "$drawing_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp", 60 "$drawing_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp", 61 "$drawing_src_dir/engine_adapter/skia_adapter/skia_paint.cpp", 62 "$drawing_src_dir/engine_adapter/skia_adapter/skia_path.cpp", 63 "$drawing_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp", 64 "$drawing_src_dir/engine_adapter/skia_adapter/skia_picture.cpp", 65 "$drawing_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp", 66 "$drawing_src_dir/image/bitmap.cpp", 67 "$drawing_src_dir/image/image.cpp", 68 "$drawing_src_dir/image/picture.cpp", 69 "$drawing_src_dir/text/text.cpp", 70 "$drawing_src_dir/utils/camera3d.cpp", 71 "$drawing_src_dir/utils/matrix.cpp", 72 ] 73 74 sources += [ 75 "$rosen_text_root/properties/font_collection_txt.cpp", 76 "$rosen_text_root/properties/placeholder_run.cpp", 77 "$rosen_text_root/properties/rosen_converter_txt.cpp", 78 "$rosen_text_root/properties/text_style.cpp", 79 "$rosen_text_root/properties/typography_create_txt.cpp", 80 "$rosen_text_root/properties/typography_style.cpp", 81 "$rosen_text_root/properties/typography_txt.cpp", 82 "$rosen_text_root/ui/font_collection.cpp", 83 "$rosen_text_root/ui/typography.cpp", 84 "$rosen_text_root/ui/typography_create.cpp", 85 ] 86 87 include_dirs = [ 88 "include", 89 "$src_dir", 90 "$drawing_src_dir", 91 "$drawing_src_dir/engine_adapter", 92 "$rosen_2d_engine_root", 93 "//foundation/arkui/ace_engine/frameworks", 94 "//third_party/bounds_checking_function/include", 95 ] 96 97 defines += [ "USE_ACE_SKIA" ] 98 99 if (platform == "ohos") { 100 external_deps = [ 101 "hilog_native:libhilog", 102 "multimedia_image_framework:image_native", 103 ] 104 deps = [ 105 "$ace_flutter_engine_root:flutter_engine_fml_$platform", 106 "//foundation/graphic/graphic_2d/rosen/build/flutter/icu:rosen_libicu_$platform", 107 "//foundation/graphic/graphic_2d/rosen/build/flutter/libtxt:thirdparty_lib_txt_rosen_$platform", 108 "//third_party/bounds_checking_function:libsec_static", 109 ] 110 include_dirs += [ 111 "$flutter_root/engine", 112 "$flutter_root/engine/flutter/third_party/txt/src", 113 ] 114 defines += [ "SUPPORT_OHOS_PIXMAP" ] 115 } else { 116 cflags = [ "-Wno-c++17-extensions" ] 117 118 if (enable_ng_build) { 119 deps = [ 120 "$ace_flutter_engine_root_new/third_party/icu:ace_libicu_dev_$platform", 121 "$ace_flutter_engine_root_new/third_party/libtxt:thirdparty_lib_txt_dev_$platform", 122 "$ace_flutter_engine_root_new/third_party/skia:ace_skia_dev_$platform", 123 ] 124 include_dirs += [ 125 "$flutter_root_new/engine", 126 "$flutter_root_new/engine/flutter/third_party/txt/src", 127 ] 128 defines += [ "USE_CANVASKIT0310_SKIA" ] 129 } else { 130 deps = [ 131 "$ace_flutter_engine_root:flutter_engine_fml_$platform", 132 "$ace_flutter_engine_root/icu:ace_libicu_$platform", 133 "$ace_flutter_engine_root/libtxt:thirdparty_lib_txt_$platform", 134 "$ace_flutter_engine_root/skia:ace_skia_$platform", 135 ] 136 include_dirs += [ 137 "$flutter_root/engine", 138 "$flutter_root/engine/flutter/third_party/txt/src", 139 ] 140 } 141 142 if (!is_cross_platform_build) { 143 deps += [ "//base/hiviewdfx/hilog/frameworks/libhilog:libhilog_source_$platform" ] 144 } 145 } 146 147 part_name = "graphic_standard" 148 subsystem_name = "graphic" 149 } 150} 151 152foreach(item, ace_platforms) { 153 graphics2d_source_set("2d_graphics_source_" + item.name) { 154 platform = item.name 155 defines = [] 156 157 if (defined(item.config)) { 158 config = item.config 159 } else { 160 config = { 161 } 162 } 163 164 if (defined(config.defines)) { 165 defines += config.defines 166 } 167 168 if (defined(config.cflags_cc)) { 169 cflags_cc = config.cflags_cc 170 } else { 171 cflags_cc = [] 172 } 173 } 174} 175 176if (!is_cross_platform_build) { 177 ## Build 2d_graphics.so 178 ohos_shared_library("2d_graphics") { 179 version_script = "2d_graphics.versionscript" 180 symlink_target_name = [ "libnative_drawing.so" ] 181 deps = [ ":2d_graphics_source_ohos" ] 182 part_name = "graphic_standard" 183 subsystem_name = "graphic" 184 } 185} 186 187## Build 2d_graphics.so 188ohos_shared_library("2d_graphics_canvaskit0310") { 189 sources = [ 190 "$drawing_src_dir/draw/brush.cpp", 191 "$drawing_src_dir/draw/color.cpp", 192 "$drawing_src_dir/draw/core_canvas.cpp", 193 "$drawing_src_dir/draw/path.cpp", 194 "$drawing_src_dir/draw/pen.cpp", 195 "$drawing_src_dir/effect/color_filter.cpp", 196 "$drawing_src_dir/effect/color_space.cpp", 197 "$drawing_src_dir/effect/filter.cpp", 198 "$drawing_src_dir/effect/image_filter.cpp", 199 "$drawing_src_dir/effect/mask_filter.cpp", 200 "$drawing_src_dir/effect/path_effect.cpp", 201 "$drawing_src_dir/effect/shader_effect.cpp", 202 "$drawing_src_dir/engine_adapter/impl_factory.cpp", 203 "$drawing_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp", 204 "$drawing_src_dir/engine_adapter/skia_adapter/skia_camera.cpp", 205 "$drawing_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp", 206 "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp", 207 "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp", 208 "$drawing_src_dir/engine_adapter/skia_adapter/skia_image.cpp", 209 "$drawing_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp", 210 "$drawing_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp", 211 "$drawing_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp", 212 "$drawing_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp", 213 "$drawing_src_dir/engine_adapter/skia_adapter/skia_paint.cpp", 214 "$drawing_src_dir/engine_adapter/skia_adapter/skia_path.cpp", 215 "$drawing_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp", 216 "$drawing_src_dir/engine_adapter/skia_adapter/skia_picture.cpp", 217 "$drawing_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp", 218 "$drawing_src_dir/image/bitmap.cpp", 219 "$drawing_src_dir/image/image.cpp", 220 "$drawing_src_dir/image/picture.cpp", 221 "$drawing_src_dir/text/text.cpp", 222 "$drawing_src_dir/utils/camera3d.cpp", 223 "$drawing_src_dir/utils/matrix.cpp", 224 ] 225 226 defines = [ "USE_CANVASKIT0310_SKIA" ] 227 228 include_dirs = [ 229 "include", 230 "$src_dir", 231 "$drawing_src_dir", 232 "$drawing_src_dir/engine_adapter", 233 ] 234 235 if (!is_cross_platform_build) { 236 deps = [ 237 "//foundation/graphic/graphic_2d:libsurface", 238 # "//third_party/skia_canvaskit0310:skia", 239 ] 240 } 241 242 external_deps = [ 243 "hilog_native:libhilog", 244 "multimedia_image_framework:image_native", 245 ] 246 247 part_name = "graphic_standard" 248 subsystem_name = "graphic" 249} 250## Build 2d_graphics.so 251