summaryrefslogtreecommitdiffstats
path: root/build/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'build/moz.build')
-rw-r--r--build/moz.build105
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',
+ ]