| Index: trunk/src/tools/gn/target.cc
|
| ===================================================================
|
| --- trunk/src/tools/gn/target.cc (revision 214322)
|
| +++ trunk/src/tools/gn/target.cc (working copy)
|
| @@ -1,94 +0,0 @@
|
| -// 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/target.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "tools/gn/scheduler.h"
|
| -
|
| -namespace {
|
| -
|
| -void TargetResolvedThunk(const base::Callback<void(const Target*)>& cb,
|
| - const Target* t) {
|
| - cb.Run(t);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -Target::Target(const Settings* settings, const Label& label)
|
| - : Item(label),
|
| - settings_(settings),
|
| - output_type_(NONE),
|
| - generated_(false),
|
| - generator_function_(NULL) {
|
| -}
|
| -
|
| -Target::~Target() {
|
| -}
|
| -
|
| -Target* Target::AsTarget() {
|
| - return this;
|
| -}
|
| -
|
| -const Target* Target::AsTarget() const {
|
| - return this;
|
| -}
|
| -
|
| -void Target::OnResolved() {
|
| - // Gather info from our dependents we need.
|
| - for (size_t dep = 0; dep < deps_.size(); dep++) {
|
| - // All dependent configs get pulled to us, and to our dependents.
|
| - const std::vector<const Config*>& all =
|
| - deps_[dep]->all_dependent_configs();
|
| - for (size_t i = 0; i < all.size(); i++) {
|
| - configs_.push_back(all[i]);
|
| - all_dependent_configs_.push_back(all[i]);
|
| - }
|
| -
|
| - // Direct dependent configs get pulled only to us.
|
| - const std::vector<const Config*>& direct =
|
| - deps_[dep]->direct_dependent_configs();
|
| - for (size_t i = 0; i < direct.size(); i++)
|
| - configs_.push_back(direct[i]);
|
| -
|
| - // Direct dependent libraries.
|
| - if (deps_[dep]->output_type() == STATIC_LIBRARY ||
|
| - deps_[dep]->output_type() == SHARED_LIBRARY ||
|
| - deps_[dep]->output_type() == LOADABLE_MODULE)
|
| - inherited_libraries_.insert(deps_[dep]);
|
| -
|
| - // Inherited libraries. DOn't pull transitive libraries from shared
|
| - // libraries, since obviously those shouldn't be linked directly into
|
| - // later deps unless explicitly specified.
|
| - if (deps_[dep]->output_type() != SHARED_LIBRARY &&
|
| - deps_[dep]->output_type() != LOADABLE_MODULE &&
|
| - deps_[dep]->output_type() != EXECUTABLE) {
|
| - const std::set<const Target*> inherited =
|
| - deps_[dep]->inherited_libraries();
|
| - for (std::set<const Target*>::const_iterator i = inherited.begin();
|
| - i != inherited.end(); ++i)
|
| - inherited_libraries_.insert(*i);
|
| - }
|
| - }
|
| -
|
| - if (!settings_->build_settings()->target_resolved_callback().is_null()) {
|
| - g_scheduler->ScheduleWork(base::Bind(&TargetResolvedThunk,
|
| - settings_->build_settings()->target_resolved_callback(),
|
| - this));
|
| - }
|
| -}
|
| -
|
| -bool Target::HasBeenGenerated() const {
|
| - return generated_;
|
| -}
|
| -
|
| -void Target::SetGenerated(const Token* token) {
|
| - DCHECK(!generated_);
|
| - generated_ = true;
|
| - generator_function_ = token;
|
| -}
|
| -
|
| -bool Target::IsLinkable() const {
|
| - return output_type_ == STATIC_LIBRARY || output_type_ == SHARED_LIBRARY;
|
| -}
|
|
|