pw_build: Fix target set_defaults() compatibility
A project may set default configs on targets such as source_set,
executable. This currently causes an error due to assigning a nonempty
list. Fix it by adding pigweed configs instead of assigning.
Change-Id: I06f7175c976c976f9505b6523141b2f280f50ff6
diff --git a/pw_build/target_types.gni b/pw_build/target_types.gni
index 8a934e6..51c094a 100644
--- a/pw_build/target_types.gni
+++ b/pw_build/target_types.gni
@@ -48,11 +48,12 @@
source_set(target_name) {
forward_variables_from(invoker, "*", _supported_toolchain_defaults)
- if (defined(pw_build_defaults.configs)) {
- configs = pw_build_defaults.configs
- } else {
+ if (!defined(configs)) {
configs = []
}
+ if (defined(pw_build_defaults.configs)) {
+ configs += pw_build_defaults.configs
+ }
if (defined(remove_configs)) {
if (remove_configs[0] == "*") {
configs = []
@@ -88,11 +89,12 @@
static_library(target_name) {
forward_variables_from(invoker, "*", _supported_toolchain_defaults)
- if (defined(pw_build_defaults.configs)) {
- configs = pw_build_defaults.configs
- } else {
+ if (!defined(configs)) {
configs = []
}
+ if (defined(pw_build_defaults.configs)) {
+ configs += pw_build_defaults.configs
+ }
if (defined(remove_configs)) {
if (remove_configs[0] == "*") {
configs = []
@@ -128,11 +130,12 @@
shared_library(target_name) {
forward_variables_from(invoker, "*", _supported_toolchain_defaults)
- if (defined(pw_build_defaults.configs)) {
- configs = pw_build_defaults.configs
- } else {
+ if (!defined(configs)) {
configs = []
}
+ if (defined(pw_build_defaults.configs)) {
+ configs += pw_build_defaults.configs
+ }
if (defined(remove_configs)) {
if (remove_configs[0] == "*") {
configs = []
@@ -170,11 +173,12 @@
target(pw_build_EXECUTABLE_TARGET_TYPE, target_name) {
forward_variables_from(invoker, "*", _supported_toolchain_defaults)
- if (defined(pw_build_defaults.configs)) {
- configs = pw_build_defaults.configs
- } else {
+ if (!defined(configs)) {
configs = []
}
+ if (defined(pw_build_defaults.configs)) {
+ configs += pw_build_defaults.configs
+ }
if (defined(remove_configs)) {
if (remove_configs[0] == "*") {
configs = []