moz.build
author Axel Hecht <axel@pike.org>
Mon, 05 Jun 2017 10:28:33 +0200
changeset 411402 cd6899d44b57e758140f105f171bdd50b9299aca
parent 411396 83081a324efb68dacb018a4ea1ef8dea91796dba
child 425167 65558d987c7ea5b6f35cb09c1f444c7d4353935e
permissions -rw-r--r--
bug 1370176, generic configuration for l10n, r=flod,gps The current way to configure compare-locales has a lot of assumptions that make our l10n system really stubborn. The generic configuration is independent of python, and uses toml files for configuration. They're still modular, but there's only one file format. See http://moz-l10n-config.readthedocs.io/en/latest/fileformat.html for the specification. Also fixes a few nits in filter.py, where we compared the entity key as bool, which is false if we pass in ''. Explicitly compare as "entity is None" to be precise about when we're checking files. MozReview-Commit-ID: 5TmfobaImF4

# -*- 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('Android.mk'):
    BUG_COMPONENT = ('Firefox for Android', 'Build Config & IDE Support')

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')

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 += [
        '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',
        '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')