# -*- Mode: python; 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/. if CONFIG['JS_SHELL_NAME']: GeckoProgram(CONFIG['JS_SHELL_NAME'], linkage=None) if CONFIG['JS_BUNDLED_EDITLINE']: USE_LIBS += ['editline'] USE_LIBS += ['static:js'] UNIFIED_SOURCES += [ 'js.cpp', 'jsoptparse.cpp', 'jsshell.cpp', 'OSObject.cpp' ] DEFINES['EXPORT_JS_API'] = True # Also set in ../moz.build DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True if CONFIG['_MSC_VER']: # unnecessary PGO for js shell. But gcc cannot turn off pgo because it is # necessary to link PGO lib on gcc when a object/static lib are compiled # for PGO. NO_PGO = True LOCAL_INCLUDES += [ '!..', '..', ] OS_LIBS += CONFIG['EDITLINE_LIBS'] OS_LIBS += CONFIG['MOZ_ZLIB_LIBS'] if CONFIG['MOZ_ICU_DATA_ARCHIVE']: # The ICU libraries linked into libmozjs will not include the ICU data, # so link it directly. USE_LIBS += ['icudata'] # Prepare module loader JS code for embedding GENERATED_FILES += ['shellmoduleloader.out.h'] shellmoduleloader = GENERATED_FILES['shellmoduleloader.out.h'] shellmoduleloader.script = '../builtin/embedjs.py:generate_shellmoduleloader' shellmoduleloader.inputs = [ '../js.msg', 'ModuleLoader.js', ] if CONFIG['GNU_CXX']: CXXFLAGS += ['-Wno-shadow', '-Werror=format'] # This is intended as a temporary workaround to enable VS2015. if CONFIG['_MSC_VER']: CXXFLAGS += ['-wd4312'] # Place a GDB Python auto-load file next to the shell executable, both in # the build directory and in the dist/bin directory. DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR FINAL_TARGET_PP_FILES += ['js-gdb.py.in'] OBJDIR_FILES.js.src.shell += ['!/dist/bin/js-gdb.py'] # People expect the js shell to wind up in the top-level JS dir. OBJDIR_FILES.js.src += ['!js%s' % CONFIG['BIN_SUFFIX']]