#
# Copyright (c) 2020 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.
#
# Defines a subsystem
#
# The lite_subsystem template defines all the modules contained in a subsystem
#
# Parameters
#
# subsystem_components (required)
# [list of scopes] Defines all modules in the subsystem.
#
template("lite_subsystem") {
assert(defined(invoker.subsystem_components),
"subsystem_components in required.")
lite_subsystem_components = invoker.subsystem_components
group(target_name) {
deps = []
if (defined(invoker.deps)) {
deps += invoker.deps
}
# add subsystem packages
foreach(pkg_label, lite_subsystem_components) {
deps += [ pkg_label ]
}
}
}
template("lite_subsystem_test") {
assert(defined(invoker.subsystem_components),
"subsystem_components in required.")
lite_subsystem_components = invoker.subsystem_components
group(target_name) {
deps = []
if (defined(invoker.deps)) {
deps += invoker.deps
}
# add subsystem packages
foreach(pkg_label, lite_subsystem_components) {
deps += [ pkg_label ]
}
}
}
template("lite_subsystem_sdk") {
assert(defined(invoker.interface_header), "interface_header in required.")
assert(defined(invoker.sdk_libs_path), "sdk_libs_path in required.")
assert(defined(invoker.subsystem_name), "subsystem_name in required.")
interface_header = invoker.interface_header
sdk_libs_path = invoker.sdk_libs_path
subsystem_name = invoker.subsystem_name
deps = [ ":${subsystem_name}" ]
outdir = rebase_path("$root_out_dir/${subsystem_name}")
prebuilts = "mkdir -p $outdir/interface $outdir/sdk_libs"
command = "cp -r $interface_header $outdir/interface && cp -r $sdk_libs_path $outdir/sdk_libs"
exec_path = rebase_path(".", root_build_dir)
action(target_name) {
args = [
"--path=$exec_path",
"--prebuilts=$prebuilts",
"--command=$command",
"--enable=$LOSCFG_SDK_BUILD",
]
script = "//build/lite/build_ext_components.py"
outputs = [ "$target_out_dir/sdk_build_file_log.txt" ]
}
}
template("lite_vendor_sdk") {
prebuilts = invoker.prebuilts
command = invoker.command
exec_path = rebase_path(".", root_build_dir)
action(target_name) {
args = [
"--path=$exec_path",
"--prebuilts=$prebuilts",
"--command=$command",
"--enable=$LOSCFG_SDK_BUILD",
]
script = "//build/lite/build_ext_components.py"
outputs = [ "$target_out_dir/sdk_build_file_log.txt" ]
}
}