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 "foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 72 "$graphic_2d_root/rosen/modules/composer/hdi_backend/include", 73 "$graphic_2d_root/interfaces/inner_api/common", 74 "$graphic_2d_root/rosen/include/common", 75 "$graphic_2d_root/rosen/modules/render_service_base/src/platform/ohos/backend", 76 "$graphic_2d_root/rosen/modules/render_service_base/src", 77 "$graphic_2d_root/rosen/modules/render_service_client/core", 78 ] 79 80 sources += [ 81 "benchmarks/benchmark_config.cpp", 82 "benchmarks/benchmark_dcl/drawing_command.cpp", 83 "benchmarks/benchmark_dcl/drawing_playback.cpp", 84 "benchmarks/benchmark_dcl/skia_recording.cpp", 85 "benchmarks/benchmark_multithread/drawing_mutilthread.cpp", 86 "benchmarks/benchmark_singlethread/drawing_singlethread.cpp", 87 ] 88 89 include_dirs += [ 90 "benchmarks", 91 "benchmarks/benchmark_singlethread", 92 "benchmarks/benchmark_multithread", 93 "benchmarks/benchmark_api", 94 "benchmarks/benchmark_dcl", 95 ] 96 97 deps = [ "$graphic_2d_root/rosen/modules/composer:libcomposer" ] 98 99 external_deps = [ "skia:skia_canvaskit" ] 100 101 public_deps = [ 102 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 103 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 104 ] 105 defines = gpu_defines 106 107 if (defined(use_rosen_drawing) && use_rosen_drawing) { 108 defines += [ "USE_ROSEN_DRAWING" ] 109 110 deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ] 111 } 112 if (graphic_2d_feature_enable_flutter_vulkan) { 113 include_dirs += [ "//third_party/flutter/engine/flutter/vulkan" ] 114 } 115 public_deps += [ 116 "$graphic_2d_root:libvulkan", 117 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 118 ] 119 public_external_deps = [ "openssl:libcrypto_shared" ] 120 external_deps += [ 121 "c_utils:utils", 122 "eventhandler:libeventhandler", 123 "graphic_surface:sync_fence", 124 "hilog:libhilog", 125 "image_framework:image_native", 126 "init:libbegetutil", 127 "ipc:ipc_core", 128 ] 129 130 subsystem_name = "graphic" 131 part_name = "graphic_2d" 132} 133 134ohos_executable("drawing_sample_rs") { 135 install_enable = true 136 137 sources = [ "drawing_c_sample.cpp" ] 138 139 include_dirs = [ 140 "$graphic_2d_root/rosen/modules/2d_graphics/include", 141 "$graphic_2d_root/rosen/modules/2d_graphics/src", 142 "$graphic_2d_root/rosen/modules/render_service_base/src", 143 "$graphic_2d_root/rosen/modules/render_service_base/include", 144 "$graphic_2d_root/rosen/modules/render_service_client", 145 "$graphic_2d_root/rosen/include/common", 146 "$window_base_path/interfaces/innerkits/wm", 147 ] 148 149 deps = [ 150 "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics", 151 "$graphic_2d_root/rosen/modules/2d_graphics/drawing_ndk:native_drawing_ndk", 152 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 153 "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client", 154 ] 155 156 external_deps = [ 157 "c_utils:utils", 158 "hilog:libhilog", 159 "zlib:libz", 160 ] 161 162 part_name = "graphic_2d" 163 subsystem_name = "graphic" 164} 165 166ohos_executable("drawing_sample_canvaskit0310") { 167 install_enable = true 168 169 sources = [ "drawing_sample_canvaskit0310.cpp" ] 170 171 include_dirs = [ 172 "$graphic_2d_root/rosen/modules/composer/hdi_backend/include", 173 "$graphic_2d_root/rosen/include/common", 174 "$graphic_2d_root/interfaces/inner_api/common", 175 "$graphic_2d_root/rosen/modules/composer/vsync/include", 176 "$graphic_2d_root/rosen/modules/2d_graphics/include", 177 "$graphic_2d_root/rosen/modules/2d_graphics/src", 178 ] 179 180 deps = [ 181 "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics_canvaskit0310", 182 "$graphic_2d_root/rosen/modules/composer:libcomposer", 183 "$graphic_2d_root/utils:libgraphic_utils", 184 ] 185 186 external_deps = [ 187 "graphic_surface:surface", 188 "hilog:libhilog", 189 "ipc:ipc_core", 190 ] 191 192 part_name = "graphic_2d" 193 subsystem_name = "graphic" 194} 195 196ohos_executable("drawing_sample_replayer") { 197 install_enable = true 198 cflags = [ 199 "-Wall", 200 "-Werror", 201 "-Wno-unused-parameter", 202 "-Wno-missing-field-initializers", 203 "-Wno-unused-variable", 204 "-Werror,-Wreturn-type", 205 "-Wno-error=deprecated-declarations", 206 ] 207 208 sources = [ "drawing_sample_replayer.cpp" ] 209 210 sanitize = { 211 cfi = true 212 cfi_cross_dso = true 213 debug = false 214 } 215 216 include_dirs = [ 217 "include", 218 "$graphic_2d_root/rosen/include/common", 219 "$graphic_2d_root/rosen/modules/render_service_base/src/platform/ohos/backend", 220 "$graphic_2d_root/rosen/modules/render_service_base/src", 221 "foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 222 "foundation/communication/ipc/interfaces/innerkits/dm", 223 "$graphic_2d_root/rosen/modules/render_service_client/core", 224 ] 225 226 deps = [ "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client" ] 227 228 public_deps = [ 229 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 230 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 231 ] 232 defines = gpu_defines 233 234 if (defined(use_rosen_drawing) && use_rosen_drawing) { 235 defines += [ "USE_ROSEN_DRAWING" ] 236 237 deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ] 238 } 239 240 defines += [ 241 "VK_USE_PLATFORM_OHOS", 242 "NDEBUG", 243 ] 244 include_dirs += [ 245 "$graphic_2d_root/frameworks/surface/include", 246 "$graphic_2d_root/rosen/modules/2d_graphics/include", 247 "$graphic_2d_root/interfaces/inner_api/surface", 248 ] 249 public_deps += [ 250 "$graphic_2d_root:libvulkan", 251 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 252 ] 253 external_deps = [ 254 "c_utils:utils", 255 "graphic_surface:surface", 256 "ipc:ipc_core", 257 "window_manager:libdm", 258 ] 259 260 subsystem_name = "graphic" 261 part_name = "graphic_2d" 262} 263