OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 # Copyright 2016 The WebRTC project authors. All Rights Reserved. | 3 # Copyright 2016 The WebRTC project authors. All Rights Reserved. |
4 # | 4 # |
5 # Use of this source code is governed by a BSD-style license | 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 | 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 | 7 # tree. An additional intellectual property rights grant can be found |
8 # in the file PATENTS. All contributing project authors may | 8 # in the file PATENTS. All contributing project authors may |
9 # be found in the AUTHORS file in the root of the source tree. | 9 # be found in the AUTHORS file in the root of the source tree. |
10 | 10 |
11 """Script for exporting iOS header files.""" | 11 """Script for exporting iOS header files.""" |
12 | 12 |
13 import errno | 13 import errno |
14 import optparse | 14 import sys |
| 15 |
| 16 import argparse |
15 import os | 17 import os |
16 import re | |
17 import shutil | 18 import shutil |
18 import sys | |
19 | 19 |
20 LEGACY_HEADER_DIRS = ['talk/app/webrtc/objc/public', 'webrtc/base/objc/'] | 20 LEGACY_HEADER_DIRS = ['talk/app/webrtc/objc/public', 'webrtc/base/objc/'] |
21 HEADER_DIRS = ['webrtc/api/objc/', 'webrtc/base/objc/', | 21 HEADER_DIRS = ['webrtc/api/objc/', 'webrtc/base/objc/', |
22 'webrtc/modules/audio_device/ios/objc'] | 22 'webrtc/modules/audio_device/ios/objc'] |
23 # Individual header files that should also be exported. | 23 # Individual header files that should also be exported. |
24 LEGACY_HEADER_INCLUDES = [] | 24 LEGACY_HEADER_INCLUDES = [] |
25 HEADER_INCLUDES = [] | 25 HEADER_INCLUDES = [] |
26 # Individual header files that should not be exported. | 26 # Individual header files that should not be exported. |
27 LEGACY_HEADER_EXCLUDES = ['talk/app/webrtc/objc/public/RTCNSGLVideoView.h'] | 27 LEGACY_HEADER_EXCLUDES = ['talk/app/webrtc/objc/public/RTCNSGLVideoView.h'] |
28 HEADER_EXCLUDES = [ | 28 HEADER_EXCLUDES = [ |
29 'webrtc/api/objc/avfoundationvideocapturer.h', | 29 'webrtc/api/objc/avfoundationvideocapturer.h', |
30 'webrtc/api/objc/RTCNSGLVideoView.h', | 30 'webrtc/api/objc/RTCNSGLVideoView.h', |
31 'webrtc/base/objc/NSString+StdString.h', | 31 'webrtc/api/objc/RTCVideoRendererAdapter.h', |
32 'webrtc/base/objc/RTCUIApplication.h', | 32 'webrtc/base/objc/NSString+StdString.h', |
33 'webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h', | 33 'webrtc/base/objc/RTCUIApplication.h', |
| 34 'webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h', |
34 ] | 35 ] |
35 | 36 |
| 37 |
36 def ExportHeaders(include_base_dir, use_legacy_headers): | 38 def ExportHeaders(include_base_dir, use_legacy_headers): |
37 """Exports iOS header files. | 39 """Exports iOS header files. |
38 | 40 |
39 Creates an include directory and recreates the hierarchy for the header files | 41 Creates an include directory and recreates the hierarchy for the header files |
40 within the include directory. | 42 within the include directory. |
41 | 43 |
42 Args: | 44 Args: |
43 include_base_dir: directory where the include directory should be created | 45 include_base_dir: directory where the include directory should be created |
| 46 use_legacy_headers: whether or not to export the old headers |
44 """ | 47 """ |
45 | 48 |
46 include_dir_name = 'include' | 49 include_dir_name = 'include' |
47 include_path = os.path.join(include_base_dir, include_dir_name) | 50 include_path = os.path.join(include_base_dir, include_dir_name) |
48 # Remove existing directory first in case files change. | 51 # Remove existing directory first in case files change. |
49 if (os.path.exists(include_path)): | 52 if os.path.exists(include_path): |
50 shutil.rmtree(include_path) | 53 shutil.rmtree(include_path) |
51 | 54 |
52 script_path = sys.path[0] | 55 script_path = sys.path[0] |
53 webrtc_base_path = os.path.join(script_path, '../../..') | 56 webrtc_base_path = os.path.join(script_path, '../../..') |
54 | 57 |
55 header_dirs = HEADER_DIRS | 58 header_dirs = HEADER_DIRS |
56 include_headers = HEADER_INCLUDES | 59 include_headers = HEADER_INCLUDES |
57 exclude_headers = HEADER_EXCLUDES | 60 exclude_headers = HEADER_EXCLUDES |
58 if use_legacy_headers: | 61 if use_legacy_headers: |
59 header_dirs = LEGACY_HEADER_DIRS | 62 header_dirs = LEGACY_HEADER_DIRS |
(...skipping 15 matching lines...) Expand all Loading... |
75 # Create hierarchy for the header file within the include directory. | 78 # Create hierarchy for the header file within the include directory. |
76 try: | 79 try: |
77 os.makedirs(output_dir) | 80 os.makedirs(output_dir) |
78 except OSError as exc: | 81 except OSError as exc: |
79 if exc.errno != errno.EEXIST: | 82 if exc.errno != errno.EEXIST: |
80 raise exc | 83 raise exc |
81 current_path = os.path.join(webrtc_base_path, header_path) | 84 current_path = os.path.join(webrtc_base_path, header_path) |
82 new_path = os.path.join(include_path, header_path) | 85 new_path = os.path.join(include_path, header_path) |
83 shutil.copy(current_path, new_path) | 86 shutil.copy(current_path, new_path) |
84 | 87 |
| 88 |
85 def Main(): | 89 def Main(): |
86 parser = optparse.OptionParser() | 90 parser_description = 'Export WebRTC ObjC API headers.' |
87 _, args = parser.parse_args() | 91 parser = argparse.ArgumentParser(description=parser_description) |
88 if len(args) != 2: | 92 parser.add_argument('output_dir', |
89 parser.error('Error: Exactly 2 arguments required.') | 93 help='Output directory to write headers to.', |
90 include_base_dir = args[0] | 94 type=str) |
91 use_legacy_headers = False if int(args[1]) == 0 else True | 95 parser.add_argument('use_legacy_headers', |
92 ExportHeaders(include_base_dir, use_legacy_headers) | 96 help='Reads the old headers instead of the current ones.', |
| 97 type=int) |
| 98 args = parser.parse_args() |
| 99 use_legacy_headers = args.use_legacy_headers != 0 |
| 100 output_dir = args.output_dir |
| 101 ExportHeaders(output_dir, use_legacy_headers) |
| 102 |
93 | 103 |
94 if __name__ == '__main__': | 104 if __name__ == '__main__': |
95 sys.exit(Main()) | 105 sys.exit(Main()) |
OLD | NEW |