Bug 1578839 - Implement resizing of the browser with the embedded RDM UI. r=mtigley
[gecko.git] / security / moz.build
blob65c1c1a64c816f97f6ece2c5c69f31cb94bc393b
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 = ("Core", "Security: PSM")
10 with Files("generate*.py"):
11     BUG_COMPONENT = ("Firefox Build System", "General")
13 with Files("nss/**"):
14     BUG_COMPONENT = ("NSS", "Libraries")
16 with Files("nss.symbols"):
17     BUG_COMPONENT = ("NSS", "Libraries")
19 if CONFIG['MOZ_SYSTEM_NSS']:
20     Library('nss')
21     OS_LIBS += CONFIG['NSS_LIBS']
23 include('/build/gyp_base.mozbuild')
24 if CONFIG['MOZ_FOLD_LIBS']:
25     GeckoSharedLibrary('nss', linkage=None)
26     # TODO: The library name can be changed when bug 845217 is fixed.
27     SHARED_LIBRARY_NAME = 'nss3'
29     USE_LIBS += [
30         'nspr4',
31         'nss3_static',
32         'nssutil',
33         'plc4',
34         'plds4',
35         'smime3_static',
36         'ssl',
37     ]
39     OS_LIBS += CONFIG['REALTIME_LIBS']
41     SYMBOLS_FILE = 'nss.symbols'
42     # This changes the default targets in the NSS build, among
43     # other things.
44     gyp_vars['moz_fold_libs'] = 1
45     # Some things in NSS need to link against nssutil, which
46     # gets folded, so this tells them what to link against.
47     gyp_vars['moz_folded_library_name'] = 'nss'
48     # Force things in NSS that want to link against NSPR to link
49     # against the folded library.
50     gyp_vars['nspr_libs'] = 'nss'
51 elif not CONFIG['MOZ_SYSTEM_NSS']:
52     Library('nss')
53     USE_LIBS += [
54         'nss3',
55         'nssutil3',
56         'smime3',
57         'sqlite',
58         'ssl3',
59     ]
60     gyp_vars['nspr_libs'] = 'nspr'
61 else:
62     # Build mozpkix and mozpkix-test only
63     gyp_vars['nspr_libs'] = 'nspr'
64     gyp_vars['mozpkix_only'] = 1
66 # This disables building some NSS tools.
67 gyp_vars['mozilla_client'] = 1
69 # This builds NSS tools in COMM applications that Firefox doesn't build.
70 if CONFIG['MOZ_BUILD_APP'].startswith('comm/'):
71     gyp_vars['comm_client'] = 1
73 # We run shlibsign as part of packaging, not build.
74 gyp_vars['sign_libs'] = 0
75 gyp_vars['python'] = CONFIG['PYTHON']
76 # The NSS gyp files do not have a default for this.
77 gyp_vars['nss_dist_dir'] = '$PRODUCT_DIR/dist'
78 # NSS wants to put public headers in $nss_dist_dir/public/nss by default,
79 # which would wind up being mapped to dist/include/public/nss (by
80 # gyp_reader's `handle_copies`).
81 # This forces it to put them in dist/include/nss.
82 gyp_vars['nss_public_dist_dir'] = '$PRODUCT_DIR/dist'
83 gyp_vars['nss_dist_obj_dir'] = '$PRODUCT_DIR/dist/bin'
84 # We don't currently build NSS tests.
85 gyp_vars['disable_tests'] = 1
86 if CONFIG['NSS_DISABLE_DBM']:
87     gyp_vars['disable_dbm'] = 1
88 gyp_vars['disable_libpkix'] = 1
89 gyp_vars['enable_sslkeylogfile'] = 1
90 # pkg-config won't reliably find zlib on our builders, so just force it.
91 # System zlib is only used for modutil and signtool unless
92 # SSL zlib is enabled, which we are disabling immediately below this.
93 gyp_vars['zlib_libs'] = '-lz'
94 gyp_vars['ssl_enable_zlib'] = 0
95 # System sqlite here is the in-tree mozsqlite.
96 gyp_vars['use_system_sqlite'] = 1
97 gyp_vars['sqlite_libs'] = 'sqlite'
100 if CONFIG['MOZ_SYSTEM_NSPR']:
101     gyp_vars['nspr_include_dir'] = '%' + CONFIG['NSPR_INCLUDE_DIR']
102     gyp_vars['nspr_lib_dir'] = '%' + CONFIG['NSPR_LIB_DIR']
103 else:
104     gyp_vars['nspr_include_dir'] = '!/dist/include/nspr'
105     gyp_vars['nspr_lib_dir'] = ''  # gyp wants a value, but we don't need
106                                    # it to be valid.
108 # The Python scripts that detect clang need it to be set as CC
109 # in the environment, which isn't true here. I don't know that
110 # setting that would be harmful, but we already have this information
111 # anyway.
112 if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
113     gyp_vars['cc_is_clang'] = 1
114 if CONFIG['GCC_USE_GNU_LD']:
115     gyp_vars['cc_use_gnu_ld'] = 1
117 GYP_DIRS += ['nss']
118 GYP_DIRS['nss'].input = 'nss/nss.gyp'
119 GYP_DIRS['nss'].variables = gyp_vars
121 sandbox_vars = {
122     # NSS explicitly exports its public symbols
123     # with linker scripts.
124     'COMPILE_FLAGS': {
125         'VISIBILITY': [],
126         # XXX: We should fix these warnings.
127         'WARNINGS_AS_ERRORS': [],
128     },
129     # NSS' build system doesn't currently build NSS with PGO.
130     # We could probably do so, but not without a lot of
131     # careful consideration.
132     'NO_PGO': True,
134 if CONFIG['OS_TARGET'] == 'WINNT':
135     # We want to remove XP_WIN32 eventually. See bug 1535219 for details.
136     sandbox_vars['CFLAGS'] = ['-DXP_WIN32']
137     if CONFIG['CPU_ARCH'] == 'x86':
138         # This should really be the default.
139         sandbox_vars['ASFLAGS'] = ['-safeseh']
140     if CONFIG['MOZ_FOLD_LIBS_FLAGS']:
141         sandbox_vars['CFLAGS'] += CONFIG['MOZ_FOLD_LIBS_FLAGS']
142 if CONFIG['OS_TARGET'] == 'Android':
143     sandbox_vars['CFLAGS'] = [
144         '-include', TOPSRCDIR + '/security/manager/android_stub.h',
145         # Setting sandbox_vars['DEFINES'] is broken currently.
146         '-DCHECK_FORK_GETPID',
147     ]
148     if CONFIG['ANDROID_VERSION']:
149         sandbox_vars['CFLAGS'] += ['-DANDROID_VERSION=' + CONFIG['ANDROID_VERSION']]
150 if CONFIG['MOZ_SYSTEM_NSS']:
151     sandbox_vars['CXXFLAGS'] = CONFIG['NSS_CFLAGS']
152 GYP_DIRS['nss'].sandbox_vars = sandbox_vars
153 GYP_DIRS['nss'].no_chromium = True
154 GYP_DIRS['nss'].no_unified = True
155 # This maps action names from gyp files to
156 # Python scripts that can be used in moz.build GENERATED_FILES.
157 GYP_DIRS['nss'].action_overrides = {
158     'generate_certdata_c': 'generate_certdata.py',
159     'generate_mapfile': 'generate_mapfile.py',
162 if CONFIG['NSS_EXTRA_SYMBOLS_FILE']:
163     DEFINES['NSS_EXTRA_SYMBOLS_FILE'] = CONFIG['NSS_EXTRA_SYMBOLS_FILE']