| Index: tools/gn/setup.h
|
| diff --git a/tools/gn/setup.h b/tools/gn/setup.h
|
| index eb9d37b2b445288700335c0b6e3af8fdacdd1d3b..0cd0a7930a1cf6a1ab9b2e93b4041ec0e1aa8dc6 100644
|
| --- a/tools/gn/setup.h
|
| +++ b/tools/gn/setup.h
|
| @@ -58,6 +58,10 @@ class CommonSetup {
|
| Builder* builder() { return builder_.get(); }
|
| LoaderImpl* loader() { return loader_.get(); }
|
|
|
| + // Name of the file in the root build directory that contains the build
|
| + // arguements.
|
| + static const char kBuildArgFileName[];
|
| +
|
| protected:
|
| CommonSetup();
|
| CommonSetup(const CommonSetup& other);
|
| @@ -105,10 +109,31 @@ class Setup : public CommonSetup {
|
|
|
| virtual Scheduler* GetScheduler() OVERRIDE;
|
|
|
| + // Returns the file used to store the build arguments. Note that the path
|
| + // might not exist.
|
| + SourceFile GetBuildArgFile() const;
|
| +
|
| + // Sets whether the build arguments should be filled during setup from the
|
| + // command line/build argument file. This will be true by default. The use
|
| + // case for setting it to false is when editing build arguments, we don't
|
| + // want to rely on them being valid.
|
| + void set_fill_arguments(bool fa) { fill_arguments_ = fa; }
|
| +
|
| private:
|
| // Fills build arguments. Returns true on success.
|
| bool FillArguments(const base::CommandLine& cmdline);
|
|
|
| + // Fills the build arguments from the command line or from the build arg file.
|
| + bool FillArgsFromCommandLine(const std::string& args);
|
| + bool FillArgsFromFile();
|
| +
|
| + // Given an already-loaded args_input_file_, parses and saves the resulting
|
| + // arguments. Backend for the different FillArgs variants.
|
| + bool FillArgsFromArgsInputFile();
|
| +
|
| + // Writes the build arguments to the build arg file.
|
| + bool SaveArgsToFile();
|
| +
|
| // Fills the root directory into the settings. Returns true on success.
|
| bool FillSourceDir(const base::CommandLine& cmdline);
|
|
|
| @@ -140,6 +165,10 @@ class Setup : public CommonSetup {
|
| std::vector<Token> dotfile_tokens_;
|
| scoped_ptr<ParseNode> dotfile_root_;
|
|
|
| + // Set to true when we should populate the build arguments from the command
|
| + // line or build argument file. See setter above.
|
| + bool fill_arguments_;
|
| +
|
| // State for invoking the command line args. We specifically want to keep
|
| // this around for the entire run so that Values can blame to the command
|
| // line when we issue errors about them.
|
|
|