| 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 |