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_cideclare_args() {
158bf80f4bSopenharmony_ci  #BUILDTYPE="Release"
168bf80f4bSopenharmony_ci  #BUILDTYPE="MinSizeRel"
178bf80f4bSopenharmony_ci  #BUILDTYPE="RelWithDebInfo"
188bf80f4bSopenharmony_ci  BUILDTYPE = "Release"
198bf80f4bSopenharmony_ci
208bf80f4bSopenharmony_ci  LUME_PATH = "foundation/graphic/graphic_3d/lume/"
218bf80f4bSopenharmony_ci
228bf80f4bSopenharmony_ci  BASE_DIR_NAME = "LumeBase"
238bf80f4bSopenharmony_ci  CORE_DIR_NAME = "LumeEngine"
248bf80f4bSopenharmony_ci  RENDER_DIR_NAME = "LumeRender"
258bf80f4bSopenharmony_ci  CORE3D_DIR_NAME = "Lume_3D"
268bf80f4bSopenharmony_ci  BINARY_DIR_NAME = "LumeBinaryCompile"
278bf80f4bSopenharmony_ci
288bf80f4bSopenharmony_ci  LUME_OHOS_BUILD = true
298bf80f4bSopenharmony_ci  CORE_DEV_ENABLED = 1
308bf80f4bSopenharmony_ci
318bf80f4bSopenharmony_ci  LIB_ENGINE_CORE = "libAGPDLL"
328bf80f4bSopenharmony_ci  LIB_RENDER = "libPluginAGPRender"
338bf80f4bSopenharmony_ci  LIB_CORE3D = "libPluginAGP3D"
348bf80f4bSopenharmony_ci  LIB_VULKAN_3D = "//third_party/vulkan-loader:vulkan_loader"
358bf80f4bSopenharmony_ci  METAOBJECT_DIR_NAME = "metaobject"
368bf80f4bSopenharmony_ci  SCENEWIDGETPLUGIN_DIR_NAME = "scenewidgetplugin"
378bf80f4bSopenharmony_ci  ECS_HELPER = "ecshelper"
388bf80f4bSopenharmony_ci}
398bf80f4bSopenharmony_ci
408bf80f4bSopenharmony_cideclare_args() {
418bf80f4bSopenharmony_ci  LUME_ROOT = "//${LUME_PATH}"
428bf80f4bSopenharmony_ci}
438bf80f4bSopenharmony_ci
448bf80f4bSopenharmony_cideclare_args() {
458bf80f4bSopenharmony_ci  LUME_BASE_PATH = "${LUME_ROOT}/${BASE_DIR_NAME}/"
468bf80f4bSopenharmony_ci  LUME_CORE_PATH = "${LUME_ROOT}/${CORE_DIR_NAME}/"
478bf80f4bSopenharmony_ci  LUME_RENDER_PATH = "${LUME_ROOT}/${RENDER_DIR_NAME}/"
488bf80f4bSopenharmony_ci  LUME_CORE3D_PATH = "${LUME_ROOT}/${CORE3D_DIR_NAME}/"
498bf80f4bSopenharmony_ci  LUME_BINARY_PATH = "${LUME_ROOT}/${BINARY_DIR_NAME}/"
508bf80f4bSopenharmony_ci  LUME_ECS_HELPER_PATH = "${LUME_ROOT}/${CORE_DIR_NAME}/${ECS_HELPER}/"
518bf80f4bSopenharmony_ci  LUME_METAOBJECT_PATH = "${LUME_ROOT}/${METAOBJECT_DIR_NAME}"
528bf80f4bSopenharmony_ci  LUME_SCP_PATH = "${LUME_ROOT}/${SCENEWIDGETPLUGIN_DIR_NAME}"
538bf80f4bSopenharmony_ci
548bf80f4bSopenharmony_ci  LUME_CORE_DLL_PATH = "${LUME_ROOT}/${CORE_DIR_NAME}/DLL/"
558bf80f4bSopenharmony_ci  LUME_CORE3D_DLL_PATH = "${LUME_ROOT}/${CORE3D_DIR_NAME}/DLL/"
568bf80f4bSopenharmony_ci}
578bf80f4bSopenharmony_ci
588bf80f4bSopenharmony_cideclare_args() {
598bf80f4bSopenharmony_ci  CORE_STATIC_PLUGIN_HEADER =
608bf80f4bSopenharmony_ci      "\"${LUME_PATH}/${CORE_DIR_NAME}/src/static_plugin_decl.h\""
618bf80f4bSopenharmony_ci}
628bf80f4bSopenharmony_ci
638bf80f4bSopenharmony_cideclare_args() {
648bf80f4bSopenharmony_ci  USE_LIB_PNG_JPEG = true
658bf80f4bSopenharmony_ci  USE_STB_IMAGE = false
668bf80f4bSopenharmony_ci  STB_IMAGE_PATH = "//foundation/graphic/graphic_3d/lume/TMP_STB/"
678bf80f4bSopenharmony_ci}
688bf80f4bSopenharmony_ci
698bf80f4bSopenharmony_cideclare_args() {
708bf80f4bSopenharmony_ci  KIT_3D_ENABLE = true
718bf80f4bSopenharmony_ci}
728bf80f4bSopenharmony_ci
738bf80f4bSopenharmony_citemplate("lume_rofs") {
748bf80f4bSopenharmony_ci  name = target_name
758bf80f4bSopenharmony_ci  action(name) {
768bf80f4bSopenharmony_ci    outputs = [ invoker.outputs ]
778bf80f4bSopenharmony_ci    script = invoker.script
788bf80f4bSopenharmony_ci    cpu_type = ""
798bf80f4bSopenharmony_ci    output_obj = ""
808bf80f4bSopenharmony_ci    if (target_cpu == "arm") {
818bf80f4bSopenharmony_ci      cpu_type = "armeabi-v7a"
828bf80f4bSopenharmony_ci      output_obj = "${invoker.base_name}_32.o"
838bf80f4bSopenharmony_ci    }
848bf80f4bSopenharmony_ci
858bf80f4bSopenharmony_ci    if (target_cpu == "arm64") {
868bf80f4bSopenharmony_ci      cpu_type = "arm64-v8a"
878bf80f4bSopenharmony_ci      output_obj = "${invoker.base_name}_64.o"
888bf80f4bSopenharmony_ci    }
898bf80f4bSopenharmony_ci
908bf80f4bSopenharmony_ci    args = [
918bf80f4bSopenharmony_ci      rebase_path(invoker.tool_path, root_build_dir),
928bf80f4bSopenharmony_ci      "-${cpu_type}",
938bf80f4bSopenharmony_ci      rebase_path(invoker.copy_path, root_build_dir),
948bf80f4bSopenharmony_ci      invoker.root,
958bf80f4bSopenharmony_ci      invoker.bin_name,
968bf80f4bSopenharmony_ci      invoker.size_name,
978bf80f4bSopenharmony_ci      invoker.base_name,
988bf80f4bSopenharmony_ci      rebase_path(invoker.copy_path, root_build_dir),
998bf80f4bSopenharmony_ci      output_obj,
1008bf80f4bSopenharmony_ci      invoker.file_extension,
1018bf80f4bSopenharmony_ci    ]
1028bf80f4bSopenharmony_ci
1038bf80f4bSopenharmony_ci    deps = []
1048bf80f4bSopenharmony_ci    if (defined(invoker.compileShader_deps)) {
1058bf80f4bSopenharmony_ci      deps += invoker.compileShader_deps
1068bf80f4bSopenharmony_ci    }
1078bf80f4bSopenharmony_ci  }
1088bf80f4bSopenharmony_ci}
1098bf80f4bSopenharmony_ci
1108bf80f4bSopenharmony_citemplate("lume_binary_complile") {
1118bf80f4bSopenharmony_ci  name = target_name
1128bf80f4bSopenharmony_ci  action(name) {
1138bf80f4bSopenharmony_ci    outputs = invoker.outputs
1148bf80f4bSopenharmony_ci    script = invoker.script
1158bf80f4bSopenharmony_ci    args = [ rebase_path(invoker.dest_gen_path, root_build_dir) ]
1168bf80f4bSopenharmony_ci  }
1178bf80f4bSopenharmony_ci}
1188bf80f4bSopenharmony_ci
1198bf80f4bSopenharmony_citemplate("lume_compile_shader") {
1208bf80f4bSopenharmony_ci  name = target_name
1218bf80f4bSopenharmony_ci  action(name) {
1228bf80f4bSopenharmony_ci    script = invoker.script
1238bf80f4bSopenharmony_ci    outputs = invoker.outputs
1248bf80f4bSopenharmony_ci    args = [
1258bf80f4bSopenharmony_ci      rebase_path(invoker.dest_gen_path, root_build_dir),
1268bf80f4bSopenharmony_ci      invoker.asset_path,
1278bf80f4bSopenharmony_ci      rebase_path(invoker.tool_path, root_build_dir),
1288bf80f4bSopenharmony_ci      rebase_path(invoker.shader_path, root_build_dir),
1298bf80f4bSopenharmony_ci      invoker.include_path,
1308bf80f4bSopenharmony_ci    ]
1318bf80f4bSopenharmony_ci
1328bf80f4bSopenharmony_ci    if (defined(invoker.render_include_path)) {
1338bf80f4bSopenharmony_ci      args += [ invoker.render_include_path ]
1348bf80f4bSopenharmony_ci    }
1358bf80f4bSopenharmony_ci    deps = []
1368bf80f4bSopenharmony_ci    if (defined(invoker.compileShader_deps)) {
1378bf80f4bSopenharmony_ci      deps += invoker.compileShader_deps
1388bf80f4bSopenharmony_ci    }
1398bf80f4bSopenharmony_ci  }
1408bf80f4bSopenharmony_ci}
141