| Index: tools/gn/item_tree.h
|
| diff --git a/tools/gn/item_tree.h b/tools/gn/item_tree.h
|
| deleted file mode 100644
|
| index 59de49f3a08e8c8884cc74cf145ceb7f3bfbdbec..0000000000000000000000000000000000000000
|
| --- a/tools/gn/item_tree.h
|
| +++ /dev/null
|
| @@ -1,93 +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.
|
| -
|
| -#ifndef TOOLS_GN_ITEM_TREE_H_
|
| -#define TOOLS_GN_ITEM_TREE_H_
|
| -
|
| -#include "base/containers/hash_tables.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "tools/gn/label.h"
|
| -
|
| -class BuildSettings;
|
| -class Err;
|
| -class Item;
|
| -class ItemNode;
|
| -
|
| -// Represents the full dependency tree if labeled items in the system.
|
| -// Generally you will interact with this through the target manager, etc.
|
| -//
|
| -// There are two modes for filling out the dependency tree:
|
| -//
|
| -// - In greedy mode, every target we encounter will be generated. This means
|
| -// that we'll recursively load all of its subdependencies. So if you have
|
| -// a build file that's loaded for any reason, all targets in that build file
|
| -// will be generated.
|
| -//
|
| -// - In non-greedy mode, we'll only generate and load dependncies for targets
|
| -// that have the should_generate bit set. This allows us to load the minimal
|
| -// set of buildfiles required for one or more targets.
|
| -//
|
| -// The main build is generally run in greedy mode, since people expect to be
|
| -// be able to write random tests and have them show up in the output. We'll
|
| -// switch into non-greed mode when doing diagnostics (like displaying the
|
| -// dependency tree on the command line) and for dependencies on targets in
|
| -// other toolchains. The toolchain behavior is important, if target A depends
|
| -// on B with an alternate toolchain, it doesn't mean we should recursively
|
| -// generate all targets in the buildfile just to get B: we should generate the
|
| -// and load the minimum number of files in order to resolve B.
|
| -class ItemTree {
|
| - public:
|
| - ItemTree();
|
| - ~ItemTree();
|
| -
|
| - // This lock must be held when calling the "Locked" functions below.
|
| - base::Lock& lock() const { return lock_; }
|
| -
|
| - // Returns NULL if the item is not found.
|
| - //
|
| - // The lock must be held.
|
| - ItemNode* GetExistingNodeLocked(const Label& label);
|
| -
|
| - // There must not be an item with this label in the tree already. Takes
|
| - // ownership of the pointer.
|
| - //
|
| - // The lock must be held.
|
| - void AddNodeLocked(ItemNode* node);
|
| -
|
| - // Mark the given item as being defined. If it has no unresolved
|
| - // dependencies, it will be marked resolved, and the resolved state will be
|
| - // recursively pushed into the dependency tree. Returns an error if there was
|
| - // an error.
|
| - bool MarkItemDefinedLocked(const BuildSettings* build_settings,
|
| - const Label& label,
|
| - Err* err);
|
| -
|
| - // Fills the given vector with all known items.
|
| - void GetAllItemNodesLocked(std::vector<const ItemNode*>* dest) const;
|
| - void GetAllItemsLocked(std::vector<const Item*>* dest) const;
|
| -
|
| - // Returns an error if there are unresolved dependencies, or no error if
|
| - // there aren't.
|
| - //
|
| - // The lock should not be held.
|
| - Err CheckForBadItems() const;
|
| -
|
| - private:
|
| - void MarkItemResolvedLocked(ItemNode* node);
|
| -
|
| - // Given a set of unresolved nodes, looks for cycles and returns the error
|
| - // message describing any cycles it found.
|
| - std::string CheckForCircularDependenciesLocked(
|
| - const std::vector<const ItemNode*>& bad_nodes) const;
|
| -
|
| - mutable base::Lock lock_;
|
| -
|
| - typedef base::hash_map<Label, ItemNode*> StringToNodeHash;
|
| - StringToNodeHash items_; // Owning pointer.
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ItemTree);
|
| -};
|
| -
|
| -#endif // TOOLS_GN_ITEM_TREE_H_
|
|
|