# -*- Mode: python; c-basic-offset: 4; 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('**'):
    BUG_COMPONENT = ('Core', 'Build Config')

DIST_INSTALL = False
# For sanity's sake, we compile nsinstall without the wrapped system
# headers, so that we can use it to set up the wrapped system headers.
NO_VISIBILITY_FLAGS = True

CONFIGURE_SUBST_FILES += [
    'doxygen.cfg',
    'makefiles/test/Makefile',
    'tests/makefiles/autodeps/Makefile',
    'tests/src-simple/Makefile',
]

if CONFIG['HOST_OS_ARCH'] != 'WINNT':
    HOST_SOURCES += [
        'nsinstall.c',
        'pathsub.c',
    ]
    HostProgram('nsinstall_real')

if CONFIG['MOZ_SHARED_ICU']:
    DEFINES['MOZ_SHARED_ICU'] = True

PYTHON_UNIT_TESTS += [
    'tests/test_mozbuild_reading.py',
    'tests/unit-expandlibs.py',
    'tests/unit-mozunit.py',
    'tests/unit-nsinstall.py',
    'tests/unit-printprereleasesuffix.py',
]

if CONFIG['GNU_CC'] and CONFIG['MOZ_OPTIMIZE']:
    CFLAGS += ['-O3']

HOST_DEFINES = {
    'UNICODE': True,
    '_UNICODE': True,
}
