__init__.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import os
  2. from devtools.yamaker.modules import GLOBAL, Linkable, Switch
  3. from devtools.yamaker.project import CMakeNinjaNixProject
  4. def post_build(self):
  5. # make ares_build.h includeable from c-ares headers
  6. os.rename(
  7. f"{self.dstdir}/ares_build.h",
  8. f"{self.dstdir}/include/ares_build.h",
  9. )
  10. # make ares_config.h includeable from c-ares sources
  11. os.rename(
  12. f"{self.dstdir}/ares_config.h",
  13. f"{self.dstdir}/src/lib/ares_config.h",
  14. )
  15. def post_install(self):
  16. with self.yamakes["."] as c_ares:
  17. # remove autodetected ADDINCL for moved headers above
  18. c_ares.ADDINCL.remove(self.arcdir)
  19. c_ares.PEERDIR.add("contrib/libs/libc_compat")
  20. c_ares.SRCS.add("src/lib/atomic.cpp")
  21. c_ares.before(
  22. "SRCS",
  23. Switch({"NOT EXPORT_CMAKE": "CHECK_CONFIG_H(src/lib/ares_setup.h)"}),
  24. )
  25. c_ares.after(
  26. "CFLAGS",
  27. Switch(
  28. ARCH_ARM7=Linkable(CFLAGS=[GLOBAL("-D__SIZEOF_LONG__=4")]),
  29. ),
  30. )
  31. c_ares.after(
  32. "CFLAGS",
  33. Switch({"OS_DARWIN OR OS_IOS": Linkable(LDFLAGS=["-lresolv"])}),
  34. )
  35. c_ares.CFLAGS.append(GLOBAL("-DCARES_STATICLIB"))
  36. # atomic.cpp depends on util (IGNIETFERRO-1491)
  37. c_ares.NO_RUNTIME = False
  38. c_ares.NO_UTIL = False
  39. c_ares = CMakeNinjaNixProject(
  40. owners=["g:cpp-contrib"],
  41. arcdir="contrib/libs/c-ares",
  42. nixattr="c-ares",
  43. copy_sources=[
  44. "src/lib/ares_android.h",
  45. "src/lib/ares_iphlpapi.h",
  46. "src/lib/ares_writev.h",
  47. "src/lib/config-win32.h",
  48. "src/lib/thirdparty/apple",
  49. ],
  50. # Keep arcadia files.
  51. keep_paths=[
  52. "src/lib/atomic.cpp",
  53. "src/lib/atomic.h",
  54. ],
  55. addincl_global={
  56. ".": {"./include"},
  57. },
  58. install_targets={
  59. "cares",
  60. },
  61. put={
  62. "cares": ".",
  63. },
  64. platform_dispatchers=[
  65. "include/ares_build.h",
  66. "src/lib/ares_config.h",
  67. ],
  68. post_build=post_build,
  69. post_install=post_install,
  70. )