Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / Source / build / features.gypi
blob734a5db10902688f7e47ba5ee7245add0a895c6a
2 # Copyright (C) 2009 Google Inc. All rights reserved.
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
8 #     * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 #     * Redistributions in binary form must reproduce the above
11 # copyright notice, this list of conditions and the following disclaimer
12 # in the documentation and/or other materials provided with the
13 # distribution.
14 #     * Neither the name of Google Inc. nor the names of its
15 # contributors may be used to endorse or promote products derived from
16 # this software without specific prior written permission.
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   # The following defines turn WebKit features on and off.
33   #
34   # ====================================
35   #
36   #     Keep the GN version in Sync:
37   #     Source/config.gni
38   #
39   # ====================================
40   'variables': {
41     'feature_defines': [
42       'ENABLE_LAYOUT_UNIT_IN_INLINE_BOXES=0',
43       # WTF_USE_DYNAMIC_ANNOTATIONS=1 may be defined in build/common.gypi
44       # We can't define it here because it should be present only
45       # in Debug or release_valgrind_build=1 builds.
46     ],
47     # We have to nest variables inside variables so that they can be overridden
48     # through GYP_DEFINES.
49     'variables': {
50       # Enables the Oilpan garbage-collection infrastructure.
51       'enable_oilpan%': 0,
52       # TODO(haraken): Remove blink_gc_profiling. It's replaced with
53       # detailed_memory_infra.
54       'blink_gc_profiling%': 0,
55       'detailed_memory_infra%': 0,
56       'blink_logging_always_on%': 0,
57       'link_core_modules_separately%': 1,
58     },
59     'conditions': [
60       ['use_concatenated_impulse_responses==1', {
61         # Use concatenated HRTF impulse responses
62         'feature_defines': ['WTF_USE_CONCATENATED_IMPULSE_RESPONSES=1'],
63       }],
64       ['OS!="android"', {
65         'feature_defines': [
66           'ENABLE_INPUT_MULTIPLE_FIELDS_UI=1',
67           'ENABLE_WEB_AUDIO=1'
68         ],
69       }],
70       # Mac OS X uses Accelerate.framework FFT by default instead of FFmpeg.
71       ['OS!="mac" and OS!="android"', {
72         'feature_defines': [
73           'WTF_USE_WEBAUDIO_FFMPEG=1',
74         ],
75       }],
76       ['OS=="android" and use_openmax_dl_fft!=0', {
77         'feature_defines': [
78           'WTF_USE_WEBAUDIO_OPENMAX_DL_FFT=1',
79           # Enabling the FFT is enough to enable WebAudio support to
80           # allow most WebAudio features to work on Android.
81           'ENABLE_WEB_AUDIO=1',
82         ],
83       }],
84       ['use_default_render_theme==1', {
85         'feature_defines': [
86           'WTF_USE_DEFAULT_RENDER_THEME=1',
87         ],
88       }],
89       ['enable_oilpan==1', {
90         'feature_defines': [
91           'ENABLE_OILPAN=1',
92           'ENABLE_LAZY_SWEEPING=1',
93           'ENABLE_IDLE_GC=1',
94         ],
95       }],
96       ['enable_oilpan==0', {
97         'feature_defines': [
98           'ENABLE_LAZY_SWEEPING=1',
99           'ENABLE_IDLE_GC=1',
100         ],
101       }],
102       ['blink_gc_profiling==1', {
103         'feature_defines': [
104           'ENABLE_GC_PROFILING=1',
105         ],
106       }],
107       ['detailed_memory_infra==1', {
108         'feature_defines': [
109           'ENABLE_DETAILED_MEMORY_INFRA=1',
110         ],
111       }],
112       ['blink_logging_always_on==1', {
113         'feature_defines': [
114           'LOG_DISABLED=0',
115         ],
116       }],
117       ['link_core_modules_separately==1 and component=="shared_library"', {
118         'feature_defines': [
119           'LINK_CORE_MODULES_SEPARATELY',
120         ],
121       }],
122     ],
124     # shared build only. If set to 1, link web, core and modules separately.
125     'link_core_modules_separately%': '<(link_core_modules_separately)',
126   },