moz.build
author Henri Sivonen <hsivonen@hsivonen.fi>
Wed, 04 Oct 2017 13:11:27 +0300
changeset 384999 7abbc56b3bb78983e83d86a563799b9f4d538d53
parent 382209 aa31b00d8eb1fc10976b554442d3dae9b96c60de
child 385647 ab7615bac4ee05b8371a7f9571ca88fb482a073f
permissions -rw-r--r--
Bug 1405615 - encoding_rs 0.7.1: Correctly encode U+DC00 followed by another low surrogate from UTF-16. r=emk. `wrapping_sub()`-based high surrogate check was off by one due to error in copy and paste when defining the constant to compare against. That is, the subtraction that defines the constant was completely wrong but the result of the subtraction was only off by one, which is why the bug wasn't discovered immediately. This lead to the first low surrogate (U+DC00), and only the first low surrogate, getting accepted as a high surrogate. Discovered using cargo-fuzz. MozReview-Commit-ID: K3Ptws31WuV

# -*- 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/.

with Files('AUTHORS'):
    BUG_COMPONENT = ('mozilla.org', 'Licensing')

with Files('LICENSE'):
    BUG_COMPONENT = ('mozilla.org', 'Licensing')

with Files('LEGAL'):
    BUG_COMPONENT = ('mozilla.org', 'Licensing')

with Files('aclocal.m4'):
    BUG_COMPONENT = ('Core', 'Build Config')

with Files('client.*'):
    BUG_COMPONENT = ('Core', 'Build Config')

with Files('CLOBBER'):
    BUG_COMPONENT = ('Core', 'Build Config')

with Files('*configure*'):
    BUG_COMPONENT = ('Core', 'Build Config')

with Files('mach'):
    BUG_COMPONENT = ('Core', 'mach')

with Files('*moz*'):
    BUG_COMPONENT = ('Core', 'Build Config')

with Files('GNUmakefile'):
    BUG_COMPONENT = ('Core', 'Build Config')

with Files('*gradle*'):
    BUG_COMPONENT = ('Firefox for Android', 'Build Config & IDE Support')
    SCHEDULES.exclusive = ['android']

with Files('**/l10n.toml'):
    BUG_COMPONENT = ('Core', 'Localization')
    FINAL = True

with Files('README.txt'):
    BUG_COMPONENT = ('Core', 'General')

with Files('**/Makefile.in'):
    BUG_COMPONENT = ('Core', 'Build Config')
    FINAL = True

FILES_PER_UNIFIED_FILE = 1

CONFIGURE_SUBST_FILES += [
    'config/autoconf.mk',
    'config/emptyvars.mk',
]

if CONFIG['ENABLE_CLANG_PLUGIN']:
    DIRS += ['build/clang-plugin']

DIRS += [
    'config',
    'python',
    'taskcluster',
    'testing/mozbase',
    'third_party/python',
]

if not CONFIG['JS_STANDALONE']:
    # These python manifests are included here so they get picked up without an objdir
    PYTHON_UNITTEST_MANIFESTS += [
        'layout/tools/reftest/selftest/python.ini',
        'testing/marionette/harness/marionette_harness/tests/harness_unit/python.ini',
        'testing/mochitest/tests/python/python.ini',
    ]

    CONFIGURE_SUBST_FILES += [
        'tools/update-packaging/Makefile',
    ]
    CONFIGURE_DEFINE_FILES += [
        'mozilla-config.h',
    ]
    EXPORTS += [
        '!buildid.h',
        '!mozilla-config.h',
        '!source-repo.h',
    ]

    GENERATED_FILES += [
        'buildid.h',
        'source-repo.h',
    ]

    GENERATED_FILES['buildid.h'].script = 'build/variables.py:buildid_header'
    GENERATED_FILES['source-repo.h'].script = 'build/variables.py:source_repo_header'

    DIRS += [
        'build',
        'tools',
        'probes',
    ]

if CONFIG['COMPILE_ENVIRONMENT']:
    DIRS += ['js/src']

DIRS += [
    'config/external/fdlibm',
    'config/external/nspr',
    'config/external/zlib',
    'memory',
    'mfbt',
    'mozglue',
]

if not CONFIG['JS_STANDALONE']:
    DIRS += ['xpcom/xpidl']

if CONFIG['USE_ICU']:
    DIRS += ['config/external/icu']

if CONFIG['COMPILE_ENVIRONMENT']:
    if not CONFIG['JS_STANDALONE']:
        DIRS += [
            'config/external',
            'security',
        ]

    if CONFIG['BUILD_CTYPES']:
        DIRS += ['config/external/ffi']

else:
    TEST_DIRS += ['js/src/tests']

if not CONFIG['JS_STANDALONE'] and CONFIG['MOZ_BUILD_APP']:
    # Bring in the configuration for the configured application.
    include('/' + CONFIG['MOZ_BUILD_APP'] + '/app.mozbuild')

CONFIGURE_SUBST_FILES += ['.cargo/config']

include('build/templates.mozbuild')