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/graphic/graphic_2d/graphic_config.gni") 16 17ohos_executable("drawing_engine_sample") { 18 install_enable = true 19 cflags = [ 20 "-Wall", 21 "-Werror", 22 "-Wno-unused-parameter", 23 "-Wno-missing-field-initializers", 24 "-Wno-unused-variable", 25 "-Werror,-Wreturn-type", 26 "-Wno-error=deprecated-declarations", 27 ] 28 29 sanitize = { 30 cfi = true 31 cfi_cross_dso = true 32 debug = false 33 } 34 35 sources = [ 36 "drawing_engine_sample.cpp", 37 "main.cpp", 38 ] 39 40 sources += [ 41 "drawing_engine/canvas_context.cpp", 42 "drawing_engine/drawing_proxy.cpp", 43 "drawing_engine/drawing_surface/surface_frame_ohos_raster.cpp", 44 "drawing_engine/drawing_surface/surface_ohos.cpp", 45 "drawing_engine/drawing_surface/surface_ohos_raster.cpp", 46 "drawing_engine/software_render_backend.cpp", 47 ] 48 49 if (rs_enable_gpu) { 50 if (graphic_2d_feature_enable_vulkan) { 51 sources += [ 52 "drawing_engine/drawing_surface/surface_frame_ohos_vulkan.cpp", 53 "drawing_engine/drawing_surface/surface_ohos_vulkan.cpp", 54 "drawing_engine/vulkan_render_backend.cpp", 55 ] 56 } 57 if (graphic_2d_feature_enable_opengl) { 58 sources += [ 59 "drawing_engine/drawing_surface/surface_frame_ohos_gl.cpp", 60 "drawing_engine/drawing_surface/surface_ohos_gl.cpp", 61 "drawing_engine/egl_manager.cpp", 62 "drawing_engine/gles_render_backend.cpp", 63 ] 64 } 65 } 66 67 include_dirs = [ 68 "include", 69 "drawing_engine", 70 "drawing_engine/drawing_surface", 71 "$graphic_2d_root/rosen/modules/composer/hdi_backend/include", 72 "$graphic_2d_root/interfaces/inner_api/common", 73 "$graphic_2d_root/rosen/include/common", 74 "$graphic_2d_root/rosen/modules/render_service_base/src/platform/ohos/backend", 75 "$graphic_2d_root/rosen/modules/render_service_base/src", 76 ] 77 78 sources += [ 79 "benchmarks/benchmark_config.cpp", 80 "benchmarks/benchmark_dcl/drawing_command.cpp", 81 "benchmarks/benchmark_dcl/drawing_playback.cpp", 82 "benchmarks/benchmark_dcl/skia_recording.cpp", 83 "benchmarks/benchmark_multithread/drawing_mutilthread.cpp", 84 "benchmarks/benchmark_singlethread/drawing_singlethread.cpp", 85 ] 86 87 include_dirs += [ 88 "benchmarks", 89 "benchmarks/benchmark_singlethread", 90 "benchmarks/benchmark_multithread", 91 "benchmarks/benchmark_api", 92 "benchmarks/benchmark_dcl", 93 ] 94 95 deps = [ "$graphic_2d_root/rosen/modules/composer:libcomposer" ] 96 97 external_deps = [ "skia:skia_canvaskit" ] 98 99 public_deps = [ 100 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 101 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 102 ] 103 defines = gpu_defines 104 105 if (defined(use_rosen_drawing) && use_rosen_drawing) { 106 defines += [ "USE_ROSEN_DRAWING" ] 107 108 deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ] 109 } 110 if (graphic_2d_feature_enable_flutter_vulkan) { 111 include_dirs += [ "//third_party/flutter/engine/flutter/vulkan" ] 112 } 113 public_deps += [ 114 "$graphic_2d_root:libvulkan", 115 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 116 ] 117 external_deps += [ 118 "c_utils:utils", 119 "eventhandler:libeventhandler", 120 "graphic_surface:sync_fence", 121 "hilog:libhilog", 122 "image_framework:image_native", 123 "init:libbegetutil", 124 "ipc:ipc_core", 125 ] 126 public_external_deps = [ "openssl:libcrypto_shared" ] 127 128 subsystem_name = "graphic" 129 part_name = "graphic_2d" 130} 131 132ohos_executable("drawing_sample_rs") { 133 install_enable = true 134 135 sources = [ "drawing_c_sample.cpp" ] 136 137 include_dirs = [ 138 "$graphic_2d_root/rosen/modules/2d_graphics/include", 139 "$graphic_2d_root/rosen/modules/2d_graphics/src", 140 "$graphic_2d_root/rosen/modules/render_service_base/src", 141 "$graphic_2d_root/rosen/modules/render_service_base/include", 142 "$graphic_2d_root/rosen/modules/render_service_client", 143 "$graphic_2d_root/rosen/include/common", 144 ] 145 146 deps = [ 147 "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics", 148 "$graphic_2d_root/rosen/modules/2d_graphics/drawing_ndk:native_drawing_ndk", 149 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 150 "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client", 151 ] 152 153 external_deps = [ 154 "c_utils:utils", 155 "hilog:libhilog", 156 ] 157 158 part_name = "graphic_2d" 159 subsystem_name = "graphic" 160} 161 162ohos_executable("drawing_sample_canvaskit0310") { 163 install_enable = true 164 165 sources = [ "drawing_sample_canvaskit0310.cpp" ] 166 167 include_dirs = [ 168 "$graphic_2d_root/rosen/modules/composer/hdi_backend/include", 169 "$graphic_2d_root/rosen/include/common", 170 "$graphic_2d_root/interfaces/inner_api/common", 171 "$graphic_2d_root/rosen/modules/composer/vsync/include", 172 "$graphic_2d_root/rosen/modules/2d_graphics/include", 173 "$graphic_2d_root/rosen/modules/2d_graphics/src", 174 ] 175 176 deps = [ 177 "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics_canvaskit0310", 178 "$graphic_2d_root/rosen/modules/composer:libcomposer", 179 "$graphic_2d_root/utils:libgraphic_utils", 180 ] 181 182 external_deps = [ 183 "graphic_surface:surface", 184 "hilog:libhilog", 185 "ipc:ipc_core", 186 ] 187 188 part_name = "graphic_2d" 189 subsystem_name = "graphic" 190} 191 192ohos_executable("drawing_sample_replayer") { 193 install_enable = true 194 cflags = [ 195 "-Wall", 196 "-Werror", 197 "-Wno-unused-parameter", 198 "-Wno-missing-field-initializers", 199 "-Wno-unused-variable", 200 "-Werror,-Wreturn-type", 201 "-Wno-error=deprecated-declarations", 202 ] 203 204 sources = [ "drawing_sample_replayer.cpp" ] 205 206 sanitize = { 207 cfi = true 208 cfi_cross_dso = true 209 debug = false 210 } 211 212 include_dirs = [ 213 "include", 214 "$graphic_2d_root/rosen/include/common", 215 "$graphic_2d_root/rosen/modules/render_service_base/src/platform/ohos/backend", 216 "$graphic_2d_root/rosen/modules/render_service_base/src", 217 "foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 218 "foundation/communication/ipc/interfaces/innerkits/dm", 219 "$graphic_2d_root/rosen/modules/render_service_client/core", 220 ] 221 222 deps = [ "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client" ] 223 224 public_deps = [ 225 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 226 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 227 ] 228 defines = gpu_defines 229 230 if (defined(use_rosen_drawing) && use_rosen_drawing) { 231 defines += [ "USE_ROSEN_DRAWING" ] 232 233 deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ] 234 } 235 236 defines += [ 237 "VK_USE_PLATFORM_OHOS", 238 "NDEBUG", 239 ] 240 include_dirs += [ 241 "$graphic_2d_root/frameworks/surface/include", 242 "$graphic_2d_root/rosen/modules/2d_graphics/include", 243 "$graphic_2d_root/interfaces/inner_api/surface", 244 ] 245 public_deps += [ 246 "$graphic_2d_root:libvulkan", 247 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 248 ] 249 external_deps = [ 250 "c_utils:utils", 251 "graphic_surface:surface", 252 "ipc:ipc_core", 253 "window_manager:libdm", 254 ] 255 256 subsystem_name = "graphic" 257 part_name = "graphic_2d" 258} 259