18bf80f4bSopenharmony_ci# Copyright (C) 2023-2024 Huawei Device Co., Ltd. 28bf80f4bSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 38bf80f4bSopenharmony_ci# you may not use this file except in compliance with the License. 48bf80f4bSopenharmony_ci# You may obtain a copy of the License at 58bf80f4bSopenharmony_ci# 68bf80f4bSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 78bf80f4bSopenharmony_ci# 88bf80f4bSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 98bf80f4bSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 108bf80f4bSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 118bf80f4bSopenharmony_ci# See the License for the specific language governing permissions and 128bf80f4bSopenharmony_ci# limitations under the License. 138bf80f4bSopenharmony_ci 148bf80f4bSopenharmony_ciimport("//build/ohos.gni") 158bf80f4bSopenharmony_ciimport("//foundation/graphic/graphic_3d/lume/lume_config.gni") 168bf80f4bSopenharmony_ci 178bf80f4bSopenharmony_cideclare_args() { 188bf80f4bSopenharmony_ci MULTI_ECS_UPDATE_AT_ONCE = "0" 198bf80f4bSopenharmony_ci UNIFY_RENDER = "1" 208bf80f4bSopenharmony_ci DBG_DRAW_PIXEL = "0" 218bf80f4bSopenharmony_ci WIDGET_TRACE_ENABLE = "1" 228bf80f4bSopenharmony_ci} 238bf80f4bSopenharmony_ci 248bf80f4bSopenharmony_ciconfig("lume3d_config") { 258bf80f4bSopenharmony_ci visibility = [ ":*" ] 268bf80f4bSopenharmony_ci 278bf80f4bSopenharmony_ci include_dirs = [ 288bf80f4bSopenharmony_ci "${LUME_BASE_PATH}/api", 298bf80f4bSopenharmony_ci "${LUME_CORE_PATH}/api", 308bf80f4bSopenharmony_ci "${LUME_RENDER_PATH}/api", 318bf80f4bSopenharmony_ci "${LUME_CORE3D_PATH}/api", 328bf80f4bSopenharmony_ci ] 338bf80f4bSopenharmony_ci 348bf80f4bSopenharmony_ci if (current_os == "ohos") { 358bf80f4bSopenharmony_ci include_dirs += [ "${LUME_CORE_PATH}/api/platform/ohos" ] 368bf80f4bSopenharmony_ci } 378bf80f4bSopenharmony_ci 388bf80f4bSopenharmony_ci configs = [] 398bf80f4bSopenharmony_ci 408bf80f4bSopenharmony_ci cflags = [ 418bf80f4bSopenharmony_ci "-Wall", 428bf80f4bSopenharmony_ci "-fexceptions", 438bf80f4bSopenharmony_ci "-Wno-sign-compare", 448bf80f4bSopenharmony_ci "-Wno-unused-variable", 458bf80f4bSopenharmony_ci "-Wno-unused-private-field", 468bf80f4bSopenharmony_ci "-Wno-implicit-fallthrough", 478bf80f4bSopenharmony_ci "-Wno-reorder", 488bf80f4bSopenharmony_ci "-Wno-unused-function", 498bf80f4bSopenharmony_ci "-Wno-tautological-unsigned-zero-compare", 508bf80f4bSopenharmony_ci 518bf80f4bSopenharmony_ci "-Wno-nullability-completeness", 528bf80f4bSopenharmony_ci "-Wno-ignored-qualifiers", 538bf80f4bSopenharmony_ci "-Wno-switch", 548bf80f4bSopenharmony_ci 558bf80f4bSopenharmony_ci "-DCORE_PUBLIC=__attribute__((visibility(\"default\")))", 568bf80f4bSopenharmony_ci "-DCORE_BUILD_2D = 0", 578bf80f4bSopenharmony_ci "-DCORE_BUILD_VULKAN=0", 588bf80f4bSopenharmony_ci "-DCORE_BUILD_GL=0", 598bf80f4bSopenharmony_ci "-DCORE_BUILD_GLES=1", 608bf80f4bSopenharmony_ci "-DCORE_DEV_ENABLED=0", 618bf80f4bSopenharmony_ci "-DCORE_TESTS_ENABLED=0", 628bf80f4bSopenharmony_ci "-DCORE_GL_DEBUG=0", 638bf80f4bSopenharmony_ci "-DCORE_VALIDATION_ENABLED = 0", 648bf80f4bSopenharmony_ci "-DCORE_VULKAN_VALIDATION_ENABLED = 0", 658bf80f4bSopenharmony_ci "-DCORE_EMBEDDED_ASSETS_ENABLED = 2", 668bf80f4bSopenharmony_ci "-DCORE_ENABLE_GPU_QUERIES=0", 678bf80f4bSopenharmony_ci "-DCORE_DEBUG_GPU_RESOURCE_IDS = 0", 688bf80f4bSopenharmony_ci "-DCORE_DEBUG_COMMAND_MARKERS_ENABLED = 0", 698bf80f4bSopenharmony_ci "-DCORE_DEBUG_MARKERS_ENABLED = 0", 708bf80f4bSopenharmony_ci "-DRENDER_HAS_GL_BACKEND=0", 718bf80f4bSopenharmony_ci "-DRENDER_HAS_GLES_BACKEND = 1", 728bf80f4bSopenharmony_ci "-DRENDER_HAS_VULKAN_BACKEND = 1", 738bf80f4bSopenharmony_ci "-DVK_USE_PLATFORM_ANDROID_KHR = 1", 748bf80f4bSopenharmony_ci "-DCORE_LOG_NO_DEBUG=0", 758bf80f4bSopenharmony_ci "-DCORE_LOG_TO_DEBUG_OUTPUT=1", 768bf80f4bSopenharmony_ci "-DCORE_LOG_TO_CONSOLE", 778bf80f4bSopenharmony_ci "-DCORE_LOG_DISABLED=0", 788bf80f4bSopenharmony_ci "-DCORE_DYNAMIC=1", 798bf80f4bSopenharmony_ci ] 808bf80f4bSopenharmony_ci} 818bf80f4bSopenharmony_ci 828bf80f4bSopenharmony_ciconfig("widget_adapter_config") { 838bf80f4bSopenharmony_ci defines = [ 848bf80f4bSopenharmony_ci "MULTI_ECS_UPDATE_AT_ONCE=${MULTI_ECS_UPDATE_AT_ONCE}", 858bf80f4bSopenharmony_ci "EGL_EGLEXT_PROTOTYPES", 868bf80f4bSopenharmony_ci "GL_GLEXT_PROTOTYPES", 878bf80f4bSopenharmony_ci "UNIFY_RENDER=${UNIFY_RENDER}", 888bf80f4bSopenharmony_ci "WIDGET_TRACE_ENABLE=${WIDGET_TRACE_ENABLE}", 898bf80f4bSopenharmony_ci "DBG_DRAW_PIXEL=${DBG_DRAW_PIXEL}", 908bf80f4bSopenharmony_ci ] 918bf80f4bSopenharmony_ci 928bf80f4bSopenharmony_ci if (current_os == "ohos") { 938bf80f4bSopenharmony_ci defines += [ "__OHOS_PLATFORM__" ] 948bf80f4bSopenharmony_ci } 958bf80f4bSopenharmony_ci 968bf80f4bSopenharmony_ci include_dirs = [ "include" ] 978bf80f4bSopenharmony_ci 988bf80f4bSopenharmony_ci if (current_os == "ohos") { 998bf80f4bSopenharmony_ci include_dirs += [ "include/ohos" ] 1008bf80f4bSopenharmony_ci } 1018bf80f4bSopenharmony_ci 1028bf80f4bSopenharmony_ci if (MULTI_ECS_UPDATE_AT_ONCE == "1") { 1038bf80f4bSopenharmony_ci cflags_cc += [ "-Wno-user-defined-warnings" ] 1048bf80f4bSopenharmony_ci } 1058bf80f4bSopenharmony_ci} 1068bf80f4bSopenharmony_ci 1078bf80f4bSopenharmony_ciohos_source_set("widget_adapter_source") { 1088bf80f4bSopenharmony_ci sources = [ 1098bf80f4bSopenharmony_ci "core/src/engine_factory.cpp", 1108bf80f4bSopenharmony_ci "core/src/lume/custom/lume_custom_render.cpp", 1118bf80f4bSopenharmony_ci "core/src/lume/custom/shader_input_buffer.cpp", 1128bf80f4bSopenharmony_ci "core/src/lume/lume_common.cpp", 1138bf80f4bSopenharmony_ci "src/graphics_manager_common.cpp", 1148bf80f4bSopenharmony_ci "src/graphics_task.cpp", 1158bf80f4bSopenharmony_ci "src/offscreen_context_helper.cpp", 1168bf80f4bSopenharmony_ci "src/widget_adapter.cpp", 1178bf80f4bSopenharmony_ci ] 1188bf80f4bSopenharmony_ci 1198bf80f4bSopenharmony_ci include_dirs = [ 1208bf80f4bSopenharmony_ci "core/include", 1218bf80f4bSopenharmony_ci "core/include/lume", 1228bf80f4bSopenharmony_ci "//foundation/graphic/graphic_2d/rosen/modules/", 1238bf80f4bSopenharmony_ci ] 1248bf80f4bSopenharmony_ci 1258bf80f4bSopenharmony_ci defines = [ 1268bf80f4bSopenharmony_ci "CORE_HAS_GLES_BACKEND=1", 1278bf80f4bSopenharmony_ci "CORE_HAS_VULKAN_BACKEND=1", 1288bf80f4bSopenharmony_ci ] 1298bf80f4bSopenharmony_ci 1308bf80f4bSopenharmony_ci configs = [ 1318bf80f4bSopenharmony_ci ":widget_adapter_config", 1328bf80f4bSopenharmony_ci ":lume3d_config", 1338bf80f4bSopenharmony_ci ] 1348bf80f4bSopenharmony_ci 1358bf80f4bSopenharmony_ci public_configs = [ ":widget_adapter_config" ] 1368bf80f4bSopenharmony_ci 1378bf80f4bSopenharmony_ci if (defined(use_new_skia) && use_new_skia) { 1388bf80f4bSopenharmony_ci external_deps = [ "skia:skia_canvaskit" ] 1398bf80f4bSopenharmony_ci } else { 1408bf80f4bSopenharmony_ci #external_deps = [ "flutter:ace_skia_ohos" ] 1418bf80f4bSopenharmony_ci deps = [ "$ace_flutter_engine_root/skia:ace_skia_ohos" ] 1428bf80f4bSopenharmony_ci } 1438bf80f4bSopenharmony_ci if (defined(use_rosen_drawing) && use_rosen_drawing) { 1448bf80f4bSopenharmony_ci defines += [ "USE_ROSEN_DRAWING" ] 1458bf80f4bSopenharmony_ci } 1468bf80f4bSopenharmony_ci 1478bf80f4bSopenharmony_ci if (current_os == "ohos") { 1488bf80f4bSopenharmony_ci sources += [ 1498bf80f4bSopenharmony_ci "core/src/lume/ohos/lume.cpp", 1508bf80f4bSopenharmony_ci "src/ohos/graphics_manager.cpp", 1518bf80f4bSopenharmony_ci "src/ohos/texture_layer.cpp", 1528bf80f4bSopenharmony_ci ] 1538bf80f4bSopenharmony_ci 1548bf80f4bSopenharmony_ci include_dirs += [ 1558bf80f4bSopenharmony_ci "core/include/ohos", 1568bf80f4bSopenharmony_ci "core/include/lume/ohos", 1578bf80f4bSopenharmony_ci ] 1588bf80f4bSopenharmony_ci 1598bf80f4bSopenharmony_ci external_deps += [ "vulkan-headers:vulkan_headers" ] 1608bf80f4bSopenharmony_ci external_deps += [ 1618bf80f4bSopenharmony_ci "c_utils:utils", 1628bf80f4bSopenharmony_ci "graphic_2d:EGL", 1638bf80f4bSopenharmony_ci "graphic_2d:GLESv3", 1648bf80f4bSopenharmony_ci "graphic_2d:librender_service_client", 1658bf80f4bSopenharmony_ci "graphic_surface:surface", 1668bf80f4bSopenharmony_ci "hilog:libhilog", 1678bf80f4bSopenharmony_ci "hitrace:hitrace_meter", 1688bf80f4bSopenharmony_ci "init:libbegetutil", 1698bf80f4bSopenharmony_ci ] 1708bf80f4bSopenharmony_ci 1718bf80f4bSopenharmony_ci defines += [ "LIB_ENGINE_CORE=${LIB_ENGINE_CORE}.z" ] 1728bf80f4bSopenharmony_ci 1738bf80f4bSopenharmony_ci if (target_cpu == "arm") { 1748bf80f4bSopenharmony_ci defines += [ 1758bf80f4bSopenharmony_ci "PLATFORM_CORE_ROOT_PATH=/system/lib/", 1768bf80f4bSopenharmony_ci "PLATFORM_APP_ROOT_PATH=/system/lib/", 1778bf80f4bSopenharmony_ci "PLATFORM_APP_PLUGIN_PATH=/system/lib/", 1788bf80f4bSopenharmony_ci ] 1798bf80f4bSopenharmony_ci } 1808bf80f4bSopenharmony_ci 1818bf80f4bSopenharmony_ci if (target_cpu == "arm64") { 1828bf80f4bSopenharmony_ci defines += [ 1838bf80f4bSopenharmony_ci "PLATFORM_CORE_ROOT_PATH=/system/lib64/", 1848bf80f4bSopenharmony_ci "PLATFORM_APP_ROOT_PATH=/system/lib64/", 1858bf80f4bSopenharmony_ci "PLATFORM_APP_PLUGIN_PATH=/system/lib64/", 1868bf80f4bSopenharmony_ci ] 1878bf80f4bSopenharmony_ci } 1888bf80f4bSopenharmony_ci } 1898bf80f4bSopenharmony_ci 1908bf80f4bSopenharmony_ci part_name = "graphic_3d" 1918bf80f4bSopenharmony_ci subsystem_name = "graphic" 1928bf80f4bSopenharmony_ci} 1938bf80f4bSopenharmony_ci 1948bf80f4bSopenharmony_cigroup("3dWidgetAdapterInterface") { 1958bf80f4bSopenharmony_ci public_configs = [ 1968bf80f4bSopenharmony_ci ":widget_adapter_config", 1978bf80f4bSopenharmony_ci "../3d_scene_adapter:scene_adapter_config", 1988bf80f4bSopenharmony_ci "../kits/js:napi_config", 1998bf80f4bSopenharmony_ci ] 2008bf80f4bSopenharmony_ci} 2018bf80f4bSopenharmony_ci 2028bf80f4bSopenharmony_ciohos_shared_library("lib3dWidgetAdapter") { 2038bf80f4bSopenharmony_ci deps = [ 2048bf80f4bSopenharmony_ci ":widget_adapter_source", 2058bf80f4bSopenharmony_ci "../3d_scene_adapter:scene_adapter_static", 2068bf80f4bSopenharmony_ci ] 2078bf80f4bSopenharmony_ci 2088bf80f4bSopenharmony_ci public_deps = [] 2098bf80f4bSopenharmony_ci 2108bf80f4bSopenharmony_ci public_configs = [ 2118bf80f4bSopenharmony_ci ":widget_adapter_config", 2128bf80f4bSopenharmony_ci "../3d_scene_adapter:scene_adapter_config", 2138bf80f4bSopenharmony_ci "../kits/js:napi_config", 2148bf80f4bSopenharmony_ci ] 2158bf80f4bSopenharmony_ci part_name = "graphic_3d" 2168bf80f4bSopenharmony_ci subsystem_name = "graphic" 2178bf80f4bSopenharmony_ci} 218