15f9996aaSopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd. 25f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 35f9996aaSopenharmony_ci# you may not use this file except in compliance with the License. 45f9996aaSopenharmony_ci# You may obtain a copy of the License at 55f9996aaSopenharmony_ci# 65f9996aaSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 75f9996aaSopenharmony_ci# 85f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 95f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 105f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 115f9996aaSopenharmony_ci# See the License for the specific language governing permissions and 125f9996aaSopenharmony_ci# limitations under the License. 135f9996aaSopenharmony_ci 145f9996aaSopenharmony_ciimport("//build/config/clang/clang.gni") 155f9996aaSopenharmony_ciimport("//build/config/python.gni") 165f9996aaSopenharmony_ciimport("//build/templates/common/copy.gni") 175f9996aaSopenharmony_ci 185f9996aaSopenharmony_citemplate("js_declaration") { 195f9996aaSopenharmony_ci group(target_name) { 205f9996aaSopenharmony_ci not_needed(invoker, "*") 215f9996aaSopenharmony_ci } 225f9996aaSopenharmony_ci} 235f9996aaSopenharmony_ci 245f9996aaSopenharmony_citemplate("gen_js_obj") { 255f9996aaSopenharmony_ci name = target_name 265f9996aaSopenharmony_ci action("gen_js_obj_" + name) { 275f9996aaSopenharmony_ci visibility = [ ":*" ] 285f9996aaSopenharmony_ci 295f9996aaSopenharmony_ci objcopy_tool = "${clang_base_path}/bin/llvm-objcopy" 305f9996aaSopenharmony_ci platform = "${current_os}_${current_cpu}" 315f9996aaSopenharmony_ci if (platform == "mingw_x86_64") { 325f9996aaSopenharmony_ci script = "//build/scripts/run_objcopy_pc_mac.py" 335f9996aaSopenharmony_ci } else if (platform == "mac_x64") { 345f9996aaSopenharmony_ci script = "//build/scripts/run_objcopy_pc_mac.py" 355f9996aaSopenharmony_ci } else if (platform == "linux_x64") { 365f9996aaSopenharmony_ci script = "//build/scripts/run_objcopy_pc_mac.py" 375f9996aaSopenharmony_ci } else if (target_cpu == "x86_64") { 385f9996aaSopenharmony_ci script = "//build/scripts/run_objcopy.py" 395f9996aaSopenharmony_ci } else if (target_cpu == "arm" || target_cpu == "arm64" || 405f9996aaSopenharmony_ci target_cpu == "riscv64" || target_cpu == "loongarch64") { 415f9996aaSopenharmony_ci script = "//build/scripts/run_objcopy.py" 425f9996aaSopenharmony_ci } 435f9996aaSopenharmony_ci 445f9996aaSopenharmony_ci args = [ 455f9996aaSopenharmony_ci "--objcopy", 465f9996aaSopenharmony_ci rebase_path(objcopy_tool), 475f9996aaSopenharmony_ci "--input", 485f9996aaSopenharmony_ci rebase_path(invoker.input), 495f9996aaSopenharmony_ci "--output", 505f9996aaSopenharmony_ci rebase_path(invoker.output), 515f9996aaSopenharmony_ci "--arch", 525f9996aaSopenharmony_ci current_cpu, 535f9996aaSopenharmony_ci ] 545f9996aaSopenharmony_ci 555f9996aaSopenharmony_ci deps = [] 565f9996aaSopenharmony_ci if (defined(invoker.dep)) { 575f9996aaSopenharmony_ci deps += [ invoker.dep ] 585f9996aaSopenharmony_ci } 595f9996aaSopenharmony_ci 605f9996aaSopenharmony_ci inputs = [ invoker.input ] 615f9996aaSopenharmony_ci outputs = [ invoker.output ] 625f9996aaSopenharmony_ci } 635f9996aaSopenharmony_ci 645f9996aaSopenharmony_ci source_set(name) { 655f9996aaSopenharmony_ci sources = [ invoker.output ] 665f9996aaSopenharmony_ci deps = [ ":gen_js_obj_" + name ] 675f9996aaSopenharmony_ci } 685f9996aaSopenharmony_ci} 69