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

UNIFIED_SOURCES += [
    'json_reader.cpp',
    'json_value.cpp',
    'json_writer.cpp'
]

LOCAL_INCLUDES += [
    '/toolkit/components/jsoncpp/include',
]

# This code is only used in the stand-alone minidump analyzer executable so
# enabling exceptions should be fine.
if CONFIG['CC_TYPE'] == 'clang-cl':
    CXXFLAGS += [
        '-Xclang',
        '-fcxx-exceptions',
    ]
elif CONFIG['CC_TYPE'] not in ('msvc', 'clang-cl'):
    CXXFLAGS += [
        '-fexceptions',
    ]

# Required to build with exceptions enabled
DisableStlWrapping()

Library('jsoncpp')

# Suppress warnings in third-party code.
if CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'):
    CXXFLAGS += [
        '-wd4005', # macro redefinition
    ]
elif CONFIG['CC_TYPE'] in ('clang', 'gcc'):
    CXXFLAGS += [
        '-Wno-unused-local-typedefs',
        '-Wno-shadow',
    ]

if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
    CXXFLAGS += [
        '-Wno-c++11-narrowing',
    ]

if CONFIG['CC_TYPE'] in ('clang', 'clang-cl', 'gcc'):
    CXXFLAGS += [
        '-Wno-implicit-fallthrough',
    ]
