# Copyright (c) 2023 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//build/ohos.gni") idl_root = "//foundation/ability/idl_tool" idl_build_deps = "" idl_out_root = "" build_root = "//build" toolchain_linux = "$build_root/toolchain/linux:clang_x64" if (host_cpu == "arm64") { toolchain_mac = "$build_root/toolchain/mac:clang_arm64" } else { toolchain_mac = "$build_root/toolchain/mac:clang_x64" } toolchain_win = "$build_root/toolchain/mingw:mingw_x86_64" if (host_toolchain == toolchain_mac) { idl_out_root = get_label_info("$idl_root:idl($toolchain_mac)", "root_out_dir") idl_build_deps = [ "$idl_root:idl($toolchain_mac)" ] } else if (host_toolchain == toolchain_win) { idl_out_root = get_label_info("$idl_root:idl($toolchain_win)", "root_out_dir") idl_build_deps = [ "$idl_root:idl($toolchain_win)" ] } else { idl_out_root = get_label_info("$idl_root:idl($toolchain_linux)", "root_out_dir") idl_build_deps = [ "$idl_root:idl($toolchain_linux)" ] } idl_build_path = idl_out_root + "/ability/idl_tool" template("idl_gen_interface") { assert(defined(invoker.src_idl), "src-idl is required!") assert(defined(invoker.dst_file), "dst-file is required!") action("$target_name") { deps = idl_build_deps script = "${idl_root}/scripts/idl.py" args = [ "--src-idl", invoker.src_idl, "--dst-path", rebase_path("${target_gen_dir}"), "--idl-tool-path", rebase_path("${idl_build_path}"), ] if (defined(invoker.log_domainid)) { args += [ "--log-domainid", invoker.log_domainid, ] } if (defined(invoker.log_tag)) { args += [ "--log-tag", invoker.log_tag, ] } if (defined(invoker.hitrace)) { args += [ "--hitrace", invoker.hitrace, ] } outputs = string_split(invoker.dst_file, ",") } }