• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2023 Huawei Device Co., Ltd.
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")
17
18ohos_executable("drawing_engine_sample") {
19  install_enable = true
20  cflags = [
21    "-Wall",
22    "-Werror",
23    "-Wno-unused-parameter",
24    "-Wno-missing-field-initializers",
25    "-Wno-unused-variable",
26    "-Werror,-Wreturn-type",
27    "-Wno-error=deprecated-declarations",
28  ]
29
30  sources = [
31    "drawing_engine_sample.cpp",
32    "main.cpp",
33  ]
34
35  sources += [
36    "drawing_engine/canvas_context.cpp",
37    "drawing_engine/drawing_proxy.cpp",
38    "drawing_engine/drawing_surface/surface_frame_ohos_raster.cpp",
39    "drawing_engine/drawing_surface/surface_ohos.cpp",
40    "drawing_engine/drawing_surface/surface_ohos_raster.cpp",
41    "drawing_engine/software_render_backend.cpp",
42  ]
43
44  if (ace_enable_gpu) {
45    if (graphic_2d_feature_enable_vulkan) {
46      sources += [
47        "drawing_engine/drawing_surface/surface_frame_ohos_vulkan.cpp",
48        "drawing_engine/drawing_surface/surface_ohos_vulkan.cpp",
49        "drawing_engine/vulkan_render_backend.cpp",
50      ]
51    }
52    if (graphic_2d_feature_enable_opengl) {
53      sources += [
54        "drawing_engine/drawing_surface/surface_frame_ohos_gl.cpp",
55        "drawing_engine/drawing_surface/surface_ohos_gl.cpp",
56        "drawing_engine/egl_manager.cpp",
57        "drawing_engine/gles_render_backend.cpp",
58      ]
59    }
60  }
61
62  include_dirs = [
63    "include",
64    "drawing_engine",
65    "drawing_engine/drawing_surface",
66    "$graphic_2d_root/rosen/modules/composer/hdi_backend/include",
67    "$graphic_2d_root/utils/sync_fence/export",
68    "$graphic_2d_root/rosen/include/common",
69    "$graphic_2d_root/rosen/modules/render_service_base/src/platform/ohos/backend",
70    "$graphic_2d_root/rosen/modules/render_service_base/src",
71    "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include",
72  ]
73
74  sources += [
75    "benchmarks/benchmark_config.cpp",
76    "benchmarks/benchmark_dcl/drawing_command.cpp",
77    "benchmarks/benchmark_dcl/drawing_playback.cpp",
78    "benchmarks/benchmark_dcl/skia_recording.cpp",
79    "benchmarks/benchmark_multithread/drawing_mutilthread.cpp",
80    "benchmarks/benchmark_singlethread/drawing_singlethread.cpp",
81  ]
82
83  include_dirs += [
84    "benchmarks",
85    "benchmarks/benchmark_singlethread",
86    "benchmarks/benchmark_multithread",
87    "benchmarks/benchmark_api",
88    "benchmarks/benchmark_dcl",
89  ]
90
91  deps = [
92    "$graphic_2d_root:libsurface",
93    "$graphic_2d_root/rosen/modules/composer:libcomposer",
94    "$graphic_2d_root/utils:sync_fence",
95  ]
96
97  deps += [ "//third_party/skia:skia_ohos" ]
98
99  public_deps = libgl
100  defines = gpu_defines
101
102  if (defined(use_rosen_drawing) && use_rosen_drawing) {
103    defines += [ "USE_ROSEN_DRAWING" ]
104
105    deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ]
106  }
107  if (graphic_2d_feature_enable_flutter_vulkan) {
108    include_dirs += [ "//third_party/flutter/engine/flutter/vulkan" ]
109  }
110  public_deps += [
111    "$graphic_2d_root:libvulkan",
112    "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base",
113    "//third_party/openssl:libcrypto_shared",
114  ]
115  external_deps = [
116    "c_utils:utils",
117    "eventhandler:libeventhandler",
118    "hilog:libhilog",
119    "image_framework:image_native",
120    "init:libbegetutil",
121    "ipc:ipc_core",
122  ]
123
124  subsystem_name = "graphic"
125  part_name = "graphic_2d"
126}
127
128ohos_executable("drawing_sample_rs") {
129  install_enable = true
130
131  sources = [ "drawing_c_sample.cpp" ]
132
133  include_dirs = [
134    "$graphic_2d_root/rosen/modules/2d_graphics/include",
135    "$graphic_2d_root/rosen/modules/2d_graphics/src",
136    "$graphic_2d_root/rosen/modules/render_service_base/src",
137    "$graphic_2d_root/rosen/modules/render_service_base/include",
138    "$graphic_2d_root/rosen/modules/render_service_client",
139    "$graphic_2d_root/rosen/include/common",
140    "//foundation/window/window_manager/interfaces/innerkits/wm",
141  ]
142
143  deps = [
144    "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics",
145    "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base",
146    "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client",
147    "//third_party/zlib:libz",
148  ]
149
150  external_deps = [
151    "c_utils:utils",
152    "hilog:libhilog",
153  ]
154
155  part_name = "graphic_2d"
156  subsystem_name = "graphic"
157}
158
159ohos_executable("drawing_sample_canvaskit0310") {
160  install_enable = true
161
162  sources = [ "drawing_sample_canvaskit0310.cpp" ]
163
164  include_dirs = [
165    "$graphic_2d_root/rosen/modules/composer/hdi_backend/include",
166    "$graphic_2d_root/rosen/include/common",
167    "$graphic_2d_root/interfaces/inner_api/common",
168    "$graphic_2d_root/rosen/modules/composer/vsync/include",
169    "$graphic_2d_root/rosen/modules/2d_graphics/include",
170    "$graphic_2d_root/rosen/modules/2d_graphics/src",
171  ]
172
173  deps = [
174    "$graphic_2d_root:libsurface",
175    "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics_canvaskit0310",
176    "$graphic_2d_root/rosen/modules/composer:libcomposer",
177    "$graphic_2d_root/utils:libgraphic_utils",
178    "$graphic_2d_root/utils:sync_fence",
179  ]
180
181  external_deps = [
182    "hilog:libhilog",
183    "ipc:ipc_core",
184  ]
185
186  part_name = "graphic_2d"
187  subsystem_name = "graphic"
188}
189