diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-16 16:46:14 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-16 16:46:14 +0000 |
commit | e3730f817be9693b5ad140a002abff4cbaf674ec (patch) | |
tree | b0aa15b4099915ca23a673a11356b73db2321844 /tools/gn/args.h | |
parent | 5fb863442b955f859bee4baf67aeeaf4fdc4b6c4 (diff) | |
download | chromium_src-e3730f817be9693b5ad140a002abff4cbaf674ec.zip chromium_src-e3730f817be9693b5ad140a002abff4cbaf674ec.tar.gz chromium_src-e3730f817be9693b5ad140a002abff4cbaf674ec.tar.bz2 |
GYP generator for GN.
This creates a GYP generator for GN. The GN build is run twice, once for debug and once for release mode. The resulting targets are paired to find the debug/release version of each one, and we write out the results as a GYP file.
Since a GN build can change anything based on the debug/release status, including changing the file list, and GYP can't there are a bunch of checks to make sure that the source files and deps don't vary between the debug and release version of the same target.
I split the Setup class apart so I can make duplicate Setup classes base on an original one (I use this to configure a release build based on the debug one). I added some copy constructors to the necessary classes so this would work.
This reads in the GYP_DEFINES and configures the GN build in the same way. The mapping between GYP_DEFINES and gl flags is hardcoded. I had to write some parsing code for the GYP_DEFINES which is unfortunate.
I added a new GN variable "gyp_file" for targets to set the GYP file that they should be written to.
I added a parameter for the Windows SDK path that matches the GYP build.
This removes the old "GYP" command.
I commented out all of the grit rules. These aren't helping anything right now and just slow down testing.
BUG=307571
R=scottmg@chromium.org
Review URL: https://codereview.chromium.org/26561005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228933 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/gn/args.h')
-rw-r--r-- | tools/gn/args.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/gn/args.h b/tools/gn/args.h index d3225ca..5abc127 100644 --- a/tools/gn/args.h +++ b/tools/gn/args.h @@ -23,10 +23,12 @@ extern const char kBuildArgs_Help[]; class Args { public: Args(); + Args(const Args& other); ~Args(); // Specifies overrides of the build arguments. These are normally specified // on the command line. + void AddArgOverride(const char* name, const Value& value); void AddArgOverrides(const Scope::KeyValueMap& overrides); // Sets up the root scope for a toolchain. This applies the default system @@ -82,7 +84,7 @@ class Args { // the user set variables on the command line that are not used anywhere. mutable Scope::KeyValueMap declared_arguments_; - DISALLOW_COPY_AND_ASSIGN(Args); + Args& operator=(const Args& other); // Disallow assignment. }; #endif // TOOLS_GN_ARGS_H_ |