diff options
Diffstat (limited to 'build/moz.build')
-rw-r--r-- | build/moz.build | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/build/moz.build b/build/moz.build new file mode 100644 index 000000000..345ba9be0 --- /dev/null +++ b/build/moz.build @@ -0,0 +1,105 @@ +# -*- 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'] + +if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': + DIRS += ['annotationProcessors'] + +for var in ('GRE_MILESTONE', 'MOZ_APP_VERSION', 'MOZ_APP_BASENAME', + 'MOZ_APP_VENDOR', 'MOZ_APP_ID', 'MAR_CHANNEL_ID', + 'ACCEPTED_MAR_CHANNEL_IDS', 'MOZ_APP_REMOTINGNAME'): + DEFINES[var] = CONFIG[var] + +if CONFIG['MOZ_APP_DISPLAYNAME'] != CONFIG['MOZ_APP_BASENAME']: + DEFINES['MOZ_APP_DISPLAYNAME'] = CONFIG['MOZ_APP_DISPLAYNAME'] + +if CONFIG['MOZ_BUILD_APP'] == 'browser': + DEFINES['MOZ_BUILD_APP_IS_BROWSER'] = True + +if CONFIG['MOZ_APP_PROFILE']: + DEFINES['MOZ_APP_PROFILE'] = CONFIG['MOZ_APP_PROFILE'] + +for var in ('MOZ_CRASHREPORTER', 'MOZ_PROFILE_MIGRATOR', + 'MOZ_APP_STATIC_INI'): + if CONFIG[var]: + DEFINES[var] = True + +if CONFIG['MOZ_BUILD_APP'] == 'browser': + PYTHON_UNIT_TESTS += [ + 'compare-mozconfig/compare-mozconfigs-wrapper.py', + ] + +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['CLANG_CL']: + FINAL_TARGET_FILES += ['%' + CONFIG['MOZ_CLANG_RT_ASAN_LIB_PATH']] + +if CONFIG['MOZ_APP_BASENAME']: + FINAL_TARGET_PP_FILES += ['application.ini'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android' and CONFIG['MOZ_UPDATER']: + FINAL_TARGET_PP_FILES += ['update-settings.ini'] + + if CONFIG['MOZ_APP_STATIC_INI']: + GENERATED_FILES += ['application.ini.h'] + appini = GENERATED_FILES['application.ini.h'] + appini.script = 'appini_header.py' + appini.inputs = ['!/dist/bin/application.ini'] + +DEFINES['TOPOBJDIR'] = TOPOBJDIR + +# 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', + ] |