| // Copyright (c) 2016 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_DESC_BUILDER_H_ |
| #define TOOLS_GN_DESC_BUILDER_H_ |
| |
| #include "base/values.h" |
| #include "gn/target.h" |
| |
| class ResolvedTargetData; |
| |
| class DescBuilder { |
| public: |
| // Creates Dictionary representation for given target. |
| // |
| // If |resolved| is non-null it is used to compute (and memoize) inherited |
| // lib/framework information. Callers that describe many targets in a row |
| // should pass a single shared instance to avoid recomputing the transitive |
| // dependency walk for every target (which is quadratic otherwise). |
| static std::unique_ptr<base::DictionaryValue> DescriptionForTarget( |
| const Target* target, |
| const std::string& what, |
| bool all, |
| bool tree, |
| bool blame, |
| ResolvedTargetData* resolved = nullptr); |
| |
| // Creates Dictionary representation for given config |
| static std::unique_ptr<base::DictionaryValue> DescriptionForConfig( |
| const Config* config, |
| const std::string& what); |
| }; |
| |
| #endif |