summaryrefslogtreecommitdiffstats
path: root/tools/generate_shim_headers
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 20:46:42 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 20:46:42 +0000
commit94e4f5f000b149ce1e9a9936fd311219731f2854 (patch)
tree2bad971c191e8da4d53985fc85e32714be36dfcf /tools/generate_shim_headers
parentb1156cb05eb51eba79ae543ffaad3e115d66cbc9 (diff)
downloadchromium_src-94e4f5f000b149ce1e9a9936fd311219731f2854.zip
chromium_src-94e4f5f000b149ce1e9a9936fd311219731f2854.tar.gz
chromium_src-94e4f5f000b149ce1e9a9936fd311219731f2854.tar.bz2
Fix build with system re2
BUG=165264 Review URL: https://codereview.chromium.org/11871003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177744 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/generate_shim_headers')
-rwxr-xr-xtools/generate_shim_headers/generate_shim_headers.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/generate_shim_headers/generate_shim_headers.py b/tools/generate_shim_headers/generate_shim_headers.py
index f0a5c99..891b75c 100755
--- a/tools/generate_shim_headers/generate_shim_headers.py
+++ b/tools/generate_shim_headers/generate_shim_headers.py
@@ -27,6 +27,7 @@ SHIM_TEMPLATE = """
def GeneratorMain(argv):
parser = optparse.OptionParser()
parser.add_option('--headers-root', action='append')
+ parser.add_option('--define', action='append')
parser.add_option('--output-directory')
parser.add_option('--use-include-next', action='store_true')
parser.add_option('--outputs', action='store_true')
@@ -66,6 +67,15 @@ def GeneratorMain(argv):
with open(os.path.join(target_directory, header_filename), 'w') as f:
f.write(SHIM_TEMPLATE)
+ if options.define:
+ for define in options.define:
+ key, value = define.split('=', 1)
+ # This non-standard push_macro extension is supported
+ # by compilers we support (GCC, clang).
+ f.write('#pragma push_macro("%s")\n' % key)
+ f.write('#undef %s\n' % key)
+ f.write('#define %s %s\n' % (key, value))
+
if include_before:
for header in include_before.split(':'):
f.write('#include %s\n' % header)
@@ -79,6 +89,13 @@ def GeneratorMain(argv):
for header in include_after.split(':'):
f.write('#include %s\n' % header)
+ if options.define:
+ for define in options.define:
+ key, value = define.split('=', 1)
+ # This non-standard pop_macro extension is supported
+ # by compilers we support (GCC, clang).
+ f.write('#pragma pop_macro("%s")\n' % key)
+
def DoMain(argv):
return '\n'.join(GeneratorMain(argv))