• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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