| Index: trunk/src/tools/gn/toolchain.h
|
| ===================================================================
|
| --- trunk/src/tools/gn/toolchain.h (revision 214322)
|
| +++ trunk/src/tools/gn/toolchain.h (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.
|
| -
|
| -#ifndef TOOLS_GN_TOOLCHAIN_H_
|
| -#define TOOLS_GN_TOOLCHAIN_H_
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/strings/string_piece.h"
|
| -#include "tools/gn/item.h"
|
| -
|
| -// Holds information on a specific toolchain. This data is filled in when we
|
| -// encounter a toolchain definition.
|
| -//
|
| -// This class is an Item so it can participate in dependency management. In
|
| -// particular, when a target uses a toolchain, it should have a dependency on
|
| -// that toolchain's object so that we can be sure we loaded the toolchain
|
| -// before generating the build for that target.
|
| -//
|
| -// Note on threadsafety: The label of the toolchain never changes so can
|
| -// safetly be accessed from any thread at any time (we do this when asking for
|
| -// the toolchain name). But the values in the toolchain do, so these can't
|
| -// be accessed until this Item is resolved.
|
| -class Toolchain : public Item {
|
| - public:
|
| - enum ToolType {
|
| - TYPE_NONE = 0,
|
| - TYPE_CC,
|
| - TYPE_CXX,
|
| - TYPE_ASM,
|
| - TYPE_ALINK,
|
| - TYPE_SOLINK,
|
| - TYPE_SOLINK_MODULE,
|
| - TYPE_LINK,
|
| - TYPE_STAMP,
|
| - TYPE_COPY,
|
| -
|
| - TYPE_NUMTYPES // Must be last.
|
| - };
|
| -
|
| - static const char* kToolCc;
|
| - static const char* kToolCxx;
|
| - static const char* kToolAsm;
|
| - static const char* kToolAlink;
|
| - static const char* kToolSolink;
|
| - static const char* kToolSolinkModule;
|
| - static const char* kToolLink;
|
| - static const char* kToolStamp;
|
| - static const char* kToolCopy;
|
| -
|
| - struct Tool {
|
| - Tool();
|
| - ~Tool();
|
| -
|
| - bool empty() const {
|
| - return command.empty() && depfile.empty() && deps.empty() &&
|
| - description.empty() && pool.empty() && restat.empty() &&
|
| - rspfile.empty() && rspfile_content.empty();
|
| - }
|
| -
|
| - std::string command;
|
| - std::string depfile;
|
| - std::string deps;
|
| - std::string description;
|
| - std::string pool;
|
| - std::string restat;
|
| - std::string rspfile;
|
| - std::string rspfile_content;
|
| - };
|
| -
|
| - Toolchain(const Label& label);
|
| - virtual ~Toolchain();
|
| -
|
| - // Item overrides.
|
| - virtual Toolchain* AsToolchain() OVERRIDE;
|
| - virtual const Toolchain* AsToolchain() const OVERRIDE;
|
| -
|
| - // Returns TYPE_NONE on failure.
|
| - static ToolType ToolNameToType(const base::StringPiece& str);
|
| - static std::string ToolTypeToName(ToolType type);
|
| -
|
| - const Tool& GetTool(ToolType type) const;
|
| - void SetTool(ToolType type, const Tool& t);
|
| -
|
| - const std::string& environment() const { return environment_; }
|
| - void set_environment(const std::string& env) { environment_ = env; }
|
| -
|
| - private:
|
| - Tool tools_[TYPE_NUMTYPES];
|
| -
|
| - std::string environment_;
|
| -};
|
| -
|
| -#endif // TOOLS_GN_TOOLCHAIN_H_
|
|
|