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 ] 28 29 sources = [ 30 "drawing_engine_sample.cpp", 31 "main.cpp", 32 ] 33 34 sources += [ 35 "drawing_engine/canvas_context.cpp", 36 "drawing_engine/drawing_proxy.cpp", 37 "drawing_engine/drawing_surface/surface_frame_ohos_raster.cpp", 38 "drawing_engine/drawing_surface/surface_ohos.cpp", 39 "drawing_engine/drawing_surface/surface_ohos_raster.cpp", 40 "drawing_engine/software_render_backend.cpp", 41 ] 42 43 if (ace_enable_gpu) { 44 if (graphic_2d_feature_enable_vulkan) { 45 sources += [ 46 "drawing_engine/drawing_surface/surface_frame_ohos_vulkan.cpp", 47 "drawing_engine/drawing_surface/surface_ohos_vulkan.cpp", 48 "drawing_engine/vulkan_render_backend.cpp", 49 ] 50 } else { 51 sources += [ 52 "drawing_engine/drawing_surface/surface_frame_ohos_gl.cpp", 53 "drawing_engine/drawing_surface/surface_ohos_gl.cpp", 54 "drawing_engine/egl_manager.cpp", 55 "drawing_engine/gles_render_backend.cpp", 56 ] 57 } 58 } 59 60 configs = [] 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 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 70 ] 71 72 sources += [ 73 "benchmarks/benchmark_config.cpp", 74 "benchmarks/benchmark_dcl/drawing_command.cpp", 75 "benchmarks/benchmark_dcl/drawing_playback.cpp", 76 "benchmarks/benchmark_dcl/skia_recording.cpp", 77 "benchmarks/benchmark_multithread/drawing_mutilthread.cpp", 78 "benchmarks/benchmark_singlethread/drawing_singlethread.cpp", 79 ] 80 81 include_dirs += [ 82 "benchmarks", 83 "benchmarks/benchmark_singlethread", 84 "benchmarks/benchmark_multithread", 85 "benchmarks/benchmark_api", 86 "benchmarks/benchmark_dcl", 87 ] 88 89 deps = [ 90 "$graphic_2d_root:libsurface", 91 "$graphic_2d_root/rosen/modules/composer:libcomposer", 92 "$graphic_2d_root/utils:sync_fence", 93 ] 94 95 if (defined(use_new_skia) && use_new_skia) { 96 deps += [ "//third_party/skia:skia_ohos" ] 97 } else { 98 deps += [ "//third_party/flutter/build/skia:ace_skia_ohos" ] 99 } 100 101 public_deps = libgl 102 defines = gpu_defines 103 104 #defines = [ "USE_CANVASKIT0310_SKIA" ] 105 #defines += gpu_defines 106 deps += [ 107 #"//third_party/skia:skia", 108 ] 109 if (graphic_2d_feature_enable_vulkan) { 110 include_dirs += [ "//third_party/flutter/engine/flutter/vulkan" ] 111 } 112 public_deps += [ 113 "$graphic_2d_root:libvulkan", 114 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 115 "//third_party/openssl:libcrypto_shared", 116 ] 117 external_deps = [ 118 "c_utils:utils", 119 "eventhandler:libeventhandler", 120 "hilog:libhilog", 121 "image_framework:image_native", 122 "init:libbegetutil", 123 "ipc:ipc_core", 124 ] 125 126 subsystem_name = "graphic" 127 part_name = "graphic_2d" 128} 129 130ohos_executable("drawing_sample_rs") { 131 install_enable = true 132 133 sources = [ "drawing_c_sample.cpp" ] 134 135 include_dirs = [ 136 "$graphic_2d_root/rosen/modules/2d_graphics/include", 137 "$graphic_2d_root/rosen/modules/2d_graphics/src", 138 "$graphic_2d_root/rosen/modules/render_service_base/src", 139 "$graphic_2d_root/rosen/modules/render_service_base/include", 140 "$graphic_2d_root/rosen/modules/render_service_client", 141 "$graphic_2d_root/rosen/include/common", 142 "//foundation/window/window_manager/interfaces/innerkits/wm", 143 ] 144 145 deps = [ 146 "$graphic_2d_root/rosen/modules/2d_graphics:2d_graphics", 147 "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base", 148 "$graphic_2d_root/rosen/modules/render_service_client:librender_service_client", 149 "//third_party/zlib:libz", 150 ] 151 152 external_deps = [ 153 "c_utils:utils", 154 "hilog:libhilog", 155 ] 156 157 part_name = "graphic_2d" 158 subsystem_name = "graphic" 159} 160 161ohos_executable("drawing_sample_canvaskit0310") { 162 install_enable = true 163 164 sources = [ "drawing_sample_canvaskit0310.cpp" ] 165 166 include_dirs = [ 167 "$graphic_2d_root/rosen/modules/composer/hdi_backend/include", 168 "$graphic_2d_root/rosen/include/common", 169 "$graphic_2d_root/interfaces/inner_api/common", 170 "$graphic_2d_root/rosen/modules/composer/vsync/include", 171 "$graphic_2d_root/rosen/modules/2d_graphics/include", 172 "$graphic_2d_root/rosen/modules/2d_graphics/src", 173 ] 174 175 deps = [ 176 "$graphic_2d_root:libsurface", 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 "$graphic_2d_root/utils:sync_fence", 181 ] 182 183 external_deps = [ 184 "hilog:libhilog", 185 "ipc:ipc_core", 186 ] 187 188 part_name = "graphic_2d" 189 subsystem_name = "graphic" 190} 191