gecko-dev/config/moz.build
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00

105 lines
3.5 KiB
Python

# -*- 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 = ("Firefox Build System", "General")
with Files("mozunit/**"):
BUG_COMPONENT = ("Testing", "Python Test")
DIST_INSTALL = False
# For sanity's sake, we compile nsinstall without the wrapped system
# headers, so that we can use it to set up the wrapped system headers.
NoVisibilityFlags()
CONFIGURE_SUBST_FILES += [
"tests/src-simple/Makefile",
]
if CONFIG["HOST_OS_ARCH"] != "WINNT":
HOST_SOURCES += [
"nsinstall.c",
"pathsub.c",
]
HostProgram("nsinstall_real")
PYTHON_UNITTEST_MANIFESTS += [
"tests/python.ini",
]
if CONFIG["CC_TYPE"] in ("clang", "gcc") and CONFIG["MOZ_OPTIMIZE"]:
CFLAGS += ["-O3"]
HOST_DEFINES["UNICODE"] = True
HOST_DEFINES["_UNICODE"] = True
include("stl-headers.mozbuild")
if CONFIG["WRAP_STL_INCLUDES"]:
stl_compiler = None
if CONFIG["OS_TARGET"] == "WINNT":
stl_compiler = "msvc"
else:
stl_compiler = "gcc"
if stl_compiler:
# Note that the 'stl_wrappers' folder is known to the build system as
# containing generated files; if this is changed here then the code in
# GeneratedFile.__init__ in python/mozbuild/mozbuild/frontend/data.py
# might need to be updated accordingly as well.
template_file = SRCDIR + "/%s-stl-wrapper.template.h" % stl_compiler
output_dir = "/dist/stl_wrappers"
# We have to use a sentinel file as the first file because the
# file_generate action will create it for us, but we want to create all
# the files in gen_wrappers()
outputs = tuple(
["stl.sentinel"] + ["%s/%s" % (output_dir, h) for h in stl_headers]
)
GeneratedFile(
*outputs,
script="make-stl-wrappers.py",
entry_point="gen_wrappers",
flags=[TOPOBJDIR + output_dir, stl_compiler, template_file] + stl_headers
)
# Wrap <windows.h> to make it easier to use correctly
# NOTE: If we aren't wrapping STL includes, we're building part of the browser
# which won't need this wrapper, such as L10N. Just don't try to generate the
# wrapper in that case.
if CONFIG["OS_TARGET"] == "WINNT":
GeneratedFile(
"/dist/stl_wrappers/windows.h",
script="make-windows-h-wrapper.py",
entry_point="generate",
inputs=[
"windows-h-constant.decls.h",
"windows-h-unicode.decls.h",
"windows-h-wrapper.template.h",
],
flags=[stl_compiler],
)
if CONFIG["WRAP_SYSTEM_INCLUDES"]:
include("system-headers.mozbuild")
output_dir = "/dist/system_wrappers"
outputs = tuple(
["system-header.sentinel"]
+ ["%s/%s" % (output_dir, h) for h in stl_headers + system_headers]
)
GeneratedFile(
*outputs,
script="make-system-wrappers.py",
entry_point="gen_wrappers",
flags=[TOPOBJDIR + output_dir] + stl_headers + system_headers
)
if CONFIG["COMPILE_ENVIRONMENT"] and CONFIG["CBINDGEN"]:
GeneratedFile(
"cbindgen-metadata.json",
script="/build/RunCbindgen.py",
entry_point="generate_metadata",
inputs=["!/.cargo/config"],
)