linux_simple.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # -*- coding: UTF-8 -*-
  2. # Copyright (c) 2017 The ungoogled-chromium Authors. All rights reserved.
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. """Linux Simple-specific build files generation code"""
  6. import shutil
  7. import pathlib
  8. from .. import _common
  9. from .. import export_resources as _export_resources
  10. from .. import build_gn as _build_gn
  11. from . import _common as _build_files_common
  12. _BUILD_FILES_DIR = "ungoogled_linux_simple"
  13. def _get_packaging_resources():
  14. return _common.get_resources_dir() / _common.PACKAGING_DIR / "linux_simple"
  15. def generate_build_files(resources, output_dir, build_output, apply_domain_substitution):
  16. """
  17. Generates the `linux_simple` directory in `output_dir` using resources from
  18. `resources`
  19. """
  20. gn_flags = resources.read_gn_flags()
  21. build_file_subs = dict(
  22. build_output=build_output,
  23. build_gn_command=_build_gn.construct_gn_command(
  24. pathlib.Path(build_output) / "gn",
  25. gn_flags,
  26. shell=True
  27. ),
  28. build_files_dir=_BUILD_FILES_DIR,
  29. gn_args_string=" ".join(
  30. [flag + "=" + value for flag, value in gn_flags.items()]
  31. )
  32. )
  33. linux_simple_dir = output_dir / _BUILD_FILES_DIR
  34. linux_simple_dir.mkdir(exist_ok=True)
  35. # Build script
  36. shutil.copy(
  37. str(_get_packaging_resources() / "build.sh.in"),
  38. str(linux_simple_dir / "build.sh.in")
  39. )
  40. _build_files_common.generate_from_templates(linux_simple_dir, build_file_subs)
  41. # Patches
  42. _export_resources.export_patches_dir(resources, linux_simple_dir / _common.PATCHES_DIR,
  43. apply_domain_substitution)
  44. _common.write_list(linux_simple_dir / _common.PATCHES_DIR / "series",
  45. resources.read_patch_order())