123b3eb3cSopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd.
223b3eb3cSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
323b3eb3cSopenharmony_ci# you may not use this file except in compliance with the License.
423b3eb3cSopenharmony_ci# You may obtain a copy of the License at
523b3eb3cSopenharmony_ci#
623b3eb3cSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
723b3eb3cSopenharmony_ci#
823b3eb3cSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
923b3eb3cSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1023b3eb3cSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1123b3eb3cSopenharmony_ci# See the License for the specific language governing permissions and
1223b3eb3cSopenharmony_ci# limitations under the License.
1323b3eb3cSopenharmony_ci
1423b3eb3cSopenharmony_ciimport("//build/ohos.gni")
1523b3eb3cSopenharmony_ciimport("//foundation/arkui/ace_engine/ace_config.gni")
1623b3eb3cSopenharmony_ci
1723b3eb3cSopenharmony_citemplate("gen_obj") {
1823b3eb3cSopenharmony_ci  name = target_name
1923b3eb3cSopenharmony_ci  action("gen_obj_" + name) {
2023b3eb3cSopenharmony_ci    visibility = [ ":*" ]  # Only targets in this file can depend on this.
2123b3eb3cSopenharmony_ci
2223b3eb3cSopenharmony_ci    if (use_mingw_win) {
2323b3eb3cSopenharmony_ci      objcopy_tool = objcopy_mingw
2423b3eb3cSopenharmony_ci      script = "$ace_root/build/tools/build_resource_to_bytecode.py"
2523b3eb3cSopenharmony_ci    } else if (use_mac || target_os == "ios") {
2623b3eb3cSopenharmony_ci      objcopy_tool = objcopy_clang
2723b3eb3cSopenharmony_ci      script = "$ace_root/build/tools/build_resource_to_bytecode.py"
2823b3eb3cSopenharmony_ci    } else if (use_linux) {
2923b3eb3cSopenharmony_ci      objcopy_tool = objcopy_x86_64
3023b3eb3cSopenharmony_ci      script = "$ace_root/build/tools/build_resource_to_bytecode.py"
3123b3eb3cSopenharmony_ci    } else if (target_cpu == "x86_64") {
3223b3eb3cSopenharmony_ci      objcopy_tool = objcopy_x86_64
3323b3eb3cSopenharmony_ci      script = "$ace_root/build/tools/run_objcopy.py"
3423b3eb3cSopenharmony_ci    } else {
3523b3eb3cSopenharmony_ci      objcopy_tool = objcopy_default
3623b3eb3cSopenharmony_ci      script = "$ace_root/build/tools/run_objcopy.py"
3723b3eb3cSopenharmony_ci    }
3823b3eb3cSopenharmony_ci
3923b3eb3cSopenharmony_ci    args = [
4023b3eb3cSopenharmony_ci      "--objcopy",
4123b3eb3cSopenharmony_ci      rebase_path(objcopy_tool),
4223b3eb3cSopenharmony_ci      "--input",
4323b3eb3cSopenharmony_ci      rebase_path(invoker.input),
4423b3eb3cSopenharmony_ci      "--output",
4523b3eb3cSopenharmony_ci      rebase_path(invoker.output),
4623b3eb3cSopenharmony_ci      "--arch",
4723b3eb3cSopenharmony_ci      current_cpu,
4823b3eb3cSopenharmony_ci    ]
4923b3eb3cSopenharmony_ci
5023b3eb3cSopenharmony_ci    deps = []
5123b3eb3cSopenharmony_ci    deps += invoker.snapshot_dep
5223b3eb3cSopenharmony_ci
5323b3eb3cSopenharmony_ci    inputs = [ invoker.input ]
5423b3eb3cSopenharmony_ci    outputs = [ invoker.output ]
5523b3eb3cSopenharmony_ci  }
5623b3eb3cSopenharmony_ci
5723b3eb3cSopenharmony_ci  source_set("gen_obj_src_" + name) {
5823b3eb3cSopenharmony_ci    sources = [ invoker.output ]
5923b3eb3cSopenharmony_ci    deps = [ ":gen_obj_" + name ]
6023b3eb3cSopenharmony_ci  }
6123b3eb3cSopenharmony_ci}
62