Source code
Revision control
Copy as Markdown
Other Tools
# -*- 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
@imports(_from="__builtin__", _import="open")
@imports("os")
def get_nss_version():
nss_version = [0, 0]
topsrcdir = os.path.realpath(os.path.join(os.path.dirname(__file__), "..", ".."))
with open(
os.path.join(topsrcdir, "security", "nss", "lib", "nss", "nss.h"), "r"
) as f:
for line in f:
if "NSS_VMAJOR" in line:
nss_version[0] = line.split()[-1]
if "NSS_VMINOR" in line:
nss_version[1] = line.split()[-1]
if "NSS_VPATCH" in line:
patch = line.split()[-1]
if patch != "0":
nss_version.append(line.split()[-1])
return ".".join(nss_version)
system_lib_option(
"--with-system-nss",
help="Use system NSS",
when=use_pkg_config,
)
imply_option("--with-system-nspr", True, when="--with-system-nss")
nss_pkg = pkg_check_modules(
"NSS", "nss >= " + get_nss_version(), when="--with-system-nss", config=False
)
set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss")
@depends(nss_pkg, build_environment)
def nss_config(nss_pkg, build_env):
cflags = ["-I%s" % os.path.join(build_env.dist, "include", "nss")]
libs = None
if nss_pkg:
cflags = list(nss_pkg.cflags) + cflags
libs = nss_pkg.libs
return namespace(cflags=cflags, libs=libs)
set_config("NSS_CFLAGS", nss_config.cflags)
set_config("NSS_LIBS", nss_config.libs)
# Used specifically by Thunderbird
project_flag(
env="NSS_EXTRA_SYMBOLS_FILE",
nargs=1,
help="Path to a file containing extra symbols to export from NSS",
)