110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# Use of this source code is governed by a BSD-style license that can be 310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# found in the LICENSE file. 410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochimport("//build/config/ui.gni") 610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochif (is_android) { 810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch import("//build/config/android/config.gni") 910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} else { 1010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch # TODO(brettw) remove this once && early-out is checked in. 1110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch is_android_webview_build = false 1210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} 1310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochif (cpu_arch == "arm") { 1410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch import("//build/config/arm.gni") 1510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} else { 1610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch # TODO(brettw) remove this once && early-out is checked in. 1710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch arm_version = 0 1810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} 1910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 2010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochdeclare_args() { 2110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch # Enables the Oilpan garbage-collection infrastructure. 2210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch enable_oilpan = false 2310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 2410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch # Set to true to enable the clang plugin that checks the usage of the Blink 2510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch # garbage-collection infrastructure during compilation. 2610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch blink_gc_plugin = false 2710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch blink_gc_plugin_dump_graph = false 28197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 29197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch blink_asserts_always_on = false 3010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} 3110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 3210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochuse_default_render_theme = use_aura 3310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 3410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# Whether Android ARM or x86 build uses OpenMAX DL FFT. Currently only 3510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# supported on Android ARMv7+, ia32 or x64 without webview. When enabled, this 3610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# will also enable WebAudio support on Android ARM, ia32 and x64. Default is 3710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# enabled. Whether WebAudio is actually available depends on runtime settings 3810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# and flags. 3910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochuse_openmax_dl_fft = is_android && !is_android_webview_build && 4010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch (cpu_arch == "x86" || 4110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch cpu_arch == "x64" || 427242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci (cpu_arch == "arm" && arm_version >= 7)) 4310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 44d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)use_webaudio_ffmpeg = !is_mac && !is_android 45d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 4610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# Set this to true to enable use of concatenated impulse responses for the HRTF 4710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# panner in WebAudio. 4810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# TODO(brettw) do we need this or can we assume its always on? 4910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochuse_concatenated_impulse_responses = true 50d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 51d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)# feature_defines_list --------------------------------------------------------- 52d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 53d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)feature_defines_list = [ 54d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "ENABLE_SVG_FONTS=1", 55d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)] 56d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 57d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (is_debug) { 58d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) # TODO(GYP) this should also be set when release_valgrind_build is set, 59d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) # but we don't have that flag in the GN build yet. 60d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ "WTF_USE_DYNAMIC_ANNOTATIONS=1" ] 61d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 62d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 63d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (use_concatenated_impulse_responses) { 64d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ "WTF_USE_CONCATENATED_IMPULSE_RESPONSES=1" ] 65d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 66d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 67197021e6b966cfb06891637935ef33fff06433d1Ben Murdochif (!is_android) { 68d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ 69d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "ENABLE_INPUT_MULTIPLE_FIELDS_UI=1", 70d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "ENABLE_WEB_AUDIO=1", 71d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) ] 72d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 73d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 74d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (use_webaudio_ffmpeg) { 75d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ "WTF_USE_WEBAUDIO_FFMPEG=1" ] 76d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 77d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 78d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (use_openmax_dl_fft) { 79d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ 80d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "WTF_USE_WEBAUDIO_OPENMAX_DL_FFT=1", 81d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) # Enabling the FFT is enough to enable WebAudio support to 82d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) # allow most WebAudio features to work on Android. 83d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "ENABLE_WEB_AUDIO=1", 84d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) ] 85d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 86d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 87d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (!is_mac) { 88d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) # Mac OS X has not implemented support for ENABLE(OPENTYPE_VERTICAL) yet. 89d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ "ENABLE_OPENTYPE_VERTICAL=1" ] 90d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 91d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 92d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (use_default_render_theme) { 93d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ "WTF_USE_DEFAULT_RENDER_THEME=1" ] 94d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 95d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)if (enable_oilpan) { 96d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list += [ "ENABLE_OILPAN=1" ] 97d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 98197021e6b966cfb06891637935ef33fff06433d1Ben Murdochif (blink_asserts_always_on) { 99197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch feature_defines_list += [ "ENABLE_ASSERT=1" ] 100197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 101d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 102d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)# feature_defines_string ------------------------------------------------------- 103d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 104d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)# Convert the list to a space-separated string for passing to scripts. 105d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)# This would be the equivalent of passing '<(feature_defines)' in GYP. 106d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)feature_defines_string = exec_script( 107d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "build/gn_list_to_space_separated_string.py", 108d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) feature_defines_list, 109d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) "trim string") 110