# -*- 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('**/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',
]

if not CONFIG['JS_STANDALONE']:
    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',
    ]

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',
            'config/external/nss',
        ]

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

    DIRS += ['js/src']
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')