iOS: Use JSON for GN configuration instead of MB + remove symbols.

This aligns with how the ios recipe module is used in Chromium.
It should prevent breakages like one we had recently.

It also means we're no longer setting symbol_level=1 explicitly.
The default is 0 (no symbols), which is now what's being used.

Also move all the directories containing JSON files into
tools-webrtc/ios/bots to make it clearer (and more similar to
Chromium).

BUG=webrtc:7140, webrtc:7161
NOTRY=True

Review-Url: https://codereview.webrtc.org/2688103002
Cr-Commit-Position: refs/heads/master@{#16633}
This commit is contained in:
kjellander
2017-02-15 12:34:03 -08:00
committed by Commit bot
parent 368b5ffecc
commit 73f01de4ed
17 changed files with 101 additions and 110 deletions

View File

@ -1,14 +1,15 @@
{
"comments": [
"Builder for 32-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 32-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"arm\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,16 @@
{
"comments": [
"Builder for 32-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 32-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"dcheck_always_on=true",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=false",
"target_cpu=\"arm\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,14 @@
{
"comments": [
"Tests for 32-bit iOS simulators.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Tests for 32-bit iOS simulators."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"x86\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,15 @@
{
"comments": [
"Builder for 64-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 64-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"arm64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,16 @@
{
"comments": [
"Builder for 64-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 64-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"dcheck_always_on=true",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=false",
"target_cpu=\"arm64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,14 @@
{
"comments": [
"Tests for 64-bit iOS simulators.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Tests for 64-bit iOS simulators."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"x64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,14 @@
{
"comments": [
"Tests for 64-bit iOS simulators.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Tests for 64-bit iOS simulators."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"x64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"additional_compile_targets": [ "all" ],

View File

@ -1,14 +1,14 @@
{
"comments": [
"Tests for 32-bit iOS simulators.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Tests for 32-bit iOS simulators."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"x86\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -1,14 +1,14 @@
{
"comments": [
"Tests for 64-bit iOS simulators.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Tests for 64-bit iOS simulators."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"x64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -1,14 +1,14 @@
{
"comments": [
"Tests for 64-bit iOS simulators.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Tests for 64-bit iOS simulators."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"x64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -1,14 +1,15 @@
{
"comments": [
"Builder for 64-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 64-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"arm64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -1,14 +1,16 @@
{
"comments": [
"Builder for 64-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 64-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"dcheck_always_on=true",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=false",
"target_cpu=\"arm64\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -1,14 +1,15 @@
{
"comments": [
"Builder for 32-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 32-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=true",
"target_cpu=\"arm\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -1,14 +1,16 @@
{
"comments": [
"Builder for 32-bit devices.",
"gn_args in this file is only read by the buildbot recipe; ",
"webrtc/build/mb_config.pyl contains the actual build configuration.",
"TODO(kjellander): remove gn_args when the recipe is updated."
"Builder for 32-bit devices."
],
"xcode version": "8.0",
"gn_args": [
"goma_dir=\"$(goma_dir)\"",
"dcheck_always_on=true",
"ios_enable_code_signing=false",
"is_component_build=false",
"is_debug=false",
"target_cpu=\"arm\"",
"target_os=\"ios\"",
"use_goma=true"
],
"use_analyze": false,

View File

@ -33,8 +33,8 @@ import urllib2
from collections import OrderedDict
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
CHROMIUM_SRC_DIR = os.path.dirname(os.path.dirname(SCRIPT_DIR))
sys.path = [os.path.join(CHROMIUM_SRC_DIR, 'build')] + sys.path
SRC_DIR = os.path.dirname(os.path.dirname(SCRIPT_DIR))
sys.path = [os.path.join(SRC_DIR, 'build')] + sys.path
import gn_helpers
@ -46,7 +46,7 @@ def main(args):
class MetaBuildWrapper(object):
def __init__(self):
self.chromium_src_dir = CHROMIUM_SRC_DIR
self.src_dir = SRC_DIR
self.default_config = os.path.join(SCRIPT_DIR, 'mb_config.pyl')
self.default_isolate_map = os.path.join(SCRIPT_DIR, 'gn_isolate_map.pyl')
self.executable = sys.executable
@ -619,7 +619,7 @@ class MetaBuildWrapper(object):
def ReadIOSBotConfig(self):
if not self.args.master or not self.args.builder:
return {}
path = self.PathJoin(self.chromium_src_dir, 'ios', 'build', 'bots',
path = self.PathJoin(self.src_dir, 'tools-webrtc', 'ios',
self.args.master, self.args.builder + '.json')
if not self.Exists(path):
return {}
@ -921,7 +921,7 @@ class MetaBuildWrapper(object):
'--isolate',
self.ToSrcRelPath('%s/%s.isolate' % (build_dir, target)),
],
'dir': self.chromium_src_dir,
'dir': self.src_dir,
'version': 1,
},
isolate_path + 'd.gen.json',
@ -966,7 +966,7 @@ class MetaBuildWrapper(object):
else:
subdir, exe = 'win', 'gn.exe'
gn_path = self.PathJoin(self.chromium_src_dir, 'buildtools', subdir, exe)
gn_path = self.PathJoin(self.src_dir, 'buildtools', subdir, exe)
return [gn_path, subcommand, path] + list(args)
@ -1137,7 +1137,7 @@ class MetaBuildWrapper(object):
return cmdline, extra_files
def ToAbsPath(self, build_path, *comps):
return self.PathJoin(self.chromium_src_dir,
return self.PathJoin(self.src_dir,
self.ToSrcRelPath(build_path),
*comps)
@ -1145,7 +1145,7 @@ class MetaBuildWrapper(object):
"""Returns a relative path from the top of the repo."""
if path.startswith('//'):
return path[2:].replace('/', self.sep)
return self.RelPath(path, self.chromium_src_dir)
return self.RelPath(path, self.src_dir)
def ParseGYPConfigPath(self, path):
rpath = self.ToSrcRelPath(path)
@ -1433,12 +1433,12 @@ class MetaBuildWrapper(object):
def Call(self, cmd, env=None, buffer_output=True):
if buffer_output:
p = subprocess.Popen(cmd, shell=False, cwd=self.chromium_src_dir,
p = subprocess.Popen(cmd, shell=False, cwd=self.src_dir,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
env=env)
out, err = p.communicate()
else:
p = subprocess.Popen(cmd, shell=False, cwd=self.chromium_src_dir,
p = subprocess.Popen(cmd, shell=False, cwd=self.src_dir,
env=env)
p.wait()
out = err = ''

View File

@ -20,13 +20,13 @@
'masters': {
'client.webrtc': {
# iOS
'iOS32 Debug': 'ios_debug_static_bot_arm_device',
'iOS32 Release': 'ios_release_bot_arm_device',
'iOS64 Debug': 'ios_debug_static_bot_arm64_device',
'iOS64 Release': 'ios_release_bot_arm64_device',
'iOS32 Sim Debug (iOS 9.0)': 'ios_debug_static_bot_x86',
'iOS64 Sim Debug (iOS 9.0)': 'ios_debug_static_bot_x64',
'iOS64 Sim Debug (iOS 10.0)': 'ios_debug_static_bot_x64',
'iOS32 Debug': 'ios',
'iOS32 Release': 'ios',
'iOS64 Debug': 'ios',
'iOS64 Release': 'ios',
'iOS32 Sim Debug (iOS 9.0)': 'ios',
'iOS64 Sim Debug (iOS 9.0)': 'ios',
'iOS64 Sim Debug (iOS 10.0)': 'ios',
# Mac
'Mac64 Debug': 'debug_bot_x64',
@ -105,13 +105,13 @@
},
'tryserver.webrtc': {
# iOS
'ios_dbg': 'ios_debug_static_bot_arm_device',
'ios_rel': 'ios_release_bot_arm_device',
'ios_arm64_dbg': 'ios_debug_static_bot_arm64_device',
'ios_arm64_rel': 'ios_release_bot_arm64_device',
'ios32_sim_ios9_dbg': 'ios_debug_static_bot_x86',
'ios64_sim_ios9_dbg': 'ios_debug_static_bot_x64',
'ios64_sim_ios10_dbg': 'ios_debug_static_bot_x64',
'ios_dbg': 'ios',
'ios_rel': 'ios',
'ios_arm64_dbg': 'ios',
'ios_arm64_rel': 'ios',
'ios32_sim_ios9_dbg': 'ios',
'ios64_sim_ios9_dbg': 'ios',
'ios64_sim_ios10_dbg': 'ios',
# Mac
'mac_compile_dbg': 'debug_bot_x64',
@ -178,26 +178,6 @@
# A given config *may* be platform-specific but is not necessarily so (i.e.,
# we might have mac, win, and linux bots all using the 'release_bot' config).
'configs': {
# iOS
'ios_debug_static_bot_arm64_device': [
'ios', 'gn', 'debug_static_bot', 'arm64', 'device'
],
'ios_release_bot_arm64_device': [
'ios', 'gn', 'release_bot', 'arm64', 'device'
],
'ios_debug_static_bot_arm_device': [
'ios', 'gn', 'debug_static_bot', 'arm', 'device'
],
'ios_release_bot_arm_device': [
'ios', 'gn', 'release_bot', 'arm', 'device'
],
'ios_debug_static_bot_x86': [
'ios', 'gn', 'debug_static_bot', 'x86'
],
'ios_debug_static_bot_x64': [
'ios', 'gn', 'debug_static_bot', 'x64'
],
# Linux, Mac and Windows
'gcc_release_bot_x64': [
'gn', 'gcc', 'release_bot', 'x64'
@ -245,6 +225,13 @@
'memcheck', 'gn', 'openh264_release_bot', 'x64'
],
# iOS
# The 'ios' config is just used for auditing. iOS bots
# use the ios recipes and look up their GN arguments via files checked in
# under //tools-webrtc/ios/bots. It is an error to actually use one of these
# configs to generate the build files.
'ios': [ 'error'],
# Windows
'win_clang_debug_bot_x86': [
'gn', 'clang', 'openh264_debug_bot', 'x86',
@ -354,10 +341,6 @@
'mixins': ['debug', 'static', 'minimal_symbols', 'goma'],
},
'device': {
'gn_args': 'ios_enable_code_signing=false',
},
# This mixin is used to force configs that use it to fail. It
# is used in two cases: when we have bots that we haven't looked
# at yet and don't know whether they need MB or not, and for bots
@ -380,10 +363,6 @@
'gn_args': 'use_goma=true',
},
'ios': {
'gn_args': 'target_os="ios"',
},
'libfuzzer': {
'gn_args': 'use_libfuzzer=true',
},

View File

@ -25,7 +25,7 @@ class FakeMBW(mb.MetaBuildWrapper):
# Override vars for test portability.
if win32:
self.chromium_src_dir = 'c:\\fake_src'
self.src_dir = 'c:\\fake_src'
self.default_config = 'c:\\fake_src\\tools-webrtc\\mb\\mb_config.pyl'
self.default_isolate_map = ('c:\\fake_src\\testing\\buildbot\\'
'gn_isolate_map.pyl')
@ -33,7 +33,7 @@ class FakeMBW(mb.MetaBuildWrapper):
self.executable = 'c:\\python\\python.exe'
self.sep = '\\'
else:
self.chromium_src_dir = '/fake_src'
self.src_dir = '/fake_src'
self.default_config = '/fake_src/tools-webrtc/mb/mb_config.pyl'
self.default_isolate_map = '/fake_src/testing/buildbot/gn_isolate_map.pyl'
self.executable = '/usr/bin/python'