mozjs_sys 0.67.1

System crate for the Mozilla SpiderMonkey JavaScript engine.
# -*- 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/.

features = []

if CONFIG['JS_CODEGEN_X64'] or CONFIG['JS_CODEGEN_X86']:
    features += ['cranelift_x86']
elif CONFIG['JS_CODEGEN_ARM']:
    features += ['cranelift_arm32']
elif CONFIG['JS_CODEGEN_ARM64']:
    features += ['cranelift_arm64']
else:
    features += ['cranelift_none']

RustLibrary('jsrust', features)

CONFIGURE_SUBST_FILES += ['extra-bindgen-flags']

if CONFIG['JS_SHARED_LIBRARY']:
    FINAL_LIBRARY = 'js'

if CONFIG['OS_ARCH'] == 'Darwin':
    # The Rust standard library references libresolv on macOS, so we need to
    # link it as a workaround. See also bug 1367932.
    OS_LIBS += ['-lresolv']
elif CONFIG['OS_ARCH'] == 'WINNT':
    # Extra libraries used by Rust bindings libs in debug builds.
    OS_LIBS += [
        'shell32',
        'userenv',
        'ws2_32',
    ]