blob: 3ccd4878c05f390ab99c76d3877ea859f5a173f4 [file] [log] [blame]
# Copyright (c) 2020 Project CHIP Authors
#
# 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_overrides/freertos.gni")
import("//build_overrides/qpg_sdk.gni")
import("${freertos_root}/freertos.gni")
import("${qpg_sdk_build_root}/qpg_sdk.gni")
declare_args() {
# Build target to use for QPG SDK. Use this to set global SDK defines.
qpg_sdk_target = ""
}
assert(qpg_sdk_target != "", "qpg_sdk_target must be specified")
group("qpg_sdk") {
public_deps = [
":freertos",
qpg_sdk_target,
]
public_configs = [ ":qpg_include_paths_config" ]
}
config("qpg_include_paths_config") {
include_dirs = [
"${qpg_sdk_root}/Components/Qorvo/BaseUtils/gpNvm/inc",
"${qpg_sdk_root}/Components/Qorvo/HAL_PLATFORM/inc",
"${qpg_sdk_root}/Components/Qorvo/OS/gpLog/inc",
"${qpg_sdk_root}/Components/Qorvo/OS/gpReset/inc",
"${qpg_sdk_root}/Components/Qorvo/OS/gpSched/inc",
"${qpg_sdk_root}/Components/Qorvo/OS/gpAssert/inc",
"${qpg_sdk_root}/Components/Qorvo/HAL_PLATFORM/inc/compiler/ARMGCCEMB",
"${qpg_sdk_root}/Components/Qorvo/Matter/qvCHIP/inc",
]
}
config("qpg_freertos_config") {
include_dirs = [
"${qpg_sdk_root}/Applications/Matter/shared/config/inc",
"${qpg_sdk_root}/Components/ThirdParty/Lwip",
"${freertos_root}/repo/portable/GCC/ARM_CM3",
]
}
freertos_target("freertos") {
sources = [
"${freertos_root}/repo/portable/GCC/ARM_CM3/port.c",
# "${freertos_root}/repo/portable/MemMang/heap_3.c",
]
public_configs = [ ":qpg_freertos_config" ]
}
template("qpg_make_build") {
forward_variables_from(invoker,
[
"make_sources",
"make_args",
"make_output",
])
action(target_name) {
script = "make.py"
sources = make_sources
outputs = make_output
args = [
"-s",
#use PATH variable lookup for compiler
"TOOLCHAIN=",
]
args += make_args
}
}
qpg_make_build("qpg_mbedtls_alt") {
make_sources = [ "${qpg_sdk_root}/Components/ThirdParty/Silex" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/mbedtls_alt_${qpg_target_ic}/libmbedtls_alt_${qpg_target_ic}.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/mbedtls_alt/Makefile.mbedtls_alt_${qpg_target_ic}",
"MBEDTLS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/mbedtls/repo",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/mbedtls_alt_${qpg_target_ic}",
]
}
static_library("qpg_mbedtls_alt_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_mbedtls_alt" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/mbedtls_alt_${qpg_target_ic}/libmbedtls_alt_${qpg_target_ic}.a" ]
}
qpg_make_build("qpg_stack") {
make_sources = [ "${qpg_sdk_root}/Components/Qorvo" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/QorvoStack/libQorvoStack_${qpg_target_ic}.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/QorvoStack/Makefile.QorvoStack_${qpg_target_ic}",
"FREERTOS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/freertos/repo",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/QorvoStack",
]
}
static_library("qpg_stack_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_stack" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/QorvoStack/libQorvoStack_${qpg_target_ic}.a" ]
}
qpg_make_build("qpg_glue") {
make_sources = [ "${qpg_sdk_root}/Components/Qorvo/Matter" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/MatterQorvoGlue/libMatterQorvoGlue_${qpg_target_ic}_libbuild.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) + "/Libraries/Qorvo/MatterQorvoGlue/Makefile.MatterQorvoGlue_${qpg_target_ic}_libbuild",
"FREERTOS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/freertos/repo",
"MBEDTLS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/mbedtls/repo",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/MatterQorvoGlue",
]
}
static_library("qpg_glue_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_glue" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/MatterQorvoGlue/libMatterQorvoGlue_${qpg_target_ic}_libbuild.a" ]
}
# openthread toevoegen
# bootloader build
#
qpg_make_build("qpg_bootloader") {
make_sources = [ "${qpg_sdk_root}/Libraries/Qorvo/Bootloader" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/Bootloader_${qpg_target_ic}_compr_secure/libBootloader_${qpg_target_ic}_compr_secure.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) + "/Libraries/Qorvo/Bootloader/Makefile.Bootloader_${qpg_target_ic}_compr_secure",
"FREERTOS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/freertos/repo",
"MBEDTLS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/mbedtls/repo",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/Bootloader_${qpg_target_ic}_compr_secure",
"UMB_WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/UMB_QPG6105DK_B01_nrt_flash_compr_secure",
]
}
config("qpg_retain_bootloader") {
ldflags = [
"-Wl,-u_binary_bl_userlicense_bin_start",
"-Wl,-u_binary_bootloader_bin_start",
]
}
static_library("qpg_bootloader_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_bootloader" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/Bootloader_${qpg_target_ic}_compr_secure/libBootloader_${qpg_target_ic}_compr_secure.a" ]
public_configs = [ ":qpg_retain_bootloader" ]
}
qpg_make_build("qpg_openthread_glue") {
make_sources = [ "${qpg_sdk_root}/Components/Qorvo/Matter" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/OpenThreadQorvoGlue_qpg6105_ftd/libOpenThreadQorvoGlue_${qpg_target_ic}_ftd.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) + "/Libraries/Qorvo/OpenThreadQorvoGlue/Makefile.OpenThreadQorvoGlue_${qpg_target_ic}_ftd",
"FREERTOS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/freertos/repo",
"MBEDTLS_REPO_DIR=" + rebase_path(chip_root, root_build_dir) +
"/third_party/mbedtls/repo",
"OPENTHREAD_REPO_DIR =" + rebase_path(chip_root, root_build_dir) +
"/third_party/openthread/repo",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/OpenThreadQorvoGlue_${qpg_target_ic}_ftd",
]
}
static_library("qpg_openthread_glue_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_openthread_glue" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/OpenThreadQorvoGlue_qpg6105_ftd/libOpenThreadQorvoGlue_${qpg_target_ic}_ftd.a" ]
}