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 public_deps += [ 113 "$graphic_2d_root:libvulkan", 114 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 115 ] 116 public_external_deps = [ "openssl:libcrypto_shared" ] 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 127 subsystem_name = "graphic" 128 part_name = "graphic_2d" 129} 130 131ohos_executable("drawing_sample_rs") { 132 install_enable = true 133 134 sources = [ "drawing_c_sample.cpp" ] 135 136 include_dirs = [ 137 "$graphic_2d_root/rosen/modules/2d_graphics/include", 138 "$graphic_2d_root/rosen/modules/2d_graphics/src", 139 "$graphic_2d_root/rosen/modules/render_service_base/src", 140 "$graphic_2d_root/rosen/modules/render_service_base/include", 141 "$graphic_2d_root/rosen/modules/render_service_client", 142 "$graphic_2d_root/rosen/include/common", 143 "$window_base_path/interfaces/innerkits/wm", 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 "zlib:libz", 157 ] 158 159 part_name = "graphic_2d" 160 subsystem_name = "graphic" 161} 162 163ohos_executable("drawing_sample_replayer") { 164 install_enable = true 165 cflags = [ 166 "-Wall", 167 "-Werror", 168 "-Wno-unused-parameter", 169 "-Wno-missing-field-initializers", 170 "-Wno-unused-variable", 171 "-Werror,-Wreturn-type", 172 "-Wno-error=deprecated-declarations", 173 ] 174 175 sources = [ "drawing_sample_replayer.cpp" ] 176 177 sanitize = { 178 cfi = true 179 cfi_cross_dso = true 180 debug = false 181 } 182 183 include_dirs = [ 184 "include", 185 "$graphic_2d_root/rosen/include/common", 186 "$graphic_2d_root/rosen/modules/render_service_base/src/platform/ohos/backend", 187 "$graphic_2d_root/rosen/modules/render_service_base/src", 188 "foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 189 "foundation/communication/ipc/interfaces/innerkits/dm", 190 "$graphic_2d_root/rosen/modules/render_service_client/core", 191 ] 192 193 deps = [ "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client" ] 194 195 public_deps = [ 196 "$graphic_2d_root/frameworks/opengl_wrapper:EGL", 197 "$graphic_2d_root/frameworks/opengl_wrapper:GLESv3", 198 ] 199 defines = gpu_defines 200 201 if (defined(use_rosen_drawing) && use_rosen_drawing) { 202 defines += [ "USE_ROSEN_DRAWING" ] 203 204 deps += [ "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics" ] 205 } 206 207 defines += [ 208 "VK_USE_PLATFORM_OHOS", 209 "NDEBUG", 210 ] 211 include_dirs += [ 212 "$graphic_2d_root/frameworks/surface/include", 213 "$graphic_2d_root/rosen/modules/2d_graphics/include", 214 "$graphic_2d_root/interfaces/inner_api/surface", 215 ] 216 public_deps += [ 217 "$graphic_2d_root:libvulkan", 218 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 219 ] 220 external_deps = [ 221 "c_utils:utils", 222 "graphic_surface:surface", 223 "ipc:ipc_core", 224 "window_manager:libdm", 225 ] 226 227 subsystem_name = "graphic" 228 part_name = "graphic_2d" 229} 230