OLD | NEW |
(Empty) | |
| 1 #!/usr/bin/python |
| 2 |
| 3 # Copyright 2016 The WebRTC project authors. All Rights Reserved. |
| 4 # |
| 5 # Use of this source code is governed by a BSD-style license |
| 6 # that can be found in the LICENSE file in the root of the source |
| 7 # tree. An additional intellectual property rights grant can be found |
| 8 # in the file PATENTS. All contributing project authors may |
| 9 # be found in the AUTHORS file in the root of the source tree. |
| 10 |
| 11 """Script for exporting iOS header files.""" |
| 12 |
| 13 import errno |
| 14 import optparse |
| 15 import os |
| 16 import re |
| 17 import shutil |
| 18 import sys |
| 19 |
| 20 LEGACY_HEADER_DIRS = ['talk/app/webrtc/objc/public'] |
| 21 HEADER_DIRS = ['webrtc/api/objc/', 'webrtc/base/objc/'] |
| 22 # Individual header files that should also be exported. |
| 23 LEGACY_HEADER_INCLUDES = [] |
| 24 HEADER_INCLUDES = [] |
| 25 # Individual header files that should not be exported. |
| 26 LEGACY_HEADER_EXCLUDES = ['talk/app/webrtc/objc/public/RTCNSGLVideoView.h'] |
| 27 HEADER_EXCLUDES = ['webrtc/api/objc/avfoundationvideocapturer.h', |
| 28 'webrtc/api/objc/RTCNSGLVideoView.h'] |
| 29 |
| 30 def ExportHeaders(include_base_dir, use_new_headers): |
| 31 """Exports iOS header files. |
| 32 |
| 33 Creates an include directory and recreates the hierarchy for the header files |
| 34 within the include directory. |
| 35 |
| 36 Args: |
| 37 include_base_dir: directory where the include directory should be created |
| 38 """ |
| 39 |
| 40 include_dir_name = 'include' |
| 41 include_path = os.path.join(include_base_dir, include_dir_name) |
| 42 |
| 43 script_path = sys.path[0] |
| 44 webrtc_base_path = os.path.join(script_path, '../..') |
| 45 |
| 46 header_dirs = LEGACY_HEADER_DIRS |
| 47 include_headers = LEGACY_HEADER_INCLUDES |
| 48 exclude_headers = LEGACY_HEADER_EXCLUDES |
| 49 if int(use_new_headers): |
| 50 header_dirs = HEADER_DIRS |
| 51 include_headers = HEADER_INCLUDES |
| 52 exclude_headers = HEADER_EXCLUDES |
| 53 |
| 54 for directory in header_dirs: |
| 55 full_dir_path = os.path.join(webrtc_base_path, directory) |
| 56 filenames = os.listdir(full_dir_path) |
| 57 for filename in filenames: |
| 58 if filename.endswith('.h') and not filename.endswith('+Private.h'): |
| 59 include_headers.append(os.path.join(directory, filename)) |
| 60 |
| 61 for header in exclude_headers: |
| 62 include_headers.remove(header) |
| 63 |
| 64 for header_path in include_headers: |
| 65 output_dir = os.path.join(include_path, os.path.dirname(header_path)) |
| 66 # Create hierarchy for the header file within the include directory. |
| 67 try: |
| 68 os.makedirs(output_dir) |
| 69 except OSError as exc: |
| 70 if exc.errno != errno.EEXIST: |
| 71 raise exc |
| 72 current_path = os.path.join(webrtc_base_path, header_path) |
| 73 new_path = os.path.join(include_path, header_path) |
| 74 shutil.copy(current_path, new_path) |
| 75 |
| 76 def Main(): |
| 77 parser = optparse.OptionParser() |
| 78 _, args = parser.parse_args() |
| 79 if len(args) != 2: |
| 80 parser.error('Error: Exactly 2 arguments required.') |
| 81 include_base_dir = args[0] |
| 82 use_new_headers = args[1] |
| 83 ExportHeaders(include_base_dir, use_new_headers) |
| 84 |
| 85 if __name__ == '__main__': |
| 86 sys.exit(Main()) |
OLD | NEW |