Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Side by Side Diff: build/buildflag_header.gypi

Issue 1475513006: New build flag system, convert Google Now flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add hard dependency flags Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/buildflag_header.gni ('k') | build/common.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 # Generates a header with preprocessor defines specified by the build file.
6 #
7 # The canonical documentation is in build/buildflag_header.gni. You should
8 # write the GN build, get it working, and then transform it into GYP.
9 #
10 # In every target that uses your generated header you must include a dependency
11 # on the GYP target that generates the header (this is implicit in GN).
12 # Otherwise, clean builds may not necessarily create the header before the
13 # source code is compiled.
14 #
15 # Assuming your GN code looks like this:
16 #
17 # buildflag_header("foo_features") {
18 # header = "foo_features.h"
19 # flags = [
20 # "ENABLE_DOOM_MELON=$enable_doom_melon",
21 # "ENABLE_SPACE_LASER=true",
22 # "SPAM_SERVER_URL=\"http://www.example.com/\"",
23 # ]
24 # }
25 #
26 # Write a GYP target like this:
27 #
28 # {
29 # # GN version: //foo:foo_features
30 # 'target_name': 'foo_foo_features',
31 # 'includes': [ '../build/buildflag_header.gypi' ],
32 # 'variables': {
33 # 'buildflag_header_path': 'foo/foo_features.h',
34 # 'buildflag_header_flags': [
35 # 'ENABLE_DOOM_MELON=<(enable_doom_melon)',
36 # 'ENABLE_SPACE_LASER=true',
37 # 'SPAM_SERVER_URL="http://www.example.com/"',
38 # ],
39 # },
40 # }
41 #
42 # Variables
43 #
44 # target_name
45 # Base this on the GN label, replacing / and : with _ to make it globally
46 # unique.
47 #
48 # buildflag_header_path
49 # This must be the full path to the header from the source root. In GN
50 # you only say "features.h" and it uses the BUILD file's path implicitly.
51 # Use the path to BUILD.gn followed by your header name to produce the
52 # same output file.
53 #
54 # buildflag_flags (optional)
55 # List of the same format as GN's "flags". To expand variables, use
56 # "<(foo)" where GN would have used "$foo".
57 #
58 # includes
59 # List the relative path to build/buildflag_header.gypi from the .gyp
60 # file including this code, Note: If your code is in a .gypi file in a
61 # different directory, this must be relative to the .gyp including your
62 # file.
63 #
64 #
65 # Grit defines
66 #
67 # Follow the same advice as in the buildflag_header.gni, except on the grit
68 # action use the variable name 'grit_additional_defines' and explicitly add a
69 # '-D' in front:
70 #
71 # 'grit_grd_file': 'foo.grd',
72 # 'grit_additional_defines': [
73 # '-D', 'enable_doom_melon=<(enable_doom_melon)',
74 # ],
75 #
76 # Put shared lists of defines in a .gypi.
77
78 {
79 'type': 'none',
80 'hard_dependency': 1,
81
82 'actions': [
83 {
84 'action_name': 'buildflag_header',
85 'variables': {
86 # Default these values to empty if they're not defined.
87 'variables': {
88 'buildflag_flags%': [],
89 },
90
91 # Writes the flags to a response file with a name based on the name of
92 # this target.
93 'response_file_name': '<|(<(_target_name)_buildflag_header.rsp --flags < @(buildflag_flags))',
94
95 'build_header_script': '<(DEPTH)/build/write_buildflag_header.py',
96 },
97
98 'message': 'Generating build header.',
99
100 'inputs': [
101 '<(build_header_script)',
102 '<(response_file_name)',
103 ],
104
105 'outputs': [
106 '<(SHARED_INTERMEDIATE_DIR)/<(buildflag_header_path)',
107 ],
108
109 'action': [
110 'python', '<(build_header_script)',
111 '--output', '<(buildflag_header_path)',
112 '--rulename', '<(_target_name)',
113 '--gen-dir', '<(SHARED_INTERMEDIATE_DIR)',
114 '--definitions', '<(response_file_name)',
115 ],
116 }
117 ],
118 }
OLDNEW
« no previous file with comments | « build/buildflag_header.gni ('k') | build/common.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698