gecko-dev/toolkit/crashreporter/moz.build
Mike Hommey 4913b1c2d2 Bug 1523204 - Streamline the DIA SDK setup. r=chmanchester
We currently rely on WIN_DIA_SDK_BIN_DIR being passed, but we can
actually derive it from the DIA SDK directory. So we now do that, except
when it's given explicitly.

While in the vicinity, move the dia2.h check to python configure.

With WIN_DIA_SDK_BIN_DIR being derived and not set when dia2.h is not
found, we don't really need MSVC_HAS_DIA_SDK anymore, so we just check
for WIN_DIA_SDK_BIN_DIR to determine whether to build dump_syms or not.

One exception to the above is when WIN_DIA_SDK_BIN_DIR is passed in,
which we only keep for the in-tree mozconfigs for now. We'll remove that
possibility after bug 1523201.

Depends on D17892

Differential Revision: https://phabricator.services.mozilla.com/D17893

--HG--
extra : moz-landing-system : lando
2019-01-29 07:38:14 +00:00

144 lines
3.8 KiB
Python

# -*- 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['WIN_DIA_SDK_BIN_DIR']:
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')