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

Library('stlport')
# Keep the same name as the NDK-provided library, while using a shorter
# name for the Library for convenience in moz.build.
STATIC_LIBRARY_NAME = 'stlport_static'

FORCE_STATIC_LIB = True

SOURCES += [
    'src/allocators.cpp',
    'src/bitset.cpp',
    'src/codecvt.cpp',
    'src/collate.cpp',
    'src/complex.cpp',
    'src/complex_io.cpp',
    'src/complex_trig.cpp',
    'src/ctype.cpp',
    'src/dll_main.cpp',
    'src/facets_byname.cpp',
    'src/fstream.cpp',
    'src/ios.cpp',
    'src/iostream.cpp',
    'src/istream.cpp',
    'src/locale.cpp',
    'src/locale_catalog.cpp',
    'src/locale_impl.cpp',
    'src/messages.cpp',
    'src/monetary.cpp',
    'src/num_get.cpp',
    'src/num_get_float.cpp',
    'src/num_put.cpp',
    'src/num_put_float.cpp',
    'src/numpunct.cpp',
    'src/ostream.cpp',
    'src/sstream.cpp',
    'src/stdio_streambuf.cpp',
    'src/string.cpp',
    'src/strstream.cpp',
    'src/time_facets.cpp',
]

SOURCES += [
    'src/c_locale.c',
    'src/cxa.c',
]

DEFINES['_GNU_SOURCE'] = True

LOCAL_INCLUDES += [
    'stlport',
]

DISABLE_STL_WRAPPING = True
NO_VISIBILITY_FLAGS = True

# Suppress warnings in third-party code.
if CONFIG['GNU_CXX']:
    CXXFLAGS += [
        '-Wno-empty-body',
        '-Wno-type-limits',
        '-Wno-unused-local-typedefs',
    ]

# Force to build a static library, instead of a fake library, without
# installing it in dist/lib.
NO_EXPAND_LIBS = True

# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True
