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("//foundation/graphic/graphic_3d/lume/lume_config.gni")
168bf80f4bSopenharmony_ci
178bf80f4bSopenharmony_cideclare_args() {
188bf80f4bSopenharmony_ci}
198bf80f4bSopenharmony_ci
208bf80f4bSopenharmony_ciconfig("lume3d_config") {
218bf80f4bSopenharmony_ci  visibility = [ ":*" ]
228bf80f4bSopenharmony_ci
238bf80f4bSopenharmony_ci  include_dirs = [
248bf80f4bSopenharmony_ci    "${LUME_BASE_PATH}/api",
258bf80f4bSopenharmony_ci    "${LUME_CORE_PATH}/api",
268bf80f4bSopenharmony_ci    "${LUME_RENDER_PATH}/api",
278bf80f4bSopenharmony_ci    "${LUME_CORE3D_PATH}/api",
288bf80f4bSopenharmony_ci  ]
298bf80f4bSopenharmony_ci
308bf80f4bSopenharmony_ci  if (current_os == "ohos") {
318bf80f4bSopenharmony_ci    include_dirs += [ "${LUME_CORE_PATH}/api/platform/ohos" ]
328bf80f4bSopenharmony_ci  }
338bf80f4bSopenharmony_ci
348bf80f4bSopenharmony_ci  configs = []
358bf80f4bSopenharmony_ci
368bf80f4bSopenharmony_ci  cflags = [
378bf80f4bSopenharmony_ci    "-Wall",
388bf80f4bSopenharmony_ci    "-fexceptions",
398bf80f4bSopenharmony_ci    "-Wno-sign-compare",
408bf80f4bSopenharmony_ci    "-Wno-unused-variable",
418bf80f4bSopenharmony_ci    "-Wno-unused-private-field",
428bf80f4bSopenharmony_ci    "-Wno-implicit-fallthrough",
438bf80f4bSopenharmony_ci    "-Wno-reorder",
448bf80f4bSopenharmony_ci    "-Wno-unused-function",
458bf80f4bSopenharmony_ci    "-Wno-tautological-unsigned-zero-compare",
468bf80f4bSopenharmony_ci
478bf80f4bSopenharmony_ci    "-Wno-nullability-completeness",
488bf80f4bSopenharmony_ci    "-Wno-ignored-qualifiers",
498bf80f4bSopenharmony_ci    "-Wno-switch",
508bf80f4bSopenharmony_ci
518bf80f4bSopenharmony_ci    "-DCORE_PUBLIC=__attribute__((visibility(\"default\")))",
528bf80f4bSopenharmony_ci    "-DCORE_BUILD_2D = 0",
538bf80f4bSopenharmony_ci    "-DCORE_BUILD_VULKAN=0",
548bf80f4bSopenharmony_ci    "-DCORE_BUILD_GL=0",
558bf80f4bSopenharmony_ci    "-DCORE_BUILD_GLES=1",
568bf80f4bSopenharmony_ci    "-DCORE_DEV_ENABLED=0",
578bf80f4bSopenharmony_ci    "-DCORE_TESTS_ENABLED=0",
588bf80f4bSopenharmony_ci    "-DCORE_GL_DEBUG=0",
598bf80f4bSopenharmony_ci    "-DCORE_VALIDATION_ENABLED = 0",
608bf80f4bSopenharmony_ci    "-DCORE_VULKAN_VALIDATION_ENABLED = 0",
618bf80f4bSopenharmony_ci    "-DCORE_EMBEDDED_ASSETS_ENABLED = 2",
628bf80f4bSopenharmony_ci    "-DCORE_ENABLE_GPU_QUERIES=0",
638bf80f4bSopenharmony_ci    "-DCORE_DEBUG_GPU_RESOURCE_IDS = 0",
648bf80f4bSopenharmony_ci    "-DCORE_DEBUG_COMMAND_MARKERS_ENABLED = 0",
658bf80f4bSopenharmony_ci    "-DCORE_DEBUG_MARKERS_ENABLED = 0",
668bf80f4bSopenharmony_ci    "-DRENDER_HAS_GL_BACKEND=0",
678bf80f4bSopenharmony_ci    "-DRENDER_HAS_GLES_BACKEND = 1",
688bf80f4bSopenharmony_ci    "-DRENDER_HAS_VULKAN_BACKEND = 1",
698bf80f4bSopenharmony_ci    "-DVK_USE_PLATFORM_ANDROID_KHR = 1",
708bf80f4bSopenharmony_ci    "-DCORE_LOG_NO_DEBUG=0",
718bf80f4bSopenharmony_ci    "-DCORE_LOG_TO_DEBUG_OUTPUT=1",
728bf80f4bSopenharmony_ci    "-DCORE_LOG_TO_CONSOLE",
738bf80f4bSopenharmony_ci    "-DCORE_LOG_DISABLED=0",
748bf80f4bSopenharmony_ci    "-DCORE_DYNAMIC=1",
758bf80f4bSopenharmony_ci  ]
768bf80f4bSopenharmony_ci}
778bf80f4bSopenharmony_ci
788bf80f4bSopenharmony_ciconfig("napi_config") {
798bf80f4bSopenharmony_ci  defines = []
808bf80f4bSopenharmony_ci
818bf80f4bSopenharmony_ci  if (current_os == "ohos") {
828bf80f4bSopenharmony_ci    defines += [
838bf80f4bSopenharmony_ci      "__OHOS_PLATFORM__",
848bf80f4bSopenharmony_ci      "__SCENE_ADAPTER__",
858bf80f4bSopenharmony_ci    ]
868bf80f4bSopenharmony_ci  }
878bf80f4bSopenharmony_ci
888bf80f4bSopenharmony_ci  include_dirs = [
898bf80f4bSopenharmony_ci    "include",
908bf80f4bSopenharmony_ci    "include/napi",
918bf80f4bSopenharmony_ci  ]
928bf80f4bSopenharmony_ci
938bf80f4bSopenharmony_ci  cflags = [
948bf80f4bSopenharmony_ci    "-Wno-unused-but-set-variable",
958bf80f4bSopenharmony_ci    "-Wno-unused-lambda-capture",
968bf80f4bSopenharmony_ci    "-Wno-unused-variable",
978bf80f4bSopenharmony_ci  ]
988bf80f4bSopenharmony_ci}
998bf80f4bSopenharmony_ci
1008bf80f4bSopenharmony_ciohos_source_set("napi_source") {
1018bf80f4bSopenharmony_ci  sources = [
1028bf80f4bSopenharmony_ci    "src/AnimationJS.cpp",
1038bf80f4bSopenharmony_ci    "src/BaseObjectJS.cpp",
1048bf80f4bSopenharmony_ci    "src/CameraJS.cpp",
1058bf80f4bSopenharmony_ci    "src/ColorProxy.cpp",
1068bf80f4bSopenharmony_ci    "src/EnvironmentJS.cpp",
1078bf80f4bSopenharmony_ci    "src/GeometryJS.cpp",
1088bf80f4bSopenharmony_ci    "src/ImageJS.cpp",
1098bf80f4bSopenharmony_ci    "src/LightJS.cpp",
1108bf80f4bSopenharmony_ci    "src/MaterialJS.cpp",
1118bf80f4bSopenharmony_ci    "src/MeshJS.cpp",
1128bf80f4bSopenharmony_ci    "src/NodeImpl.cpp",
1138bf80f4bSopenharmony_ci    "src/NodeJS.cpp",
1148bf80f4bSopenharmony_ci    "src/ObjectProxy.cpp",
1158bf80f4bSopenharmony_ci    "src/PostProcJS.cpp",
1168bf80f4bSopenharmony_ci    "src/PropertyProxy.cpp",
1178bf80f4bSopenharmony_ci    "src/QuatProxy.cpp",
1188bf80f4bSopenharmony_ci    "src/SceneJS.cpp",
1198bf80f4bSopenharmony_ci    "src/SceneResourceImpl.cpp",
1208bf80f4bSopenharmony_ci    "src/ShaderJS.cpp",
1218bf80f4bSopenharmony_ci    "src/SubMeshJS.cpp",
1228bf80f4bSopenharmony_ci    "src/ToneMapJS.cpp",
1238bf80f4bSopenharmony_ci    "src/Vec2Proxy.cpp",
1248bf80f4bSopenharmony_ci    "src/Vec3Proxy.cpp",
1258bf80f4bSopenharmony_ci    "src/Vec4Proxy.cpp",
1268bf80f4bSopenharmony_ci    "src/native_module_export.cpp",
1278bf80f4bSopenharmony_ci    "src/register_module.cpp",
1288bf80f4bSopenharmony_ci  ]
1298bf80f4bSopenharmony_ci
1308bf80f4bSopenharmony_ci  include_dirs = [ "../../3d_widget_adapter/includ/ohos" ]
1318bf80f4bSopenharmony_ci
1328bf80f4bSopenharmony_ci  defines = []
1338bf80f4bSopenharmony_ci
1348bf80f4bSopenharmony_ci  configs = [
1358bf80f4bSopenharmony_ci    ":lume3d_config",
1368bf80f4bSopenharmony_ci    "${LUME_METAOBJECT_PATH}:lume_metaobject_config",
1378bf80f4bSopenharmony_ci    "${LUME_SCP_PATH}:lume_scenewidget_config",
1388bf80f4bSopenharmony_ci    "../../3d_scene_adapter:scene_adapter_config",
1398bf80f4bSopenharmony_ci  ]
1408bf80f4bSopenharmony_ci
1418bf80f4bSopenharmony_ci  public_configs = [ ":napi_config" ]
1428bf80f4bSopenharmony_ci
1438bf80f4bSopenharmony_ci  deps = [ "../../3d_widget_adapter:lib3dWidgetAdapter" ]
1448bf80f4bSopenharmony_ci
1458bf80f4bSopenharmony_ci  external_deps = [
1468bf80f4bSopenharmony_ci    "c_utils:utils",
1478bf80f4bSopenharmony_ci    "egl:libEGL",
1488bf80f4bSopenharmony_ci    "hilog:libhilog",
1498bf80f4bSopenharmony_ci    "hitrace:hitrace_meter",
1508bf80f4bSopenharmony_ci    "init:libbegetutil",
1518bf80f4bSopenharmony_ci    "napi:ace_napi",
1528bf80f4bSopenharmony_ci  ]
1538bf80f4bSopenharmony_ci
1548bf80f4bSopenharmony_ci  part_name = "graphic_3d"
1558bf80f4bSopenharmony_ci  subsystem_name = "graphic"
1568bf80f4bSopenharmony_ci}
1578bf80f4bSopenharmony_ci
1588bf80f4bSopenharmony_cigroup("napiInterface") {
1598bf80f4bSopenharmony_ci  public_configs = [ ":napi_config" ]
1608bf80f4bSopenharmony_ci}
1618bf80f4bSopenharmony_ci
1628bf80f4bSopenharmony_ciohos_shared_library("libscene") {
1638bf80f4bSopenharmony_ci  deps = [ ":napi_source" ]
1648bf80f4bSopenharmony_ci  public_configs = [ ":napi_config" ]
1658bf80f4bSopenharmony_ci  relative_install_dir = "module/graphics"
1668bf80f4bSopenharmony_ci  part_name = "graphic_3d"
1678bf80f4bSopenharmony_ci  subsystem_name = "graphic"
1688bf80f4bSopenharmony_ci}
169