Flutter Engine
The Flutter Engine
Functions | Variables
build.docker Namespace Reference

Functions

def compile_fn (api, checkout_root, out_dir)
 
def copy_build_products (api, src, dst)
 

Variables

dictionary IMAGES
 

Function Documentation

◆ compile_fn()

def build.docker.compile_fn (   api,
  checkout_root,
  out_dir 
)

Definition at line 18 of file docker.py.

18def compile_fn(api, checkout_root, out_dir):
19 compiler = api.vars.builder_cfg.get('compiler', '')
20 configuration = api.vars.builder_cfg.get('configuration', '')
21 extra_tokens = api.vars.extra_tokens
22 extra_tokens.remove('Docker')
23 os = api.vars.builder_cfg.get('os', '')
24 target_arch = api.vars.builder_cfg.get('target_arch', '')
25
26 args = {
27 'extra_cflags': [],
28 'extra_ldflags': [],
29 'target_cpu': target_arch,
30 'werror': True
31 }
32
33 if configuration == 'Debug':
34 args['extra_cflags'].append('-O1')
35 else:
36 args['is_debug'] = False
37
38 if 'NoGPU' in extra_tokens:
39 args['skia_enable_ganesh'] = False
40 extra_tokens.remove('NoGPU')
41 if 'Shared' in extra_tokens:
42 args['is_component_build'] = True
43 extra_tokens.remove('Shared')
44
45 image_name = None
46 if os == 'Debian11' and compiler == 'GCC' and not extra_tokens:
47 args['cc'] = 'gcc'
48 args['cxx'] = 'g++'
49 # Newer GCC includes tons and tons of debugging symbols. This seems to
50 # negatively affect our bots (potentially only in combination with other
51 # bugs in Swarming or recipe code). Use g1 to reduce it a bit.
52 args['extra_cflags'].append('-g1')
53 if target_arch == 'x86_64':
54 image_name = 'gcc-debian11'
55 elif target_arch == 'x86':
56 image_name = 'gcc-debian11-x86'
57
58 if not image_name:
59 raise Exception('Not implemented: ' + api.vars.builder_name)
60
61 image_hash = IMAGES[image_name]
62 # We always perform an incremental compile, since out dir is cached across
63 # compile tasks. However, we need to force a recompile when the toolchain
64 # changes. The simplest way to do that is using a C define that changes
65 # anytime the image changes.
66 args['extra_cflags'].append('-DREBUILD_IF_CHANGED_docker_image=%s' % image_hash)
67
68 script = api.build.resource('docker-compile.sh')
69 api.docker.run('Run build script in Docker', image_hash,
70 checkout_root, out_dir, script, args=[util.py_to_gn(args)])
71
static void append(char **dst, size_t *count, const char *src, size_t n)
Definition: editor.cpp:211
def compile_fn(api, checkout_root, out_dir)
Definition: docker.py:18

◆ copy_build_products()

def build.docker.copy_build_products (   api,
  src,
  dst 
)

Definition at line 72 of file docker.py.

72def copy_build_products(api, src, dst):
73 util.copy_listed_files(api, src, dst, util.DEFAULT_BUILD_PRODUCTS)
def copy_build_products(api, src, dst)
Definition: docker.py:72

Variable Documentation

◆ IMAGES

dictionary build.docker.IMAGES
Initial value:
1= {
2 'gcc-debian11': (
3 'gcr.io/skia-public/gcc-debian11@sha256:'
4 '1117ea368f43e45e0f543f74c8e3bf7ff6932df54ddaa4ba1fe6131209110d3d'),
5 'gcc-debian11-x86': (
6 'gcr.io/skia-public/gcc-debian11-x86@sha256:'
7 'eb30682887c4c74c95f769aacab8a1a170eb561536ded87f0914f88b7243ba23'),
8}

Definition at line 8 of file docker.py.