summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/tools_webrtc/apple
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/tools_webrtc/apple')
-rwxr-xr-xthird_party/libwebrtc/tools_webrtc/apple/copy_framework_header.py46
-rw-r--r--third_party/libwebrtc/tools_webrtc/apple/copy_framework_header_test.py35
2 files changed, 81 insertions, 0 deletions
diff --git a/third_party/libwebrtc/tools_webrtc/apple/copy_framework_header.py b/third_party/libwebrtc/tools_webrtc/apple/copy_framework_header.py
new file mode 100755
index 0000000000..3574a67d2a
--- /dev/null
+++ b/third_party/libwebrtc/tools_webrtc/apple/copy_framework_header.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env vpython3
+
+# Copyright (c) 2020 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.
+
+import argparse
+import re
+import sys
+
+
+def _ReplaceDoubleQuote(line):
+ re_rtc_import = re.compile(r'(\s*)#import\s+"(\S+/|)(\w+\+|)RTC(\w+)\.h"(.*)',
+ re.DOTALL)
+ match = re_rtc_import.match(line)
+ if not match:
+ return line
+
+ return '%s#import <WebRTC/%sRTC%s.h>%s' % (match.group(1), match.group(3),
+ match.group(4), match.group(5))
+
+
+def Process(input_file, output_file):
+ with open(input_file, 'rb') as fb, open(output_file, 'wb') as fw:
+ for line in fb.read().decode('UTF-8').splitlines():
+ fw.write(_ReplaceDoubleQuote(line).encode('UTF-8'))
+ fw.write(b"\n")
+
+
+def main():
+ parser = argparse.ArgumentParser(
+ description=
+ "Copy headers of framework and replace double-quoted includes to" +
+ " angle-bracketed respectively.")
+ parser.add_argument('--input', help='Input header files to copy.', type=str)
+ parser.add_argument('--output', help='Output file.', type=str)
+ parsed_args = parser.parse_args()
+ return Process(parsed_args.input, parsed_args.output)
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/third_party/libwebrtc/tools_webrtc/apple/copy_framework_header_test.py b/third_party/libwebrtc/tools_webrtc/apple/copy_framework_header_test.py
new file mode 100644
index 0000000000..7b8aceac6d
--- /dev/null
+++ b/third_party/libwebrtc/tools_webrtc/apple/copy_framework_header_test.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env vpython3
+
+# Copyright (c) 2020 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.
+
+import unittest
+from copy_framework_header import _ReplaceDoubleQuote
+
+
+class TestCopyFramework(unittest.TestCase):
+ def testReplaceDoubleQuote(self):
+ self.assertEqual(_ReplaceDoubleQuote("""#import "RTCMacros.h\""""),
+ """#import <WebRTC/RTCMacros.h>""")
+ self.assertEqual(_ReplaceDoubleQuote("""#import "RTCMacros.h\"\n"""),
+ """#import <WebRTC/RTCMacros.h>\n""")
+ self.assertEqual(
+ _ReplaceDoubleQuote("""#import "UIDevice+RTCDevice.h\"\n"""),
+ """#import <WebRTC/UIDevice+RTCDevice.h>\n""")
+ self.assertEqual(
+ _ReplaceDoubleQuote("#import \"components/video_codec/" +
+ "RTCVideoDecoderFactoryH264.h\"\n"),
+ """#import <WebRTC/RTCVideoDecoderFactoryH264.h>\n""")
+ self.assertEqual(
+ _ReplaceDoubleQuote(
+ """@property(atomic, strong) RTC_OBJC_TYPE(RTCVideoFrame) *\n"""),
+ """@property(atomic, strong) RTC_OBJC_TYPE(RTCVideoFrame) *\n""")
+
+
+if __name__ == '__main__':
+ unittest.main()