# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build/config/components/multimodalinput/cursor_config.gni")
declare_args() {
graphic_2d_feature_product = "default"
graphic_2d_feature_enable_pgo = false
graphic_2d_feature_enable_codemerge = false
graphic_2d_feature_enable_func_arg_specialization = false
graphic_2d_feature_pgo_path = ""
graphic_2d_feature_bootanimation_enable = true
graphic_2d_feature_ace_enable_gpu = true
graphic_2d_feature_color_gamut_enable = false
graphic_2d_feature_rs_enable_eglimage = false
graphic_2d_feature_rs_enable_profiler = true
graphic_2d_feature_use_texgine = false
graphic_2d_feature_rs_enable_uni_render = false
graphic_2d_feature_wuji_enable = false
graphic_2d_feature_enable_afbc = false
graphic_2d_feature_freemem_enable = false
graphic_2d_feature_parallel_render_enable = true
graphic_2d_feature_enable_vulkan = false
graphic_2d_feature_enable_opengl = true
graphic_2d_feature_enable_sdf = false
graphic_2d_feature_enable_opinc = false
graphic_2d_feature_enable_filter_cache = true
enable_text_gine = true
use_skia_txt = true
use_video_processing_engine = false
logger_enable_scope = false
player_framework_enable = true
graphic_2d_feature_drivers_interface_display_enable = true
graphic_2d_feature_tp_switch_enbale = false
graphic_2d_feature_use_igraphics_extend_hooks = false
graphic_2d_feature_enable_chipset_vsync = false
graphic_2d_feature_enable_rspipeline = true
graphic_2d_feature_enable_prefetch = true
graphic_2d_feature_bootanimation_ext_enable = "default"
graphic_2d_support_access_token = true
graphic_2d_feature_overlay_display_enable = false
enable_full_screen_recongnize = false
graphic_2d_feature_enable_opengl_to_vulkan = false
graphic_2d_feature_screenless_enable = false
graphic_2d_feature_tv_metadata_enable = false
graphic_2d_feature_upgrade_skia = true
graphic_2d_feature_enable_rdo = false
graphic_2d_feature_enable_memory_info_manager = false
graphic_2d_feature_enable_dvsync = false
graphic_2d_feature_enable_drm = false
graphic_2d_feature_enable_mediacommon = false
graphic_2d_feature_enable_image_detail_enhancer = false
graphic_2d_feature_rs_modifiers_draw_enable = false
if (defined(is_arkui_x) && is_arkui_x) {
is_cross_platform = true
} else {
is_cross_platform = false
}
graphic_2d_feature_subtree_parallel_enable = false
graphic_2d_feature_hetero_hdr_enable = false
graphic_2d_feature_mhc_enable = false
graphic_2d_feature_enable_primitive = false
}
declare_args() {
graphic_2d_feature_enable_stack_culling = false
}
if (graphic_2d_feature_product == "phone" ||
graphic_2d_feature_product == "pc" ||
graphic_2d_feature_product == "tablet" ||
graphic_2d_feature_product == "wearable") {
graphic_2d_feature_enable_vulkan = true
graphic_2d_feature_enable_stack_culling = true
}
if (graphic_2d_feature_product == "phone" ||
graphic_2d_feature_product == "pc" ||
graphic_2d_feature_product == "tablet" ||
graphic_2d_feature_product == "wearable") {
graphic_2d_feature_enable_opinc = true
}
if (graphic_2d_feature_product == "tablet") {
enable_full_screen_recongnize = true
}
gpu_defines = []
accessibility_defines = []
if (graphic_2d_feature_screenless_enable) {
gpu_defines += ["SCREENLESS_DEVICE"]
}
if (graphic_2d_feature_ace_enable_gpu) {
if (graphic_2d_feature_enable_vulkan) {
gpu_defines += [
"ACE_ENABLE_VK",
"RS_ENABLE_VK",
]
}
if (graphic_2d_feature_enable_opengl) {
gpu_defines += [
"ACE_ENABLE_GL",
"RS_ENABLE_GL",
]
}
if (graphic_2d_feature_enable_opinc) {
gpu_defines += [ "DDGR_ENABLE_FEATURE_OPINC" ]
}
if (graphic_2d_feature_rs_enable_profiler) {
gpu_defines += [ "SKP_RECORDING_ENABLED" ]
}
ace_enable_gpu = true
rs_enable_gpu = true
surface_enable_gpu = true
} else {
gpu_defines += [ "ACE_DISABLE_GL" ]
ace_enable_gpu = false
rs_enable_gpu = false
surface_enable_gpu = false
}
if (graphic_2d_feature_subtree_parallel_enable) {
gpu_defines += [ "SUBTREE_PARALLEL_ENABLE" ]
}
if (graphic_2d_feature_hetero_hdr_enable) {
gpu_defines += [ "HETERO_HDR_ENABLE" ]
}
if (graphic_2d_feature_mhc_enable) {
gpu_defines += [ "MHC_ENABLE" ]
}
if (graphic_2d_feature_rs_enable_eglimage || current_os == "android") {
gpu_defines += [
"RS_ENABLE_EGLIMAGE",
"RS_ENABLE_EGLQUERYSURFACE",
]
rs_enable_eglimage = true
} else {
gpu_defines += [ "RS_DISABLE_EGLIMAGE" ]
rs_enable_eglimage = false
}
if (graphic_2d_feature_rs_enable_uni_render) {
graphic_2d_feature_enable_sdf = false
if (graphic_2d_feature_product == "phone" ||
graphic_2d_feature_product == "tablet") {
graphic_2d_feature_enable_chipset_vsync = true
}
gpu_defines += [ "RS_ENABLE_UNI_RENDER" ]
} else {
graphic_2d_feature_enable_sdf = false
graphic_2d_feature_enable_chipset_vsync = false
}
if (graphic_2d_feature_enable_afbc) {
gpu_defines += [ "RS_ENABLE_AFBC" ]
}
if (graphic_2d_feature_parallel_render_enable) {
rs_enable_parallel_render = true
gpu_defines += [ "RS_ENABLE_PARALLEL_RENDER" ]
}
if (graphic_2d_feature_enable_chipset_vsync) {
gpu_defines += [ "RS_ENABLE_CHIPSET_VSYNC" ]
}
tp_defines = []
tp_feature_enable = false
if (graphic_2d_feature_tp_switch_enbale) {
tp_feature_enable = true
tp_defines = [ "TP_FEATURE_ENABLE" ]
}
if (graphic_2d_feature_overlay_display_enable) {
gpu_defines += [ "RS_ENABLE_OVERLAY_DISPLAY" ]
}
if (graphic_2d_feature_tv_metadata_enable) {
gpu_defines += [ "RS_ENABLE_TV_PQ_METADATA" ]
}
check_graphic_ext_file_script = "//build/ohos/file_exists.py"
check_ddgr_ext_file_args = [
"--filename",
rebase_path("//foundation/graphic/graphic_2d_ext/ddgr/config.gni"),
]
check_delegator_ext_file_args = [
"--filename",
rebase_path("//foundation/graphic/graphic_2d_ext/delegator/config.gni"),
]
check_broker_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni"),
]
check_dynamic_layer_skip_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/dynamic_layer_skip/build/dynamic_layer_skip.gni"),
]
check_math_tools_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/math_tools/build/math_tools_config.gni"),
]
check_frame_stability_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/frame_stability/build/frame_stability_config.gni"),
]
check_hgm_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/hgm_manager/build/hgm_config.gni"),
]
check_modifiers_draw_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/modifiers_draw/build/modifiers_draw_config.gni"),
]
check_subtree_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/subtree/build/subtree_config.gni"),
]
check_hetero_hdr_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/hetero_hdr/build/hetero_hdr_config.gni"),
]
check_mhc_ext_file_args = [
"--filename",
rebase_path(
"//foundation/graphic/graphic_2d_ext/mhc/build/mhc_config.gni"),
]
if (path_exists("//foundation/graphic/graphic_2d_ext/dvsync/BUILD.gn")) {
graphic_2d_feature_enable_dvsync = true
}
if (path_exists("//foundation/graphic/graphic_2d_ext/ddgr/config.gni")) {
ddgr_ext_configs = {
import("//foundation/graphic/graphic_2d_ext/ddgr/config.gni")
}
import("//foundation/graphic/graphic_2d_ext/ddgr/config.gni")
if (graphic_2d_feature_ace_enable_gpu && graphic_2d_feature_enable_vulkan) {
if (defined(graphic_2d_ext_feature_enable_ddgr) &&
graphic_2d_ext_feature_enable_ddgr) {
gpu_defines += [ "ENABLE_DDGR_OPTIMIZE" ]
}
}
}
graphic_2d_delegator_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/delegator/config.gni")) {
graphic_2d_delegator_configs = {
import("//foundation/graphic/graphic_2d_ext/delegator/config.gni")
}
}
graphic_2d_broker_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni")) {
graphic_2d_broker_configs = {
import("//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni")
}
}
graphic_2d_hgm_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/hgm_manager/build/hgm_config.gni")) {
graphic_2d_hgm_configs = {
import(
"//foundation/graphic/graphic_2d_ext/hgm_manager/build/hgm_config.gni")
}
}
graphic_2d_math_tools_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/math_tools/build/math_tools_config.gni")) {
graphic_2d_math_tools_configs = {
import(
"//foundation/graphic/graphic_2d_ext/math_tools/build/math_tools_config.gni")
}
}
graphic_2d_frame_stability_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/frame_stability/build/frame_stability_config.gni")) {
graphic_2d_frame_stability_configs = {
import(
"//foundation/graphic/graphic_2d_ext/frame_stability/build/frame_stability_config.gni")
}
}
graphic_2d_dynamic_layer_skip_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/dynamic_layer_skip/build/dynamic_layer_skip.gni")) {
graphic_2d_dynamic_layer_skip_configs = {
import(
"//foundation/graphic/graphic_2d_ext/dynamic_layer_skip/build/dynamic_layer_skip.gni")
}
}
check_platform_ext_file_args = [
"--filename",
rebase_path("//foundation/graphic/graphic_2d_ext/platform/config.gni"),
]
graphic_2d_platform_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/platform/config.gni")) {
graphic_2d_platform_configs = {
import("//foundation/graphic/graphic_2d_ext/platform/config.gni")
}
}
graphic_2d_modifiers_draw_configs = {
}
if (path_exists("//foundation/graphic/graphic_2d_ext/modifiers_draw/build/modifiers_draw_config.gni")) {
graphic_2d_modifiers_draw_configs = {
import(
"//foundation/graphic/graphic_2d_ext/modifiers_draw/build/modifiers_draw_config.gni")
}
}
graphic_2d_subtree_config = {}
if (path_exists("//foundation/graphic/graphic_2d_ext/subtree/build/subtree_config.gni")) {
graphic_2d_subtree_config = {
import(
"//foundation/graphic/graphic_2d_ext/subtree/build/subtree_config/gni")
}
}
graphic_2d_hetero_hdr_configs = {}
if (exec_script(check_graphic_ext_file_script,
check_hetero_hdr_ext_file_args,
"string") == "True") {
graphic_2d_hetero_hdr_configs = {
import(
"//foundation/graphic/graphic_2d_ext/hetero_hdr/build/hetero_hdr_config.gni")
}
}
graphic_2d_mhc_configs = {}
if (path_exists("//foundation/graphic/graphic_2d_ext/mhc/build/mhc_config.gni")) {
graphic_2d_mhc_configs = {
import(
"//foundation/graphic/graphic_2d_ext/mhc/build/mhc_config.gni")
}
}
graphic_2d_car_features_configs = {}
if (path_exists("//foundation/graphic/graphic_2d_ext/car_features/build/car_features_config.gni")) {
graphic_2d_car_features_configs = {
import(
"//foundation/graphic/graphic_2d_ext/car_features/build/car_features_config.gni")
}
}
flutter_root = "//third_party/flutter"
ace_flutter_engine_root = "$flutter_root/build"
graphic_2d_root = "//foundation/graphic/graphic_2d"
graphic_2d_ext_root = "//foundation/graphic/graphic_2d_ext"
hilog_root = "//base/hiviewdfx/hilog"
window_base_path = "//foundation/window/window_manager"
safwk_base = "//foundation/systemabilitymgr/safwk"
if (graphic_2d_feature_upgrade_skia) {
if (!defined(skia_root_new)) {
skia_root_new = "//third_party/skia/m133"
}
} else {
if (!defined(skia_root_new)) {
skia_root_new = "//third_party/skia"
}
}
graphic_surface_root = "//foundation/graphic/graphic_surface"
fuzz_test_output_path = "graphic_2d/graphic_2d"
video_processing_engine_root = "//foundation/multimedia/video_processing_engine"
arkui_root = "//foundation/arkui"
ace_root = "//foundation/arkui/ace_engine"
bundlefwk_path = "//foundation/bundlemanager/bundle_framework"
bundlefwk_inner_api_path = "${bundlefwk_path}/interfaces/inner_api"
mindspore_root = "//third_party/mindspore"
rosen_root = "//foundation/graphic/graphic_2d/rosen"
multimedia_root = "//foundation/multimedia"
platform_root = "$rosen_root/modules/platform"
drivers_display_interface = "//drivers/peripheral/display/interfaces"
accessibility_enable = false
if (defined(global_parts_info) &&
defined(global_parts_info.barrierfree_accessibility)) {
accessibility_enable = true
accessibility_defines = [ "ACCESSIBILITY_ENABLE" ]
}
if (defined(global_parts_info) &&
!defined(global_parts_info.multimedia_player_framework)) {
player_framework_enable = false
}
if (defined(global_parts_info) &&
defined(global_parts_info.multimedia_video_processing_engine) &&
defined(global_parts_info.multimedia_video_processing_engine_ext)) {
use_video_processing_engine = true
}
if (defined(global_parts_info) &&
!defined(global_parts_info.hdf_drivers_interface_display)) {
graphic_2d_feature_drivers_interface_display_enable = false
}
use_memmgr_plugin = false
if (defined(global_parts_info.resourceschedule_memmgr_override)) {
use_memmgr_plugin = true
}
use_memmgr = false
if (defined(global_parts_info.resourceschedule_memmgr)) {
use_memmgr = true
}
_ace_adapter_dir = rebase_path("$ace_root/adapter", root_build_dir)
_graphic_2d_adapter_dir =
rebase_path("$graphic_2d_root/adapter", root_build_dir)
if (!ohos_indep_compiler_enable) {
if (defined(is_arkui_x) && is_arkui_x) {
# In case of arkui-x compilation, copy android and ios adapters from ace_engine
exec_script("$graphic_2d_root/utils/build/copy_arkui_adapters.py",
[
_ace_adapter_dir,
_graphic_2d_adapter_dir,
])
}
adapters = exec_script("$ace_root/build/search.py",
[ _graphic_2d_adapter_dir ],
"list lines")
} else {
adapters = ["preview", "ohos"]
}
if (defined(use_clang_coverage) && use_clang_coverage) {
graphic_2d_feature_rs_enable_profiler = false
}
if (defined(input_ext_feature_magiccursor) && input_ext_feature_magiccursor) {
gpu_defines += [ "OHOS_BUILD_ENABLE_MAGICCURSOR" ]
}
if (defined(graphic_2d_feature_enable_prefetch)) {
gpu_defines += [ "RS_ENABLE_PREFETCH" ]
}
if (defined(global_parts_info) &&
!defined(global_parts_info.security_access_token)) {
graphic_2d_support_access_token = false
}
if (defined(graphic_2d_feature_enable_primitive) && graphic_2d_feature_enable_primitive) {
graphic_2d_enable_primitive_profiler = false
gpu_defines += [
"USE_PRIMITIVE",
]
if (graphic_2d_enable_primitive_profiler) {
gpu_defines += [
"PRIMITIVE_PROFILER",
]
}
}