18bf80f4bSopenharmony_ci# Copyright (c) 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("//build/ohos/ace/ace.gni")
168bf80f4bSopenharmony_ciimport("//foundation/graphic/graphic_3d/lume/lume_config.gni")
178bf80f4bSopenharmony_ci
188bf80f4bSopenharmony_ciconfig("lume3d_config") {
198bf80f4bSopenharmony_ci  visibility = [ ":*" ]
208bf80f4bSopenharmony_ci
218bf80f4bSopenharmony_ci  include_dirs = [
228bf80f4bSopenharmony_ci    "${LUME_BASE_PATH}/api",
238bf80f4bSopenharmony_ci    "${LUME_CORE_PATH}/api",
248bf80f4bSopenharmony_ci    "${LUME_RENDER_PATH}/api",
258bf80f4bSopenharmony_ci    "${LUME_CORE3D_PATH}/api",
268bf80f4bSopenharmony_ci  ]
278bf80f4bSopenharmony_ci
288bf80f4bSopenharmony_ci  if (current_os == "ohos") {
298bf80f4bSopenharmony_ci    include_dirs += [ "${LUME_CORE_PATH}/api/platform/ohos" ]
308bf80f4bSopenharmony_ci  }
318bf80f4bSopenharmony_ci
328bf80f4bSopenharmony_ci  configs = []
338bf80f4bSopenharmony_ci
348bf80f4bSopenharmony_ci  cflags = [
358bf80f4bSopenharmony_ci    "-Wall",
368bf80f4bSopenharmony_ci    "-fexceptions",
378bf80f4bSopenharmony_ci    "-Wno-sign-compare",
388bf80f4bSopenharmony_ci    "-Wno-unused-variable",
398bf80f4bSopenharmony_ci    "-Wno-unused-private-field",
408bf80f4bSopenharmony_ci    "-Wno-implicit-fallthrough",
418bf80f4bSopenharmony_ci    "-Wno-reorder",
428bf80f4bSopenharmony_ci    "-Wno-unused-function",
438bf80f4bSopenharmony_ci    "-Wno-tautological-unsigned-zero-compare",
448bf80f4bSopenharmony_ci    "-Wno-ignored-qualifiers",
458bf80f4bSopenharmony_ci    "-Wno-unused-lambda-capture",
468bf80f4bSopenharmony_ci    "-Wno-unused-but-set-variable",
478bf80f4bSopenharmony_ci
488bf80f4bSopenharmony_ci    "-DCORE_PUBLIC=__attribute__((visibility(\"default\")))",
498bf80f4bSopenharmony_ci    "-DCORE_BUILD_2D = 0",
508bf80f4bSopenharmony_ci    "-DCORE_BUILD_VULKAN=0",
518bf80f4bSopenharmony_ci    "-DCORE_BUILD_GL=0",
528bf80f4bSopenharmony_ci    "-DCORE_BUILD_GLES=1",
538bf80f4bSopenharmony_ci    "-DCORE_DEV_ENABLED=0",
548bf80f4bSopenharmony_ci    "-DCORE_TESTS_ENABLED=0",
558bf80f4bSopenharmony_ci    "-DCORE_GL_DEBUG=0",
568bf80f4bSopenharmony_ci    "-DCORE_VALIDATION_ENABLED = 0",
578bf80f4bSopenharmony_ci    "-DCORE_VULKAN_VALIDATION_ENABLED = 0",
588bf80f4bSopenharmony_ci    "-DCORE_EMBEDDED_ASSETS_ENABLED = 2",
598bf80f4bSopenharmony_ci    "-DCORE_ENABLE_GPU_QUERIES=0",
608bf80f4bSopenharmony_ci    "-DCORE_DEBUG_GPU_RESOURCE_IDS = 0",
618bf80f4bSopenharmony_ci    "-DCORE_DEBUG_COMMAND_MARKERS_ENABLED = 0",
628bf80f4bSopenharmony_ci    "-DCORE_DEBUG_MARKERS_ENABLED = 0",
638bf80f4bSopenharmony_ci    "-DRENDER_HAS_GL_BACKEND=0",
648bf80f4bSopenharmony_ci    "-DRENDER_HAS_GLES_BACKEND = 1",
658bf80f4bSopenharmony_ci    "-DRENDER_HAS_VULKAN_BACKEND = 1",
668bf80f4bSopenharmony_ci    "-DVK_USE_PLATFORM_ANDROID_KHR = 1",
678bf80f4bSopenharmony_ci    "-DCORE_LOG_NO_DEBUG=0",
688bf80f4bSopenharmony_ci    "-DCORE_LOG_TO_DEBUG_OUTPUT=1",
698bf80f4bSopenharmony_ci    "-DCORE_LOG_TO_CONSOLE",
708bf80f4bSopenharmony_ci    "-DCORE_LOG_DISABLED=0",
718bf80f4bSopenharmony_ci    "-DCORE_DYNAMIC=1",
728bf80f4bSopenharmony_ci  ]
738bf80f4bSopenharmony_ci}
748bf80f4bSopenharmony_ci
758bf80f4bSopenharmony_ciconfig("scene_adapter_config") {
768bf80f4bSopenharmony_ci  defines = []
778bf80f4bSopenharmony_ci
788bf80f4bSopenharmony_ci  include_dirs = [ "include" ]
798bf80f4bSopenharmony_ci  if (KIT_3D_ENABLE) {
808bf80f4bSopenharmony_ci    defines = [ "KIT_3D_ENABLE=$KIT_3D_ENABLE" ]
818bf80f4bSopenharmony_ci  }
828bf80f4bSopenharmony_ci}
838bf80f4bSopenharmony_ci
848bf80f4bSopenharmony_cigroup("sceneAdapterInterface") {
858bf80f4bSopenharmony_ci  public_configs = [ ":scene_adapter_config" ]
868bf80f4bSopenharmony_ci}
878bf80f4bSopenharmony_ci
888bf80f4bSopenharmony_ciohos_source_set("scene_adapter_source") {
898bf80f4bSopenharmony_ci  sources = [
908bf80f4bSopenharmony_ci    "src/scene_adapter.cpp",
918bf80f4bSopenharmony_ci    "src/scene_bridge.cpp",
928bf80f4bSopenharmony_ci  ]
938bf80f4bSopenharmony_ci
948bf80f4bSopenharmony_ci  include_dirs = [
958bf80f4bSopenharmony_ci    "include",
968bf80f4bSopenharmony_ci    "../3d_widget_adapter/core/include",
978bf80f4bSopenharmony_ci    "../lume/metaobject/include",
988bf80f4bSopenharmony_ci    "../lume/scenewidgetplugin/plugin/include",
998bf80f4bSopenharmony_ci  ]
1008bf80f4bSopenharmony_ci
1018bf80f4bSopenharmony_ci  defines = [
1028bf80f4bSopenharmony_ci    "CORE_HAS_GLES_BACKEND=1",
1038bf80f4bSopenharmony_ci    "CORE_HAS_VULKAN_BACKEND=1",
1048bf80f4bSopenharmony_ci  ]
1058bf80f4bSopenharmony_ci
1068bf80f4bSopenharmony_ci  configs = [
1078bf80f4bSopenharmony_ci    ":lume3d_config",
1088bf80f4bSopenharmony_ci    "../3d_widget_adapter:widget_adapter_config",
1098bf80f4bSopenharmony_ci  ]
1108bf80f4bSopenharmony_ci  external_deps = [
1118bf80f4bSopenharmony_ci    "ability_runtime:ability_manager",
1128bf80f4bSopenharmony_ci    "ability_runtime:app_context",
1138bf80f4bSopenharmony_ci    "ability_runtime:data_ability_helper",
1148bf80f4bSopenharmony_ci    "ability_runtime:napi_base_context",
1158bf80f4bSopenharmony_ci    "ability_runtime:napi_common",
1168bf80f4bSopenharmony_ci    "bundle_framework:appexecfwk_base",
1178bf80f4bSopenharmony_ci    "bundle_framework:appexecfwk_core",
1188bf80f4bSopenharmony_ci    "c_utils:utils",
1198bf80f4bSopenharmony_ci    "graphic_2d:librender_service_client",
1208bf80f4bSopenharmony_ci    "hilog:libhilog",
1218bf80f4bSopenharmony_ci    "hitrace:hitrace_meter",
1228bf80f4bSopenharmony_ci    "init:libbegetutil",
1238bf80f4bSopenharmony_ci    "napi:ace_napi",
1248bf80f4bSopenharmony_ci  ]
1258bf80f4bSopenharmony_ci
1268bf80f4bSopenharmony_ci  defines += [ "LIB_ENGINE_CORE=${LIB_ENGINE_CORE}.z" ]
1278bf80f4bSopenharmony_ci
1288bf80f4bSopenharmony_ci  if (target_cpu == "arm") {
1298bf80f4bSopenharmony_ci    defines += [
1308bf80f4bSopenharmony_ci      "PLATFORM_CORE_ROOT_PATH=/system/lib/",
1318bf80f4bSopenharmony_ci      "PLATFORM_APP_ROOT_PATH=/system/lib/",
1328bf80f4bSopenharmony_ci      "PLATFORM_APP_PLUGIN_PATH=/system/lib/",
1338bf80f4bSopenharmony_ci    ]
1348bf80f4bSopenharmony_ci  }
1358bf80f4bSopenharmony_ci
1368bf80f4bSopenharmony_ci  if (target_cpu == "arm64") {
1378bf80f4bSopenharmony_ci    defines += [
1388bf80f4bSopenharmony_ci      "PLATFORM_CORE_ROOT_PATH=/system/lib64/",
1398bf80f4bSopenharmony_ci      "PLATFORM_APP_ROOT_PATH=/system/lib64/",
1408bf80f4bSopenharmony_ci      "PLATFORM_APP_PLUGIN_PATH=/system/lib64/",
1418bf80f4bSopenharmony_ci    ]
1428bf80f4bSopenharmony_ci  }
1438bf80f4bSopenharmony_ci
1448bf80f4bSopenharmony_ci  deps = [ "../kits/js:napiInterface" ]
1458bf80f4bSopenharmony_ci
1468bf80f4bSopenharmony_ci  part_name = "graphic_3d"
1478bf80f4bSopenharmony_ci  subsystem_name = "graphic"
1488bf80f4bSopenharmony_ci}
1498bf80f4bSopenharmony_ci
1508bf80f4bSopenharmony_ciohos_static_library("scene_adapter_static") {
1518bf80f4bSopenharmony_ci  deps = [ ":scene_adapter_source" ]
1528bf80f4bSopenharmony_ci  public_configs = [
1538bf80f4bSopenharmony_ci    ":scene_adapter_config",
1548bf80f4bSopenharmony_ci    ":lume3d_config",
1558bf80f4bSopenharmony_ci  ]
1568bf80f4bSopenharmony_ci
1578bf80f4bSopenharmony_ci  part_name = "graphic_3d"
1588bf80f4bSopenharmony_ci  subsystem_name = "graphic"
1598bf80f4bSopenharmony_ci}
160