Index: tools/gn/group_target_generator.cc |
diff --git a/tools/gn/group_target_generator.cc b/tools/gn/group_target_generator.cc |
index b2a73d6684e769a086aaee908c6095b7890660c8..64fa92096f67cfb22eb111639b7067151795a0b1 100644 |
--- a/tools/gn/group_target_generator.cc |
+++ b/tools/gn/group_target_generator.cc |
@@ -4,6 +4,8 @@ |
#include "tools/gn/group_target_generator.h" |
+#include "tools/gn/variables.h" |
+ |
GroupTargetGenerator::GroupTargetGenerator( |
Target* target, |
Scope* scope, |
@@ -19,4 +21,13 @@ void GroupTargetGenerator::DoRun() { |
target_->set_output_type(Target::GROUP); |
// Groups only have the default types filled in by the target generator |
// base class. |
+ |
+ // Before there was a deps/public_deps split, a group acted like all deps |
+ // are public. During a transition period, if public_deps is not defined, |
+ // treat all deps as public. This should be removed and existing groups |
+ // updated to use "public_deps" when needed. |
+ if (scope_->GetValue(variables::kDeps, false) && |
+ !scope_->GetValue(variables::kPublicDeps, false)) { |
+ std::swap(target_->private_deps(), target_->public_deps()); |
+ } |
} |