DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
# -*- 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']

EXPORTS += [
    'nsExceptionHandler.h',
]

JAR_MANIFESTS += ['jar.mn']

UNIFIED_SOURCES = [
    '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',
        ]

    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',
        ]


    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',
    ]


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