| Index: tools/gn/setup.h
|
| diff --git a/tools/gn/setup.h b/tools/gn/setup.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e698ac54f2610bab8022672df4a8cf9eb3183738
|
| --- /dev/null
|
| +++ b/tools/gn/setup.h
|
| @@ -0,0 +1,69 @@
|
| +// 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_SETUP_H_
|
| +#define TOOLS_GN_SETUP_H_
|
| +
|
| +#include <vector>
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/files/file_path.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "tools/gn/build_settings.h"
|
| +#include "tools/gn/scheduler.h"
|
| +#include "tools/gn/scope.h"
|
| +#include "tools/gn/settings.h"
|
| +#include "tools/gn/token.h"
|
| +#include "tools/gn/toolchain.h"
|
| +
|
| +class CommandLine;
|
| +class InputFile;
|
| +class ParseNode;
|
| +
|
| +// Helper class to setup the build settings and environment for the various
|
| +// commands to run.
|
| +class Setup {
|
| + public:
|
| + Setup();
|
| + ~Setup();
|
| +
|
| + // Configures the build for the current command line. On success returns
|
| + // true. On failure, prints the error and returns false.
|
| + bool DoSetup();
|
| +
|
| + // Runs the load, returning true on success. On failure, prints the error
|
| + // and returns false.
|
| + bool Run();
|
| +
|
| + BuildSettings& build_settings() { return build_settings_; }
|
| + Scheduler& scheduler() { return scheduler_; }
|
| +
|
| + private:
|
| + // Fills the root directory into the settings. Returns true on success.
|
| + bool FillSourceDir(const CommandLine& cmdline);
|
| +
|
| + // Run config file.
|
| + bool RunConfigFile();
|
| +
|
| + bool FillOtherConfig(const CommandLine& cmdline);
|
| +
|
| + BuildSettings build_settings_;
|
| + Scheduler scheduler_;
|
| +
|
| + // State for invoking the dotfile.
|
| + // TODO(brettw) this seems a bit excessive, maybe we can get this down
|
| + // somehow?
|
| + base::FilePath dotfile_name_;
|
| + scoped_ptr<InputFile> dotfile_input_file_;
|
| + std::vector<Token> dotfile_tokens_;
|
| + scoped_ptr<ParseNode> dotfile_root_;
|
| + BuildSettings dotfile_build_settings_;
|
| + Toolchain dotfile_toolchain_;
|
| + Settings dotfile_settings_;
|
| + Scope dotfile_scope_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(Setup);
|
| +};
|
| +
|
| +#endif // TOOLS_GN_SETUP_H_
|
|
|