blob: e20c43ddb672a4c7522b92de41891de0e5d25ad0 [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}",
"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",
"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",
"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_${qpg_target_board}_nrt_flash_compr_secure",
]
}
config("qpg_retain_bootloader") {
ldflags = [
"-Wl,-u_binary_bl_userlicense_bin_start",
"-Wl,-u_binary_bootloader_bin_start",
"-Wl,--no-warn-rwx-segment",
]
}
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_${qpg_target_ic}_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",
"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_${qpg_target_ic}_ftd/libOpenThreadQorvoGlue_${qpg_target_ic}_ftd.a" ]
}
qpg_make_build("qpg_light_factorydata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_light_static_pake/libFactoryData_light_static_pake.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/FactoryData/Makefile.FactoryData_light_static_pake",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FactoryData_light_static_pake",
]
}
static_library("qpg_light_factorydata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_light_factorydata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_light_static_pake/libFactoryData_light_static_pake.a" ]
public_configs = [ ":qpg_retain_factorydata" ]
}
qpg_make_build("qpg_lock_factorydata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_lock_static_pake/libFactoryData_lock_static_pake.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/FactoryData/Makefile.FactoryData_lock_static_pake",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FactoryData_lock_static_pake",
]
}
static_library("qpg_lock_factorydata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_lock_factorydata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_lock_static_pake/libFactoryData_lock_static_pake.a" ]
public_configs = [ ":qpg_retain_factorydata" ]
}
qpg_make_build("qpg_switch_factorydata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_switch_static_pake/libFactoryData_switch_static_pake.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/FactoryData/Makefile.FactoryData_switch_static_pake",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FactoryData_switch_static_pake",
]
}
static_library("qpg_switch_factorydata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_switch_factorydata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_switch_static_pake/libFactoryData_switch_static_pake.a" ]
public_configs = [ ":qpg_retain_factorydata" ]
}
qpg_make_build("qpg_thermostat_factorydata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_thermostaticRadiatorValve_static_pake/libFactoryData_thermostaticRadiatorValve_static_pake.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) + "/Libraries/Qorvo/FactoryData/Makefile.FactoryData_thermostaticRadiatorValve_static_pake",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FactoryData_thermostaticRadiatorValve_static_pake",
]
}
static_library("qpg_thermostat_factorydata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_thermostat_factorydata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FactoryData_thermostaticRadiatorValve_static_pake/libFactoryData_thermostaticRadiatorValve_static_pake.a" ]
public_configs = [ ":qpg_retain_factorydata" ]
}
config("qpg_retain_factorydata") {
ldflags = [
"-Wl,-u_binary_factory_data_bin_start",
"-Wl,-u_binary_factory_data_start",
]
}
qpg_make_build("qpg_light_firmwaredata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_light/libFirmwareData_light.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/FactoryData/Makefile.FirmwareData_light",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FirmwareData_light",
]
}
static_library("qpg_light_firmwaredata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_light_firmwaredata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_light/libFirmwareData_light.a" ]
}
qpg_make_build("qpg_lock_firmwaredata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_lock/libFirmwareData_lock.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/FactoryData/Makefile.FirmwareData_lock",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FirmwareData_lock",
]
}
static_library("qpg_lock_firmwaredata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_lock_firmwaredata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_lock/libFirmwareData_lock.a" ]
}
qpg_make_build("qpg_switch_firmwaredata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_switch/libFirmwareData_switch.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) +
"/Libraries/Qorvo/FactoryData/Makefile.FirmwareData_switch",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FirmwareData_switch",
]
}
static_library("qpg_switch_firmwaredata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_switch_firmwaredata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_switch/libFirmwareData_switch.a" ]
}
qpg_make_build("qpg_thermostat_firmwaredata") {
make_sources = [ "${qpg_sdk_root}/Tools/FactoryData" ]
make_output = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_thermostaticRadiatorValve/libFirmwareData_thermostaticRadiatorValve.a" ]
make_args = [
"-f",
rebase_path(qpg_sdk_root, root_build_dir) + "/Libraries/Qorvo/FactoryData/Makefile.FirmwareData_thermostaticRadiatorValve",
"WORKDIR=" + rebase_path(target_gen_dir, root_build_dir) +
"/${qpg_sdk_lib_dir}/FirmwareData_thermostaticRadiatorValve",
]
}
static_library("qpg_thermostat_firmwaredata_lib") {
deps = [ "${chip_root}/third_party/qpg_sdk:qpg_thermostat_firmwaredata" ]
libs = [ "${target_gen_dir}/${qpg_sdk_lib_dir}/FirmwareData_thermostaticRadiatorValve/libFirmwareData_thermostaticRadiatorValve.a" ]
}