| // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "tools/gn/group_target_generator.h" |
| |
| #include "tools/gn/target.h" |
| #include "tools/gn/variables.h" |
| |
| GroupTargetGenerator::GroupTargetGenerator( |
| Target* target, |
| Scope* scope, |
| const FunctionCallNode* function_call, |
| Err* err) |
| : TargetGenerator(target, scope, function_call, err) { |
| } |
| |
| GroupTargetGenerator::~GroupTargetGenerator() { |
| } |
| |
| 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()); |
| } |
| } |