OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 from recipe_engine.config import BadConf | 5 from recipe_engine.config import BadConf |
6 from recipe_engine.config_types import Path | 6 from recipe_engine.config_types import Path |
7 | 7 |
8 import DEPS | 8 import DEPS |
9 CONFIG_CTX = DEPS['chromium'].CONFIG_CTX | 9 CONFIG_CTX = DEPS['chromium'].CONFIG_CTX |
10 | 10 |
11 | 11 |
12 SUPPORTED_TARGET_ARCHS = ('intel', 'arm') | 12 SUPPORTED_TARGET_ARCHS = ('intel', 'arm') |
13 | 13 |
14 | 14 |
15 @CONFIG_CTX(includes=['chromium', 'dcheck']) | 15 @CONFIG_CTX(includes=['chromium', 'dcheck', 'webrtc_openh264']) |
16 def webrtc_standalone(c): | 16 def webrtc_standalone(c): |
17 _compiler_defaults(c) | 17 _compiler_defaults(c) |
18 | 18 |
19 c.runtests.memory_tests_runner = Path('[CHECKOUT]', 'tools', | 19 c.runtests.memory_tests_runner = Path('[CHECKOUT]', 'tools', |
20 'valgrind-webrtc', 'webrtc_tests', | 20 'valgrind-webrtc', 'webrtc_tests', |
21 platform_ext={'win': '.bat', | 21 platform_ext={'win': '.bat', |
22 'mac': '.sh', | 22 'mac': '.sh', |
23 'linux': '.sh'}) | 23 'linux': '.sh'}) |
24 @CONFIG_CTX(includes=['ninja', 'gcc', 'goma']) | 24 @CONFIG_CTX(includes=['ninja', 'gcc', 'goma']) |
25 def webrtc_gcc(c): | 25 def webrtc_gcc(c): |
26 _compiler_defaults(c) | 26 _compiler_defaults(c) |
27 | 27 |
28 @CONFIG_CTX(includes=['chromium_clang', 'dcheck']) | 28 @CONFIG_CTX(includes=['chromium_clang', 'dcheck', 'webrtc_openh264']) |
29 def webrtc_clang(c): | 29 def webrtc_clang(c): |
30 _compiler_defaults(c) | 30 _compiler_defaults(c) |
31 | 31 |
32 @CONFIG_CTX(includes=['chromium', 'dcheck', 'static_library']) | 32 @CONFIG_CTX(includes=['chromium', 'dcheck', 'static_library']) |
33 def webrtc_ios(c): | 33 def webrtc_ios(c): |
34 if c.HOST_PLATFORM != 'mac': | 34 if c.HOST_PLATFORM != 'mac': |
35 raise BadConf('Only "mac" host platform is supported for iOS (got: "%s")' % | 35 raise BadConf('Only "mac" host platform is supported for iOS (got: "%s")' % |
36 c.HOST_PLATFORM) # pragma: no cover | 36 c.HOST_PLATFORM) # pragma: no cover |
37 if c.TARGET_PLATFORM != 'ios': | 37 if c.TARGET_PLATFORM != 'ios': |
38 raise BadConf('Only "ios" target platform is supported (got: "%s")' % | 38 raise BadConf('Only "ios" target platform is supported (got: "%s")' % |
39 c.TARGET_PLATFORM) # pragma: no cover | 39 c.TARGET_PLATFORM) # pragma: no cover |
40 if c.TARGET_ARCH == 'arm': | 40 if c.TARGET_ARCH == 'arm': |
41 c.build_config_fs = c.BUILD_CONFIG + '-iphoneos' | 41 c.build_config_fs = c.BUILD_CONFIG + '-iphoneos' |
42 if c.TARGET_ARCH == 'intel': | 42 if c.TARGET_ARCH == 'intel': |
43 c.build_config_fs = c.BUILD_CONFIG + '-iphonesimulator' | 43 c.build_config_fs = c.BUILD_CONFIG + '-iphonesimulator' |
44 | 44 |
45 gyp_defs = c.gyp_env.GYP_DEFINES | 45 gyp_defs = c.gyp_env.GYP_DEFINES |
46 gyp_defs['chromium_ios_signing'] = 0 | 46 gyp_defs['chromium_ios_signing'] = 0 |
47 gyp_defs['OS'] = c.TARGET_PLATFORM | 47 gyp_defs['OS'] = c.TARGET_PLATFORM |
48 _compiler_defaults(c) | 48 _compiler_defaults(c) |
49 | 49 |
50 @CONFIG_CTX(includes=['gn']) | 50 @CONFIG_CTX(includes=['gn']) |
51 def webrtc_gn(c): | 51 def webrtc_gn(c): |
52 c.compile_py.default_targets = ['all'] | 52 c.compile_py.default_targets = ['all'] |
| 53 if c.TARGET_PLATFORM != 'ios' and c.TARGET_PLATFORM != 'android': |
| 54 c.gn_args = [ |
| 55 'ffmpeg_branding="Chrome"', |
| 56 'rtc_use_h264=true', |
| 57 ] |
53 | 58 |
54 @CONFIG_CTX(includes=['gn']) | 59 @CONFIG_CTX(includes=['webrtc_gn']) |
55 def webrtc_libfuzzer(c): | 60 def webrtc_libfuzzer(c): |
56 c.gn_args = ['use_libfuzzer=true', | 61 c.gn_args.extend([ |
57 'is_asan=true'] | 62 'use_libfuzzer=true', |
| 63 'is_asan=true', |
| 64 ]) |
| 65 |
| 66 @CONFIG_CTX() |
| 67 def webrtc_openh264(c): |
| 68 if c.TARGET_PLATFORM == 'ios': |
| 69 raise BadConf('ffmpeg decode not supported for iOS') # pragma: no cover |
| 70 if c.TARGET_PLATFORM == 'android': |
| 71 raise BadConf('h264 decode not supported for Android') # pragma: no cover |
| 72 c.gyp_env.GYP_DEFINES['ffmpeg_branding'] = 'Chrome' |
| 73 c.gyp_env.GYP_DEFINES['rtc_use_264'] = 1 |
58 | 74 |
59 def _compiler_defaults(c): | 75 def _compiler_defaults(c): |
60 c.compile_py.default_targets = ['All'] | 76 c.compile_py.default_targets = ['All'] |
OLD | NEW |