| 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)',
|
| + ],
|
| + }
|
| + ],
|
| +}
|
|
|