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