# -*- 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/. with Files('**'): BUG_COMPONENT = ('Core', 'Build Config') # This cannot be named "build" because of bug 922191. SPHINX_TREES['buildsystem'] = 'docs' if CONFIG['OS_ARCH'] == 'WINNT': DIRS += ['win32'] else: DIRS += ['unix'] CRAMTEST_MANIFESTS += [ 'tests/cram/cram.ini', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': DIRS += ['annotationProcessors'] DEFINES['ACCEPTED_MAR_CHANNEL_IDS'] = CONFIG['ACCEPTED_MAR_CHANNEL_IDS'] if CONFIG['MOZ_BUILD_APP'] == 'browser': PYTHON_UNITTEST_MANIFESTS += [ 'compare-mozconfig/python.ini', ] if CONFIG['ENABLE_TESTS'] or CONFIG['MOZ_DMD']: FINAL_TARGET_FILES += ['/tools/rb/fix_stack_using_bpsyms.py'] if CONFIG['OS_ARCH'] == 'Darwin': FINAL_TARGET_FILES += ['/tools/rb/fix_macosx_stack.py'] if CONFIG['OS_ARCH'] == 'Linux': FINAL_TARGET_FILES += ['/tools/rb/fix_linux_stack.py'] if CONFIG['MOZ_DMD']: FINAL_TARGET_FILES += ['/memory/replace/dmd/dmd.py'] # Put a useful .gdbinit in the bin directory, to be picked up automatically # by GDB when we debug executables there. FINAL_TARGET_FILES += ['/.gdbinit'] FINAL_TARGET_PP_FILES += ['.gdbinit_python.in'] OBJDIR_FILES += ['!/dist/bin/.gdbinit_python'] # Install the clang-cl runtime library for ASAN next to the binaries we produce. if CONFIG['MOZ_ASAN'] and CONFIG['CC_TYPE'] == 'clang-cl': FINAL_TARGET_FILES += ['%' + CONFIG['MOZ_CLANG_RT_ASAN_LIB_PATH']] if CONFIG['LLVM_SYMBOLIZER']: FINAL_TARGET_FILES += ['/' + CONFIG['LLVM_SYMBOLIZER']] if CONFIG['MOZ_APP_BASENAME']: appini_defines = { 'TOPOBJDIR': TOPOBJDIR, } for var in ('GRE_MILESTONE', 'MOZ_APP_VERSION', 'MOZ_APP_BASENAME', 'MOZ_APP_VENDOR', 'MOZ_APP_ID', 'MAR_CHANNEL_ID', 'MOZ_APP_REMOTINGNAME'): appini_defines[var] = CONFIG[var] if CONFIG['MOZ_APP_DISPLAYNAME'] != CONFIG['MOZ_APP_BASENAME']: appini_defines['MOZ_APP_DISPLAYNAME'] = CONFIG['MOZ_APP_DISPLAYNAME'] if CONFIG['MOZ_BUILD_APP'] == 'browser': appini_defines['MOZ_BUILD_APP_IS_BROWSER'] = True if CONFIG['MOZ_APP_PROFILE']: appini_defines['MOZ_APP_PROFILE'] = CONFIG['MOZ_APP_PROFILE'] for var in ('MOZ_CRASHREPORTER', 'MOZ_PROFILE_MIGRATOR'): if CONFIG[var]: appini_defines[var] = True GENERATED_FILES += ['application.ini'] appini = GENERATED_FILES['application.ini'] appini.script = '../python/mozbuild/mozbuild/action/preprocessor.py:generate' appini.inputs = ['application.ini.in'] appini.flags = ['-D%s=%s' % (k, '1' if v is True else v) for k, v in appini_defines.iteritems()] FINAL_TARGET_FILES += ['!application.ini'] if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android' and CONFIG['MOZ_UPDATER']: FINAL_TARGET_PP_FILES += ['update-settings.ini'] GENERATED_FILES += ['application.ini.h'] appini = GENERATED_FILES['application.ini.h'] appini.script = 'appini_header.py' appini.inputs = ['!application.ini'] # NOTE: Keep .gdbinit in the topsrcdir for people who run gdb from the topsrcdir. OBJDIR_FILES += ['/.gdbinit'] # Put a .lldbinit in the bin directory and the objdir, to be picked up # automatically by LLDB when we debug executables using either of those two # directories as the current working directory. The .lldbinit file will # load $(topsrcdir)/.lldbinit, which is where the actual debugging commands are. DEFINES['topsrcdir'] = TOPSRCDIR FINAL_TARGET_PP_FILES += ['.lldbinit.in'] OBJDIR_FILES += ['!/dist/bin/.lldbinit'] # Put the .ycm_extra_conf.py file at the root of the objdir. It is used by # the vim plugin YouCompleteMe. OBJDIR_FILES += ['/.ycm_extra_conf.py'] if CONFIG['MOZ_VALGRIND']: OBJDIR_FILES._valgrind += [ 'valgrind/cross-architecture.sup', 'valgrind/i386-redhat-linux-gnu.sup', 'valgrind/x86_64-redhat-linux-gnu.sup', ] if CONFIG['MOZ_ARTIFACT_BUILDS']: # Ensure a pre-built interfaces.xpt installed to the objdir by the artifact # code is included by the top-level chrome.manifest. EXTRA_COMPONENTS += [ 'prebuilt-interfaces.manifest', ]