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