Bug 1874644 [wpt PR 43993] - Rewrite prerender-while-prerender.html with a different...
[gecko.git] / config / moz.build
blob3280aac27e100635850282e98832877b3b0574d9
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")
10 with Files("mozunit/**"):
11     BUG_COMPONENT = ("Testing", "Python Test")
13 DIST_INSTALL = False
14 # For sanity's sake, we compile nsinstall without the wrapped system
15 # headers, so that we can use it to set up the wrapped system headers.
16 NoVisibilityFlags()
18 CONFIGURE_SUBST_FILES += [
19     "tests/src-simple/Makefile",
22 if CONFIG["HOST_OS_ARCH"] != "WINNT":
23     HOST_SOURCES += [
24         "nsinstall.c",
25         "pathsub.c",
26     ]
27     HostProgram("nsinstall_real")
29 PYTHON_UNITTEST_MANIFESTS += [
30     "tests/python.toml",
33 if CONFIG["CC_TYPE"] in ("clang", "gcc") and CONFIG["MOZ_OPTIMIZE"]:
34     CFLAGS += ["-O3"]
36 HOST_DEFINES["UNICODE"] = True
37 HOST_DEFINES["_UNICODE"] = True
39 include("stl-headers.mozbuild")
40 if CONFIG["WRAP_STL_INCLUDES"]:
41     stl_compiler = None
42     if CONFIG["OS_TARGET"] == "WINNT":
43         stl_compiler = "msvc"
44     else:
45         stl_compiler = "gcc"
47     if stl_compiler:
48         # Note that the 'stl_wrappers' folder is known to the build system as
49         # containing generated files; if this is changed here then the code in
50         # GeneratedFile.__init__ in python/mozbuild/mozbuild/frontend/data.py
51         # might need to be updated accordingly as well.
52         template_file = "%s-stl-wrapper.template.h" % stl_compiler
53         output_dir = "/dist/stl_wrappers"
54         # We have to use a sentinel file as the first file because the
55         # file_generate action will create it for us, but we want to create all
56         # the files in gen_wrappers()
57         outputs = tuple(
58             ["stl.sentinel"] + ["%s/%s" % (output_dir, h) for h in stl_headers]
59         )
60         GeneratedFile(
61             *outputs,
62             script="make-stl-wrappers.py",
63             entry_point="gen_wrappers",
64             inputs=[template_file],
65             flags=[TOPOBJDIR + output_dir, stl_compiler] + stl_headers
66         )
68     # Wrap <windows.h> to make it easier to use correctly
69     # NOTE: If we aren't wrapping STL includes, we're building part of the browser
70     # which won't need this wrapper, such as L10N. Just don't try to generate the
71     # wrapper in that case.
72     if CONFIG["OS_TARGET"] == "WINNT":
73         GeneratedFile(
74             "/dist/stl_wrappers/windows.h",
75             script="make-windows-h-wrapper.py",
76             entry_point="generate",
77             inputs=[
78                 "windows-h-constant.decls.h",
79                 "windows-h-unicode.decls.h",
80                 "windows-h-wrapper.template.h",
81             ],
82             flags=[stl_compiler],
83         )
84         GeneratedFile(
85             "/dist/stl_wrappers/shlwapi.h",
86             script="make-windows-h-wrapper.py",
87             entry_point="generate",
88             inputs=[
89                 "shlwapi-h-constant.decls.h",
90                 "shlwapi-h-unicode.decls.h",
91                 "shlwapi-h-wrapper.template.h",
92             ],
93             flags=[stl_compiler],
94         )
96 if CONFIG["WRAP_SYSTEM_INCLUDES"]:
97     include("system-headers.mozbuild")
98     output_dir = "/dist/system_wrappers"
99     outputs = tuple(
100         ["system-header.sentinel"]
101         + ["%s/%s" % (output_dir, h) for h in stl_headers + system_headers]
102     )
103     GeneratedFile(
104         *outputs,
105         script="make-system-wrappers.py",
106         entry_point="gen_wrappers",
107         flags=[TOPOBJDIR + output_dir] + stl_headers + system_headers
108     )
110 if CONFIG["COMPILE_ENVIRONMENT"] and CONFIG["CBINDGEN"]:
111     GeneratedFile(
112         "cbindgen-metadata.json",
113         script="/build/RunCbindgen.py",
114         entry_point="generate_metadata",
115         inputs=["!/.cargo/config"],
116     )