# -*- mode: python; -*-
import sys

Import("env")

env = env.Clone()

env.Append(
    CPPDEFINES=['BSON_COMPILATION'],
    CPPPATH=["dist/src/common"],
)

if env.ToolchainIs('msvc'):
    env.Append(CCFLAGS=['/wd4388', '/wd4389', '/wd4146', '/wd4018'])  # msvc sign-compare warnings
else:
    if sys.platform == 'darwin':
        env.Append(CCFLAGS=['-Wno-unguarded-availability-new'])

    env.Append(CCFLAGS=['-Wno-sign-compare'])

env.Library(
    target="libbson",
    source=[
        'dist/src/common/common-b64.c',
        'dist/src/common/common-md5.c',
        'dist/src/common/common-thread.c',
        'dist/src/libbson/src/bson/bcon.c',
        'dist/src/libbson/src/bson/bson-atomic.c',
        'dist/src/libbson/src/bson/bson.c',
        'dist/src/libbson/src/bson/bson-clock.c',
        'dist/src/libbson/src/bson/bson-context.c',
        'dist/src/libbson/src/bson/bson-decimal128.c',
        'dist/src/libbson/src/bson/bson-error.c',
        'dist/src/libbson/src/bson/bson-iso8601.c',
        'dist/src/libbson/src/bson/bson-iter.c',
        'dist/src/libbson/src/bson/bson-json.c',
        'dist/src/libbson/src/bson/bson-keys.c',
        'dist/src/libbson/src/bson/bson-md5.c',
        'dist/src/libbson/src/bson/bson-memory.c',
        'dist/src/libbson/src/bson/bson-oid.c',
        'dist/src/libbson/src/bson/bson-reader.c',
        'dist/src/libbson/src/bson/bson-string.c',
        'dist/src/libbson/src/bson/bson-timegm.c',
        'dist/src/libbson/src/bson/bson-utf8.c',
        'dist/src/libbson/src/bson/bson-value.c',
        'dist/src/libbson/src/bson/bson-version-functions.c',
        'dist/src/libbson/src/bson/bson-writer.c',
        'dist/src/libbson/src/jsonsl/jsonsl.c',
    ],
    LIBDEPS_TAGS=[
        'init-no-global-side-effects',
    ],
)
