1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "tools/gn/group_target_generator.h" 6 7 #include "tools/gn/variables.h" 8 9 GroupTargetGenerator::GroupTargetGenerator( 10 Target* target, 11 Scope* scope, 12 const FunctionCallNode* function_call, 13 Err* err) 14 : TargetGenerator(target, scope, function_call, err) { 15 } 16 17 GroupTargetGenerator::~GroupTargetGenerator() { 18 } 19 20 void GroupTargetGenerator::DoRun() { 21 target_->set_output_type(Target::GROUP); 22 // Groups only have the default types filled in by the target generator 23 // base class. 24 25 // Before there was a deps/public_deps split, a group acted like all deps 26 // are public. During a transition period, if public_deps is not defined, 27 // treat all deps as public. This should be removed and existing groups 28 // updated to use "public_deps" when needed. 29 if (scope_->GetValue(variables::kDeps, false) && 30 !scope_->GetValue(variables::kPublicDeps, false)) { 31 std::swap(target_->private_deps(), target_->public_deps()); 32 } 33 } 34