Bug 1967834 - move writing individual moz.build file to separate function for clarity. r=ng DONTBUILD

Differential Revision: https://phabricator.services.mozilla.com/D250517
This commit is contained in:
Michael Froman
2025-05-21 21:59:27 +00:00
committed by mfroman@mozilla.com
parent e485a3d10a
commit f940c62b9a

View File

@@ -514,43 +514,11 @@ def find_common_attrs(config_attributes):
return common_attrs return common_attrs
def write_mozbuild( def write_mozbuild(topsrcdir, write_mozbuild_variables, relsrcdir, configs):
topsrcdir,
srcdir,
non_unified_sources,
gn_configs,
mozilla_flags,
write_mozbuild_variables,
):
all_mozbuild_results = []
for gn_config in gn_configs:
mozbuild_attrs = process_gn_config(
gn_config,
topsrcdir,
srcdir,
non_unified_sources,
gn_config["sandbox_vars"],
mozilla_flags,
)
all_mozbuild_results.append(mozbuild_attrs)
# Translate {config -> {dirs -> build info}} into
# {dirs -> [(config, build_info)]}
configs_by_dir = defaultdict(list)
for config_attrs in all_mozbuild_results:
mozbuild_args = config_attrs["mozbuild_args"]
dirs = config_attrs["dirs"]
for d, build_data in dirs.items():
configs_by_dir[d].append((mozbuild_args, build_data))
mozbuilds = set()
for relsrcdir, configs in sorted(configs_by_dir.items()):
target_srcdir = mozpath.join(topsrcdir, relsrcdir) target_srcdir = mozpath.join(topsrcdir, relsrcdir)
mkdir(target_srcdir) mkdir(target_srcdir)
target_mozbuild = mozpath.join(target_srcdir, "moz.build") target_mozbuild = mozpath.join(target_srcdir, "moz.build")
mozbuilds.add(target_mozbuild)
with open(target_mozbuild, "w") as fh: with open(target_mozbuild, "w") as fh:
mb = MozbuildWriter(fh) mb = MozbuildWriter(fh)
mb.write(license_header) mb.write(license_header)
@@ -571,16 +539,11 @@ def write_mozbuild(
except KeyError: except KeyError:
pass pass
try: try:
if ( if relsrcdir in write_mozbuild_variables["INCLUDE_SYSTEM_LIBDRM_HANDLING"]:
relsrcdir
in write_mozbuild_variables["INCLUDE_SYSTEM_LIBDRM_HANDLING"]
):
mb.write('CXXFLAGS += CONFIG["MOZ_LIBDRM_CFLAGS"]\n') mb.write('CXXFLAGS += CONFIG["MOZ_LIBDRM_CFLAGS"]\n')
mb.write('if not CONFIG["MOZ_SYSTEM_LIBDRM"]:\n') mb.write('if not CONFIG["MOZ_SYSTEM_LIBDRM"]:\n')
mb.write(' LOCAL_INCLUDES += [ "/third_party/drm/drm/",\n') mb.write(' LOCAL_INCLUDES += [ "/third_party/drm/drm/",\n')
mb.write( mb.write(' "/third_party/drm/drm/include/",\n')
' "/third_party/drm/drm/include/",\n'
)
mb.write( mb.write(
' "/third_party/drm/drm/include/libdrm" ]\n' ' "/third_party/drm/drm/include/libdrm" ]\n'
) )
@@ -597,20 +560,14 @@ def write_mozbuild(
except KeyError: except KeyError:
pass pass
try: try:
if ( if relsrcdir in write_mozbuild_variables["INCLUDE_SYSTEM_LIBVPX_HANDLING"]:
relsrcdir
in write_mozbuild_variables["INCLUDE_SYSTEM_LIBVPX_HANDLING"]
):
mb.write('if not CONFIG["MOZ_SYSTEM_LIBVPX"]:\n') mb.write('if not CONFIG["MOZ_SYSTEM_LIBVPX"]:\n')
mb.write(' LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]\n') mb.write(' LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]\n')
mb.write(' CXXFLAGS += CONFIG["MOZ_LIBVPX_CFLAGS"]\n') mb.write(' CXXFLAGS += CONFIG["MOZ_LIBVPX_CFLAGS"]\n')
except KeyError: except KeyError:
pass pass
try: try:
if ( if relsrcdir in write_mozbuild_variables["INCLUDE_SYSTEM_DAV1D_HANDLING"]:
relsrcdir
in write_mozbuild_variables["INCLUDE_SYSTEM_DAV1D_HANDLING"]
):
mb.write('if CONFIG["MOZ_SYSTEM_AV1"]:\n') mb.write('if CONFIG["MOZ_SYSTEM_AV1"]:\n')
mb.write(' CXXFLAGS += CONFIG["MOZ_SYSTEM_DAV1D_CFLAGS"]\n') mb.write(' CXXFLAGS += CONFIG["MOZ_SYSTEM_DAV1D_CFLAGS"]\n')
mb.write(' CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBAOM_CFLAGS"]\n') mb.write(' CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBAOM_CFLAGS"]\n')
@@ -656,6 +613,45 @@ def write_mozbuild(
mb.terminate_condition() mb.terminate_condition()
mb.finalize() mb.finalize()
return target_mozbuild
def write_mozbuild_files(
topsrcdir,
srcdir,
non_unified_sources,
gn_configs,
mozilla_flags,
write_mozbuild_variables,
):
all_mozbuild_results = []
for gn_config in gn_configs:
mozbuild_attrs = process_gn_config(
gn_config,
topsrcdir,
srcdir,
non_unified_sources,
gn_config["sandbox_vars"],
mozilla_flags,
)
all_mozbuild_results.append(mozbuild_attrs)
# Translate {config -> {dirs -> build info}} into
# {dirs -> [(config, build_info)]}
configs_by_dir = defaultdict(list)
for config_attrs in all_mozbuild_results:
mozbuild_args = config_attrs["mozbuild_args"]
dirs = config_attrs["dirs"]
for d, build_data in dirs.items():
configs_by_dir[d].append((mozbuild_args, build_data))
mozbuilds = set()
# threading this section did not produce noticeable speed gains
for relsrcdir, configs in sorted(configs_by_dir.items()):
mozbuilds.add(
write_mozbuild(topsrcdir, write_mozbuild_variables, relsrcdir, configs)
)
# write the project moz.build file # write the project moz.build file
dirs_mozbuild = mozpath.join(srcdir, "moz.build") dirs_mozbuild = mozpath.join(srcdir, "moz.build")
@@ -847,7 +843,7 @@ def main():
) )
print("Writing moz.build files") print("Writing moz.build files")
write_mozbuild( write_mozbuild_files(
topsrcdir, topsrcdir,
topsrcdir / config["build_root_dir"] / config["target_dir"], topsrcdir / config["build_root_dir"] / config["target_dir"],
config["non_unified_sources"], config["non_unified_sources"],