12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import os
- from devtools.yamaker.modules import GLOBAL, Linkable, Switch
- from devtools.yamaker.project import CMakeNinjaNixProject
- def post_build(self):
- # make ares_build.h includeable from c-ares headers
- os.rename(
- f"{self.dstdir}/ares_build.h",
- f"{self.dstdir}/include/ares_build.h",
- )
- # make ares_config.h includeable from c-ares sources
- os.rename(
- f"{self.dstdir}/ares_config.h",
- f"{self.dstdir}/src/lib/ares_config.h",
- )
- def post_install(self):
- with self.yamakes["."] as c_ares:
- # remove autodetected ADDINCL for moved headers above
- c_ares.ADDINCL.remove(self.arcdir)
- c_ares.PEERDIR.add("contrib/libs/libc_compat")
- c_ares.SRCS.add("src/lib/atomic.cpp")
- c_ares.before(
- "SRCS",
- Switch({"NOT EXPORT_CMAKE": "CHECK_CONFIG_H(src/lib/ares_setup.h)"}),
- )
- c_ares.after(
- "CFLAGS",
- Switch(
- ARCH_ARM7=Linkable(CFLAGS=[GLOBAL("-D__SIZEOF_LONG__=4")]),
- ),
- )
- c_ares.after(
- "CFLAGS",
- Switch({"OS_DARWIN OR OS_IOS": Linkable(LDFLAGS=["-lresolv"])}),
- )
- c_ares.CFLAGS.append(GLOBAL("-DCARES_STATICLIB"))
- # atomic.cpp depends on util (IGNIETFERRO-1491)
- c_ares.NO_RUNTIME = False
- c_ares.NO_UTIL = False
- c_ares = CMakeNinjaNixProject(
- owners=["g:cpp-contrib"],
- arcdir="contrib/libs/c-ares",
- nixattr="c-ares",
- copy_sources=[
- "src/lib/ares_android.h",
- "src/lib/ares_iphlpapi.h",
- "src/lib/ares_writev.h",
- "src/lib/config-win32.h",
- "src/lib/thirdparty/apple",
- ],
- # Keep arcadia files.
- keep_paths=[
- "src/lib/atomic.cpp",
- "src/lib/atomic.h",
- ],
- addincl_global={
- ".": {"./include"},
- },
- install_targets={
- "cares",
- },
- put={
- "cares": ".",
- },
- platform_dispatchers=[
- "include/ares_build.h",
- "src/lib/ares_config.h",
- ],
- post_build=post_build,
- post_install=post_install,
- )
|