toolkit/crashreporter/moz.build
author Agi Sferro <agi@mozilla.com>
Thu, 20 Dec 2018 15:22:45 +0000
changeset 511518 12616753519d591246fa9578cc74a74b50414834
parent 496744 8d6329af610eb827b07f3cc5782fa1c77af2a271
child 516714 d0335e34cb16b1b59a49a262b9fd614c777a1677
permissions -rw-r--r--
Bug 1506658 - Add @Nullable or @NonNull to all APIs. r=snorp,rbarker,geckoview-reviewers Upgrading apilint to the 0.1.6 release will also ensure that new APIs have nullability annotations via the GV4 and GV5 lints, see [0]. [0]: https://github.com/mozilla-mobile/gradle-apilint/commit/b994c7ca9db056652ba4b5dd639437ddf2c5cc6f#diff-2c7de691a2642510f69b9ddf59276d85R569 Differential Revision: https://phabricator.services.mozilla.com/D14896

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

SPHINX_TREES['crashreporter'] = 'docs'

with Files('docs/**'):
    SCHEDULES.exclusive = ['docs']

GENERATED_FILES += [
    'CrashAnnotations.h',
]

EXPORTS += [
    '!CrashAnnotations.h',
    'nsExceptionHandler.h',
]

JAR_MANIFESTS += ['jar.mn']

UNIFIED_SOURCES = [
    'CrashAnnotations.cpp',
    'nsExceptionHandlerUtils.cpp',
]

FINAL_LIBRARY = 'xul'

if CONFIG['MOZ_CRASHREPORTER']:
    if CONFIG['OS_ARCH'] == 'WINNT':
        DIRS += [
            'google-breakpad/src/common',
            'google-breakpad/src/processor',
            'breakpad-windows-libxul',
        ]

        if CONFIG['MSVC_HAS_DIA_SDK']:
            DIRS += ['google-breakpad/src/tools/windows/dump_syms']

        if CONFIG['MOZ_CRASHREPORTER_INJECTOR']:
            DIRS += ['breakpad-windows-standalone']

    elif CONFIG['OS_ARCH'] == 'Darwin':
        DIRS += [
            'breakpad-client',
            'breakpad-client/mac/crash_generation',
            'breakpad-client/mac/handler',
            'google-breakpad/src/common',
            'google-breakpad/src/common/mac',
            'google-breakpad/src/processor',
            'google-breakpad/src/tools/mac/dump_syms',
            'rust',
        ]

    elif CONFIG['OS_ARCH'] == 'Linux':
        DIRS += [
            'breakpad-client',
            'breakpad-client/linux/',
            'google-breakpad/src/common',
            'google-breakpad/src/common/linux',
            'google-breakpad/src/processor',
            'google-breakpad/src/tools/linux/dump_syms',
            'rust',
        ]


    DIRS += [
        'client',
        'minidump-analyzer',
    ]

    if CONFIG['MOZ_CRASHREPORTER_INJECTOR']:
        DIRS += ['injector']
        UNIFIED_SOURCES += [
            'InjectCrashReporter.cpp',
            'LoadLibraryRemote.cpp',
        ]

    if CONFIG['ENABLE_TESTS']:
        DIRS += ['test/gtest']

    TEST_DIRS += ['test']

    UNIFIED_SOURCES += [
        'nsExceptionHandler.cpp',
        'ThreadAnnotation.cpp',
    ]

    if CONFIG['OS_ARCH'] == 'Darwin':
        UNIFIED_SOURCES += [
            'mac_utils.mm',
        ]

    EXTRA_JS_MODULES += [
        'CrashReports.jsm',
        'CrashSubmit.jsm',
        'KeyValueParser.jsm',
    ]

    include('/ipc/chromium/chromium-config.mozbuild')

    if CONFIG['OS_TARGET'] == 'Android':
        DEFINES['ANDROID_NDK_MAJOR_VERSION'] = CONFIG['ANDROID_NDK_MAJOR_VERSION']
        DEFINES['ANDROID_NDK_MINOR_VERSION'] = CONFIG['ANDROID_NDK_MINOR_VERSION']
        DEFINES['ANDROID_PACKAGE_NAME'] = '"%s"' % CONFIG['ANDROID_PACKAGE_NAME']
        # NDK5 workarounds
        DEFINES['_STLP_CONST_CONSTRUCTOR_BUG'] = True
        DEFINES['_STLP_NO_MEMBER_TEMPLATES'] = True
        LOCAL_INCLUDES += [
            '/toolkit/crashreporter/google-breakpad/src/common/android/include',
        ]

    DEFINES['UNICODE'] = True
    DEFINES['_UNICODE'] = True

    LOCAL_INCLUDES += [
        'google-breakpad/src',
    ]

    PYTHON_UNITTEST_MANIFESTS += [
        'tools/python.ini',
    ]

    include('/toolkit/crashreporter/crashreporter.mozbuild')

    if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
        CXXFLAGS += ['-Wno-shadow']
else:
    UNIFIED_SOURCES += [
        'nsDummyExceptionHandler.cpp',
    ]

# Generate CrashAnnotations.h
crash_annotations = GENERATED_FILES['CrashAnnotations.h']
crash_annotations.script = 'generate_crash_reporter_sources.py:emit_header'
crash_annotations.inputs = [
    'CrashAnnotations.h.in',
    'CrashAnnotations.yaml',
]

with Files('**'):
    BUG_COMPONENT = ('Toolkit', 'Crash Reporting')