__init__.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import os
  2. from devtools.yamaker import fileutil
  3. from devtools.yamaker.modules import GLOBAL, Linkable, Switch
  4. from devtools.yamaker.project import NixProject
  5. def post_install(self):
  6. fileutil.convert_to_utf8(f"{self.dstdir}/ChangeLog", from_="latin-1")
  7. fileutil.re_sub_file(f"{self.dstdir}/config.h", "#define [^ ]*_EXP_DE", r"// \g<0>")
  8. fileutil.re_sub_dir(self.dstdir, r'(# *include) "config\.h"', r'\1 "pcre_config.h"')
  9. fileutil.re_sub_dir(self.dstdir, r"(# *include) <(pcre.*)>", r'\1 "\2"')
  10. os.rename(f"{self.dstdir}/config.h", f"{self.dstdir}/pcre_config.h")
  11. with self.yamakes["."] as pcre:
  12. pcre.CFLAGS.insert(0, GLOBAL("-DPCRE_STATIC"))
  13. pcre.after(
  14. "CFLAGS",
  15. """
  16. # JIT adds ≈108KB to binary size which may be critical for mobile and embedded devices binary distributions
  17. DEFAULT(ARCADIA_PCRE_ENABLE_JIT yes)
  18. """.strip(),
  19. )
  20. pcre.after(
  21. "CFLAGS",
  22. Switch(ARCADIA_PCRE_ENABLE_JIT=Linkable(CFLAGS=["-DARCADIA_PCRE_ENABLE_JIT"])),
  23. )
  24. pcre = NixProject(
  25. arcdir="contrib/libs/pcre",
  26. nixattr="pcre",
  27. license="BSD-3-Clause",
  28. disable_includes=[
  29. "bits/type_traits.h",
  30. "sys/cache.h",
  31. "sljitNativeSPARC_64.c",
  32. "sljitProtExecAllocator.c",
  33. ],
  34. put_with={"pcre": ["pcreposix"]},
  35. install_targets=["pcre", "pcre16", "pcre32", "pcrecpp"],
  36. put={"pcre": "."},
  37. copy_sources=[
  38. "sljit/**",
  39. ],
  40. post_install=post_install,
  41. )