Chromium Code Reviews| Index: talk/build/export_headers |
| diff --git a/talk/build/export_headers b/talk/build/export_headers |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..a82f17eb0f501292d5173022744eff1b02967190 |
| --- /dev/null |
| +++ b/talk/build/export_headers |
| @@ -0,0 +1,73 @@ |
| +#!/usr/bin/python |
| + |
| +# Copyright 2016 The WebRTC project authors. All Rights Reserved. |
| +# |
| +# Use of this source code is governed by a BSD-style license |
| +# that can be found in the LICENSE file in the root of the source |
| +# tree. An additional intellectual property rights grant can be found |
| +# in the file PATENTS. All contributing project authors may |
| +# be found in the AUTHORS file in the root of the source tree. |
| + |
| +"""Script for exporting iOS header files.""" |
| + |
| +import errno |
| +import optparse |
| +import os |
| +import re |
| +import shutil |
| +import sys |
| + |
| + |
| +def ExportHeaders(include_base_dir): |
| + """Exports iOS header files. |
| + |
| + Creates an include directory and recreates the hierarchy for the header files |
| + within the include directory. |
| + |
| + Args: |
| + include_base_dir: directory where the include directory should be created |
| + """ |
| + header_dirs = ['webrtc/api/objc/', 'webrtc/base/objc/'] |
| + # Individual header files that should also be exported. |
| + include_headers = [] |
| + # Individual header files that should not be exported. |
| + exclude_headers = ['webrtc/api/objc/RTCNSGLVideoView.h'] |
|
hjon_webrtc
2016/02/10 21:41:15
Should avfoundationvideocapturer.h be excluded?
|
| + |
| + include_dir_name = 'include' |
| + include_path = os.path.join(include_base_dir, include_dir_name) |
| + |
| + script_path = sys.path[0] |
| + webrtc_base_path = os.path.join(script_path, '../..') |
| + |
| + for directory in header_dirs: |
| + full_dir_path = os.path.join(webrtc_base_path, directory) |
| + filenames = os.listdir(full_dir_path) |
| + for filename in filenames: |
| + if filename.endswith('.h') and not filename.endswith('+Private.h'): |
| + include_headers.append(os.path.join(directory, filename)) |
| + |
| + for header in exclude_headers: |
| + include_headers.remove(header) |
| + |
| + for header_path in include_headers: |
| + output_dir = os.path.join(include_path, os.path.dirname(header_path)) |
| + # Create hierarchy for the header file within the include directory. |
| + try: |
| + os.makedirs(output_dir) |
| + except OSError as exc: |
| + if exc.errno != errno.EEXIST: |
| + raise exc |
| + current_path = os.path.join(webrtc_base_path, header_path) |
| + new_path = os.path.join(include_path, header_path) |
| + shutil.copy(current_path, new_path) |
| + |
| +def Main(): |
| + parser = optparse.OptionParser() |
| + _, args = parser.parse_args() |
| + if len(args) != 1: |
| + parser.error('Error: Exactly 1 argument required.') |
| + include_base_dir = args[0] |
| + ExportHeaders(include_base_dir) |
| + |
| +if __name__ == '__main__': |
| + sys.exit(Main()) |