blob: 90a26e41439cf240fd126fe4dfb0e8cbd7fe79ec [file] [log] [blame]
# Copyright 2020 The Pigweed 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
#
# https://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.
# gn-format disable
import("//build_overrides/pigweed.gni")
import("$dir_pigweed/legacy_target.gni")
# Specifies the tools used by ARM GCC toolchains.
arm_gcc_toolchain_tools = {
_tool_name_root = "arm-none-eabi-"
ar = _tool_name_root + "ar"
cc = _tool_name_root + "gcc"
cxx = _tool_name_root + "g++"
link_whole_archive = true
}
# Common configs shared by all ARM GCC toolchains.
_arm_gcc = [ "$dir_pw_toolchain/arm_gcc:disable_psabi_warning" ]
# Configs specific to different architectures.
_cortex_m3 = [
"$dir_pw_toolchain/arm_gcc:cortex_common",
"$dir_pw_toolchain/arm_gcc:cortex_m3",
"$dir_pw_toolchain/arm_gcc:cortex_software_fpu",
]
_cortex_m4 = [
"$dir_pw_toolchain/arm_gcc:cortex_common",
"$dir_pw_toolchain/arm_gcc:cortex_m4",
"$dir_pw_toolchain/arm_gcc:cortex_software_fpu",
]
_cortex_m4f = [
"$dir_pw_toolchain/arm_gcc:cortex_common",
"$dir_pw_toolchain/arm_gcc:cortex_m4",
"$dir_pw_toolchain/arm_gcc:cortex_hardware_fpu",
]
# Describes ARM GCC toolchains for specific targets.
arm_gcc_toolchains = [
{
name = "arm_gcc_cortex_m3_og"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m3 + [ "$dir_pw_build:optimize_debugging" ]
}
},
{
name = "arm_gcc_cortex_m3_o1"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs = _arm_gcc + _cortex_m3 + [ "$dir_pw_build:optimize" ]
}
},
{
name = "arm_gcc_cortex_m3_o2"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m3 + [ "$dir_pw_build:optimize_speed" ]
}
},
{
name = "arm_gcc_cortex_m3_os"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m3 + [ "$dir_pw_build:optimize_size" ]
}
},
{
name = "arm_gcc_cortex_m4_og"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m4 + [ "$dir_pw_build:optimize_debugging" ]
}
},
{
name = "arm_gcc_cortex_m4_o1"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs = _arm_gcc + _cortex_m4 + [ "$dir_pw_build:optimize" ]
}
},
{
name = "arm_gcc_cortex_m4_o2"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m4 + [ "$dir_pw_build:optimize_speed" ]
}
},
{
name = "arm_gcc_cortex_m4_os"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m4 + [ "$dir_pw_build:optimize_size" ]
}
},
{
name = "arm_gcc_cortex_m4f_og"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m4f + [ "$dir_pw_build:optimize_debugging" ]
}
},
{
name = "arm_gcc_cortex_m4f_o1"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs = _arm_gcc + _cortex_m4f + [ "$dir_pw_build:optimize" ]
}
},
{
name = "arm_gcc_cortex_m4f_o2"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m4f + [ "$dir_pw_build:optimize_speed" ]
}
},
{
name = "arm_gcc_cortex_m4f_os"
forward_variables_from(arm_gcc_toolchain_tools, "*")
defaults = {
default_configs =
_arm_gcc + _cortex_m4f + [ "$dir_pw_build:optimize_size" ]
}
},
]