2016-03-08 13:49:35 +09:00
|
|
|
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
|
|
# vim: set filetype=python:
|
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
2016-03-09 15:27:42 +09:00
|
|
|
|
2016-03-09 15:59:39 +09:00
|
|
|
# /!\ Use js_option() instead of option() in this file. /!\
|
|
|
|
# =========================================================
|
|
|
|
|
|
|
|
@depends(build_project, '--help')
|
|
|
|
def js_shell_default(build_project, help):
|
|
|
|
return build_project == 'js'
|
|
|
|
|
|
|
|
js_option('--disable-js-shell', default=js_shell_default,
|
|
|
|
help='Do not build the JS shell')
|
2016-03-09 15:27:42 +09:00
|
|
|
|
|
|
|
@depends('--disable-js-shell')
|
|
|
|
def js_shell(value):
|
|
|
|
if not value:
|
|
|
|
set_config('JS_DISABLE_SHELL', '1')
|
2016-03-09 17:41:40 +09:00
|
|
|
|
|
|
|
|
|
|
|
# SpiderMonkey as a shared library, and how its symbols are exported
|
|
|
|
# ==================================================================
|
|
|
|
@depends(build_project, '--help')
|
|
|
|
def js_shared_default(build_project, help):
|
|
|
|
return build_project == 'js'
|
|
|
|
|
|
|
|
js_option('--disable-shared-js', default=js_shared_default,
|
|
|
|
help='Do not create a shared library')
|
|
|
|
|
|
|
|
js_option('--disable-export-js', default=js_shared_default,
|
|
|
|
help='Do not mark JS symbols as DLL exported/visible')
|
|
|
|
|
|
|
|
@depends('--disable-shared-js', '--disable-export-js')
|
|
|
|
def static_js(shared_js, export_js):
|
|
|
|
if shared_js:
|
|
|
|
if not export_js:
|
|
|
|
error('Must export JS symbols when building a shared library.')
|
|
|
|
set_config('JS_SHARED_LIBRARY', '1')
|
2016-03-10 08:23:10 +09:00
|
|
|
add_old_configure_assignment('JS_SHARED_LIBRARY', '1')
|
2016-03-09 17:41:40 +09:00
|
|
|
else:
|
|
|
|
if export_js:
|
|
|
|
set_define('STATIC_EXPORTABLE_JS_API', '1')
|
|
|
|
else:
|
|
|
|
set_define('STATIC_JS_API', '1')
|
|
|
|
set_define('MOZ_STATIC_JS', '1')
|
|
|
|
|
|
|
|
|
|
|
|
@deprecated_option(env='DISABLE_SHARED_JS', nargs='?')
|
|
|
|
def disable_shared_js(value):
|
|
|
|
# DISABLE_SHARED_JS=1 gets us an empty PositiveOptionValue
|
|
|
|
if value and not len(value):
|
|
|
|
suggestion = '--disable-shared-js'
|
|
|
|
else:
|
|
|
|
suggestion = '--enable-shared-js'
|
|
|
|
|
|
|
|
error('Setting %s is deprecated, use %s instead.'
|
|
|
|
% (value.format('DISABLE_SHARED_JS'), suggestion))
|
|
|
|
|
|
|
|
@deprecated_option(env='DISABLE_EXPORT_JS', nargs='?')
|
|
|
|
def disable_export_js(value):
|
|
|
|
# DISABLE_EXPORT_JS=1 gets us an empty PositiveOptionValue
|
|
|
|
if value and not len(value):
|
|
|
|
suggestion = '--disable-export-js'
|
|
|
|
else:
|
|
|
|
suggestion = '--enable-export-js'
|
|
|
|
|
|
|
|
error('Setting %s is deprecated, use %s instead.'
|
|
|
|
% (value.format('DISABLE_EXPORT_JS'), suggestion))
|
2016-03-17 16:12:44 +09:00
|
|
|
|
|
|
|
|
|
|
|
# Profiling
|
|
|
|
# =======================================================
|
|
|
|
js_option('--enable-instruments', env='MOZ_INSTRUMENTS',
|
|
|
|
help='Enable instruments remote profiling')
|
|
|
|
|
|
|
|
@depends('--enable-instruments', target)
|
|
|
|
def instruments(value, target):
|
|
|
|
if value and target.os != 'OSX':
|
|
|
|
error('--enable-instruments cannot be used when targeting %s'
|
|
|
|
% target.os)
|
|
|
|
if value:
|
|
|
|
set_config('MOZ_INSTRUMENTS', '1')
|
|
|
|
set_define('MOZ_INSTRUMENTS', '1')
|
|
|
|
add_old_configure_assignment('MOZ_INSTRUMENTS', '1')
|