Index: tools/gn/function_set_defaults.cc |
diff --git a/tools/gn/function_set_defaults.cc b/tools/gn/function_set_defaults.cc |
index 4efb92964d341f4ca854395b00bead63990dcfc2..7f26b4455c9f4a8dde2b9f349bd0de7566631dfc 100644 |
--- a/tools/gn/function_set_defaults.cc |
+++ b/tools/gn/function_set_defaults.cc |
@@ -27,9 +27,14 @@ const char kSetDefaults_Help[] = |
"\n" |
" set_defaults can be used for built-in target types (\"executable\",\n" |
" \"shared_library\", etc.) and custom ones defined via the \"template\"\n" |
- " command.\n" |
+ " command. It can be called more than once and the most recent call in\n" |
+ " any scope will apply, but there is no way to refer to the previous\n" |
+ " defaults and modify them (each call to set_defaults must supply a\n" |
+ " complete list of all defaults it wants). If you want to share\n" |
+ " defaults, store them in a separate variable.\n" |
+ "\n" |
+ "Example\n" |
"\n" |
- "Example:\n" |
" set_defaults(\"static_library\") {\n" |
" configs = [ \"//tools/mything:settings\" ]\n" |
" }\n" |
@@ -49,27 +54,6 @@ Value RunSetDefaults(Scope* scope, |
return Value(); |
const std::string& target_type(args[0].string_value()); |
- // Ensure there aren't defaults already set. |
- // |
- // It might be nice to allow multiple calls set mutate the defaults. The |
- // main case for this is where some local portions of the code want |
- // additional defaults they specify in an imported file. |
- // |
- // Currently, we don't allow imports to clobber anything, so this wouldn't |
- // work. Additionally, allowing this would be undesirable since we don't |
- // want multiple imports to each try to set defaults, since it might look |
- // like the defaults are modified by each one in sequence, while in fact |
- // imports would always clobber previous values and it would be confusing. |
- // |
- // If we wanted this, the solution would be to allow imports to overwrite |
- // target defaults set up by the default build config only. That way there |
- // are no ordering issues, but this would be more work. |
- if (scope->GetTargetDefaults(target_type)) { |
- *err = Err(function->function(), |
- "This target type defaults were already set."); |
- return Value(); |
- } |
- |
if (!block) { |
FillNeedsBlockError(function, err); |
return Value(); |