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
with Files("**"):
BUG_COMPONENT = ("Core", "Preferences: Backend")
if CONFIG["ENABLE_TESTS"]:
DIRS += ["test/gtest"]
XPCSHELL_TESTS_MANIFESTS += [
"test/unit/xpcshell.toml",
"test/unit_ipc/xpcshell.toml",
]
BROWSER_CHROME_MANIFESTS += ["test/browser/browser.toml"]
XPIDL_SOURCES += [
"nsIPrefBranch.idl",
"nsIPrefLocalizedString.idl",
"nsIPrefService.idl",
"nsIRelativeFilePref.idl",
]
XPIDL_MODULE = "pref"
pref_groups = [
"accessibility",
"alerts",
"apz",
"beacon",
"bidi",
"browser",
"channelclassifier",
"clipboard",
"content",
"converter",
"cookiebanners",
"datareporting",
"device",
"devtools",
"docshell",
"dom",
"editor",
"extensions",
"fission",
"font",
"full_screen_api",
"general",
"geo",
"gfx",
"gl",
"html5",
"idle_period",
"image",
"intl",
"javascript",
"layers",
"layout",
"logging",
"mathml",
"media",
"memory",
"middlemouse",
"midi",
"mousewheel",
"mozilla",
"network",
"nglayout",
"page_load",
"pdfjs",
"permissions",
"places",
"plain_text",
"preferences",
"print",
"privacy",
"prompts",
"security",
"signon",
"slider",
"storage",
"svg",
"telemetry",
"test",
"threads",
"timer",
"toolkit",
"ui",
"urlclassifier",
"view_source",
"webgl",
"widget",
"zoom",
]
if CONFIG["OS_TARGET"] == "Android":
pref_groups += [
"android",
"consoleservice",
]
if CONFIG["FUZZING"]:
pref_groups += ["fuzzing"]
pref_groups = tuple(sorted(pref_groups))
# Note: generate_static_pref_list.py relies on StaticPrefListAll.h being first.
gen_h = ["init/StaticPrefListAll.h"]
gen_h += ["StaticPrefsAll.h"]
gen_h += ["init/StaticPrefList_{}.h".format(pg) for pg in pref_groups]
gen_h += ["StaticPrefs_{}.h".format(pg) for pg in pref_groups]
gen_cpp = ["init/StaticPrefsCGetters.cpp"]
gen_rs = ["static_prefs.rs"]
EXPORTS.mozilla += [
"init/StaticPrefListBegin.h",
"init/StaticPrefListEnd.h",
"nsRelativeFilePref.h",
"Preferences.h",
"StaticPrefsBase.h",
]
EXPORTS.mozilla += sorted(["!" + g for g in gen_h])
UNIFIED_SOURCES += [
"Preferences.cpp",
"SharedPrefMap.cpp",
]
gen_all_tuple = tuple(gen_h + gen_cpp + gen_rs)
GeneratedFile(
*gen_all_tuple,
script="init/generate_static_pref_list.py",
entry_point="emit_code",
inputs=["init/StaticPrefList.yaml"]
)
PYTHON_UNITTEST_MANIFESTS += [
"test/python.toml",
]
XPCOM_MANIFESTS += [
"components.conf",
]
SPHINX_TREES["/modules/libpref"] = "docs"
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
DEFINES["OS_ARCH"] = CONFIG["OS_ARCH"]
DEFINES["MOZ_WIDGET_TOOLKIT"] = CONFIG["MOZ_WIDGET_TOOLKIT"]
if CONFIG["MOZ_SERVICES_SYNC"]:
DEFINES["MOZ_SERVICES_SYNC"] = True
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_BUILD_APP_IS_BROWSER"] = True
if CONFIG["MOZ_WEBEXT_WEBIDL_ENABLED"]:
DEFINES["MOZ_WEBEXT_WEBIDL_ENABLED"] = True
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
if not CONFIG["MOZ_ANDROID_FAT_AAR_ARCHITECTURES"]:
FINAL_TARGET_PP_FILES[CONFIG["ANDROID_CPU_ARCH"]] += [
"greprefs.js",
]
else:
for arch in CONFIG["MOZ_ANDROID_FAT_AAR_ARCHITECTURES"]:
FINAL_TARGET_FILES[arch] += [
"!/dist/fat-aar/output/{arch}/greprefs.js".format(arch=arch),
]
else:
FINAL_TARGET_PP_FILES += [
"greprefs.js",
]