build: On Android, disable LTO for specific targets only when targeting GCC.
[chromium-blink-merge.git] / build / android / increase_size_for_speed.gypi
blobc5600b1b1a8d2f3de1eddbf0ba7dc753c76fc45c
1 # Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # This file is meant to be included to optimize a target for speed
6 # rather than for size on Android.
7 # This is used in some carefully tailored targets and is not meant
8 # to be included everywhere. Before adding the template to another target,
9 # please ask in chromium-dev@. See crbug.com/411909
12   'configurations': {
13     'Release': {
14       'target_conditions': [
15         ['_toolset=="target"', {
16           'conditions': [
17             ['OS=="android"', {
18               'cflags!': ['-Os'],
19               'cflags': ['-O2'],
20             }],
21             # Do not merge -Os and -O2 in GCC LTO.
22             # LTO merges all optimization options at link-time. -O2 takes
23             # precedence over -Os. Avoid using LTO simultaneously
24             # on -Os and -O2 parts for that reason.
25             ['OS=="android" and clang==0 and use_lto==1', {
26               'cflags!': [
27                 '-flto',
28                 '-ffat-lto-objects',
29               ],
30             }],
31             ['OS=="android" and clang==0 and use_lto_o2==1', {
32               'cflags': [
33                 '-flto',
34                 '-ffat-lto-objects',
35               ],
36             }],
37           ],
38         }],
39       ],
40     },
41   },