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:
committed by
mfroman@mozilla.com
parent
e485a3d10a
commit
f940c62b9a
@@ -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"],
|
||||||
|
|||||||
Reference in New Issue
Block a user