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

Unified 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, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/buildflag_header.gni ('k') | build/common.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/buildflag_header.gypi
diff --git a/build/buildflag_header.gypi b/build/buildflag_header.gypi
new file mode 100644
index 0000000000000000000000000000000000000000..730ef429efe48a4f46b0ef14998fb88f9e063d9b
--- /dev/null
+++ b/build/buildflag_header.gypi
@@ -0,0 +1,118 @@
+# Copyright 2015 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.
+
+# Generates a header with preprocessor defines specified by the build file.
+#
+# The canonical documentation is in build/buildflag_header.gni. You should
+# write the GN build, get it working, and then transform it into GYP.
+#
+# In every target that uses your generated header you must include a dependency
+# on the GYP target that generates the header (this is implicit in GN).
+# Otherwise, clean builds may not necessarily create the header before the
+# source code is compiled.
+#
+# Assuming your GN code looks like this:
+#
+# buildflag_header("foo_features") {
+# header = "foo_features.h"
+# flags = [
+# "ENABLE_DOOM_MELON=$enable_doom_melon",
+# "ENABLE_SPACE_LASER=true",
+# "SPAM_SERVER_URL=\"http://www.example.com/\"",
+# ]
+# }
+#
+# Write a GYP target like this:
+#
+# {
+# # GN version: //foo:foo_features
+# 'target_name': 'foo_foo_features',
+# 'includes': [ '../build/buildflag_header.gypi' ],
+# 'variables': {
+# 'buildflag_header_path': 'foo/foo_features.h',
+# 'buildflag_header_flags': [
+# 'ENABLE_DOOM_MELON=<(enable_doom_melon)',
+# 'ENABLE_SPACE_LASER=true',
+# 'SPAM_SERVER_URL="http://www.example.com/"',
+# ],
+# },
+# }
+#
+# Variables
+#
+# target_name
+# Base this on the GN label, replacing / and : with _ to make it globally
+# unique.
+#
+# buildflag_header_path
+# This must be the full path to the header from the source root. In GN
+# you only say "features.h" and it uses the BUILD file's path implicitly.
+# Use the path to BUILD.gn followed by your header name to produce the
+# same output file.
+#
+# buildflag_flags (optional)
+# List of the same format as GN's "flags". To expand variables, use
+# "<(foo)" where GN would have used "$foo".
+#
+# includes
+# List the relative path to build/buildflag_header.gypi from the .gyp
+# file including this code, Note: If your code is in a .gypi file in a
+# different directory, this must be relative to the .gyp including your
+# file.
+#
+#
+# Grit defines
+#
+# Follow the same advice as in the buildflag_header.gni, except on the grit
+# action use the variable name 'grit_additional_defines' and explicitly add a
+# '-D' in front:
+#
+# 'grit_grd_file': 'foo.grd',
+# 'grit_additional_defines': [
+# '-D', 'enable_doom_melon=<(enable_doom_melon)',
+# ],
+#
+# Put shared lists of defines in a .gypi.
+
+{
+ 'type': 'none',
+ 'hard_dependency': 1,
+
+ 'actions': [
+ {
+ 'action_name': 'buildflag_header',
+ 'variables': {
+ # Default these values to empty if they're not defined.
+ 'variables': {
+ 'buildflag_flags%': [],
+ },
+
+ # Writes the flags to a response file with a name based on the name of
+ # this target.
+ 'response_file_name': '<|(<(_target_name)_buildflag_header.rsp --flags <@(buildflag_flags))',
+
+ 'build_header_script': '<(DEPTH)/build/write_buildflag_header.py',
+ },
+
+ 'message': 'Generating build header.',
+
+ 'inputs': [
+ '<(build_header_script)',
+ '<(response_file_name)',
+ ],
+
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/<(buildflag_header_path)',
+ ],
+
+ 'action': [
+ 'python', '<(build_header_script)',
+ '--output', '<(buildflag_header_path)',
+ '--rulename', '<(_target_name)',
+ '--gen-dir', '<(SHARED_INTERMEDIATE_DIR)',
+ '--definitions', '<(response_file_name)',
+ ],
+ }
+ ],
+}
« 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