Bug 1604100 [wpt PR 20784] - HtmlImportsRequestInitiatorLock: Check imports controlle...
[gecko.git] / build / moz.build
blob42c1e3afed11f5c0088786bbb60dcb47862ddc71
1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2 # vim: set filetype=python:
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 with Files('**'):
8     BUG_COMPONENT = ('Firefox Build System', 'General')
9 with Files("mobile/**"):
10     BUG_COMPONENT = ("Firefox for Android", "Testing")
12 # This cannot be named "build" because of bug 922191.
13 SPHINX_TREES['buildsystem'] = 'docs'
15 with Files('docs/**'):
16     SCHEDULES.exclusive = ['docs']
18 if CONFIG['OS_ARCH'] == 'WINNT':
19     DIRS += ['win32']
20 else:
21     DIRS += ['unix']
23 CRAMTEST_MANIFESTS += [
24     'tests/cram/cram.ini',
27 DEFINES['ACCEPTED_MAR_CHANNEL_IDS'] = CONFIG['ACCEPTED_MAR_CHANNEL_IDS']
29 if CONFIG['MOZ_BUILD_APP'] == 'browser':
30     PYTHON_UNITTEST_MANIFESTS += [
31         'compare-mozconfig/python.ini',
32     ]
34 if CONFIG['ENABLE_TESTS'] or CONFIG['MOZ_DMD']:
35     FINAL_TARGET_FILES += ['/tools/rb/fix_stack_using_bpsyms.py']
36     if CONFIG['OS_ARCH'] == 'Darwin':
37         FINAL_TARGET_FILES += ['/tools/rb/fix_macosx_stack.py']
38     if CONFIG['OS_ARCH'] == 'Linux':
39         FINAL_TARGET_FILES += ['/tools/rb/fix_linux_stack.py']
41 if CONFIG['MOZ_DMD']:
42     FINAL_TARGET_FILES += ['/memory/replace/dmd/dmd.py']
44 # Put a useful .gdbinit in the bin directory, to be picked up automatically
45 # by GDB when we debug executables there.
46 FINAL_TARGET_FILES += ['/.gdbinit']
47 FINAL_TARGET_PP_FILES += ['.gdbinit_python.in']
48 OBJDIR_FILES += ['!/dist/bin/.gdbinit_python']
50 # Install the clang-cl runtime library for ASAN next to the binaries we produce.
51 if CONFIG['MOZ_ASAN'] and CONFIG['CC_TYPE'] == 'clang-cl':
52     FINAL_TARGET_FILES += ['%' + CONFIG['MOZ_CLANG_RT_ASAN_LIB_PATH']]
53     FINAL_TARGET_FILES += ['%' + CONFIG['MOZ_CLANG_RT_ASAN_LIB_PATH'].replace(".dll", ".pdb")]
55 # Install the clang runtime library for ASAN next to the binaries we produce.
56 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android' and CONFIG['MOZ_ASAN']:
57     FINAL_TARGET_FILES += ['%' + CONFIG['MOZ_CLANG_RT_ASAN_LIB_PATH']]
59 if CONFIG['LLVM_SYMBOLIZER']:
60     FINAL_TARGET_FILES += ['/' + CONFIG['LLVM_SYMBOLIZER']]
62 if CONFIG['MOZ_APP_BASENAME']:
63     appini_defines = {
64         'TOPOBJDIR': TOPOBJDIR,
65     }
67     for var in ('GRE_MILESTONE', 'MOZ_APP_VERSION', 'MOZ_APP_BASENAME',
68                 'MOZ_APP_VENDOR', 'MOZ_APP_ID', 'MAR_CHANNEL_ID',
69                 'MOZ_APP_REMOTINGNAME'):
70         appini_defines[var] = CONFIG[var]
72     if CONFIG['MOZ_APP_DISPLAYNAME'] != CONFIG['MOZ_APP_BASENAME']:
73         appini_defines['MOZ_APP_DISPLAYNAME'] = CONFIG['MOZ_APP_DISPLAYNAME']
75     if CONFIG['MOZ_BUILD_APP'] == 'browser':
76         appini_defines['MOZ_BUILD_APP_IS_BROWSER'] = True
78     if CONFIG['MOZ_APP_PROFILE']:
79         appini_defines['MOZ_APP_PROFILE'] = CONFIG['MOZ_APP_PROFILE']
81     for var in ('MOZ_CRASHREPORTER', 'MOZ_PROFILE_MIGRATOR'):
82         if CONFIG[var]:
83             appini_defines[var] = True
85     GeneratedFile(
86         'application.ini',
87         script='../python/mozbuild/mozbuild/action/preprocessor.py',
88         entry_point='generate',
89         inputs=['application.ini.in'],
90         flags=['-D%s=%s' % (k, '1' if v is True else v)
91                for k, v in appini_defines.iteritems()])
92     
93     FINAL_TARGET_FILES += ['!application.ini']
94     if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android' and CONFIG['MOZ_UPDATER']:
95         FINAL_TARGET_PP_FILES += ['update-settings.ini']
97     GeneratedFile('application.ini.h', script='appini_header.py',
98                   inputs=['!application.ini'])
100 if CONFIG['ENABLE_TESTS']:
101     GeneratedFile('automation.py', script='gen_automation.py',
102                   inputs=['automation.py.in'])
104     TEST_HARNESS_FILES.reftest += [
105         '!automation.py',
106     ]
108     TEST_HARNESS_FILES.testing.mochitest += [
109         '!automation.py',
110     ]
112 # NOTE: Keep .gdbinit in the topsrcdir for people who run gdb from the topsrcdir.
113 OBJDIR_FILES += ['/.gdbinit']
115 # Put a .lldbinit in the bin directory and the objdir, to be picked up
116 # automatically by LLDB when we debug executables using either of those two
117 # directories as the current working directory.  The .lldbinit file will
118 # load $(topsrcdir)/.lldbinit, which is where the actual debugging commands are.
119 DEFINES['topsrcdir'] = TOPSRCDIR
120 DEFINES['topobjdir'] = TOPOBJDIR
121 FINAL_TARGET_PP_FILES += ['.lldbinit.in']
122 OBJDIR_FILES += ['!/dist/bin/.lldbinit']
124 # Put the .ycm_extra_conf.py file at the root of the objdir. It is used by
125 # the vim plugin YouCompleteMe.
126 OBJDIR_FILES += ['/.ycm_extra_conf.py']
128 if CONFIG['MOZ_VALGRIND']:
129     OBJDIR_FILES._valgrind += [
130         'valgrind/cross-architecture.sup',
131         'valgrind/i386-pc-linux-gnu.sup',
132         'valgrind/x86_64-pc-linux-gnu.sup',
133     ]