# Copyright 2020-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # These must be bumped together: # dev-cpp/edencommon # dev-cpp/folly # dev-util/watchman # TODO: Split into different variables then combine for each component? # Not all is in rust/ dir. # Rust components: # - thirdparty/deelevate_binding/Cargo.toml # - rust/watchman_client/Cargo.toml # - rust/serde_bser/Cargo.toml # - cli/Cargo.toml CRATES=" ahash@0.8.3 ansi_term@0.12.1 anyhow@1.0.71 atty@0.2.14 autocfg@1.1.0 bitflags@1.3.2 byteorder@1.4.3 bytes@1.4.0 cfg-if@1.0.0 clap@2.34.0 core-foundation-sys@0.8.4 crossbeam-channel@0.5.8 crossbeam-deque@0.8.3 crossbeam-epoch@0.9.15 crossbeam-queue@0.3.8 crossbeam-utils@0.8.16 crossbeam@0.8.2 duct@0.13.6 either@1.8.1 futures-channel@0.3.28 futures-core@0.3.28 futures-executor@0.3.28 futures-io@0.3.28 futures-macro@0.3.28 futures-sink@0.3.28 futures-task@0.3.28 futures-util@0.3.28 futures@0.1.31 futures@0.3.28 getrandom@0.2.10 heck@0.3.3 hermit-abi@0.1.19 hermit-abi@0.2.6 itoa@1.0.6 jwalk@0.6.2 lazy_static@1.4.0 libc@0.2.146 lock_api@0.4.10 log@0.4.19 maplit@1.0.2 memchr@2.5.0 memoffset@0.6.5 memoffset@0.9.0 mio@0.8.8 nix@0.25.1 ntapi@0.4.1 num_cpus@1.15.0 once_cell@1.18.0 os_pipe@1.1.4 parking_lot@0.12.1 parking_lot_core@0.9.8 pin-project-lite@0.2.9 pin-utils@0.1.0 proc-macro-error-attr@1.0.4 proc-macro-error@1.0.4 proc-macro2@1.0.60 quote@1.0.28 rayon-core@1.11.0 rayon@1.7.0 redox_syscall@0.3.5 ryu@1.0.13 scopeguard@1.1.0 serde@1.0.164 serde_bytes@0.11.9 serde_derive@1.0.164 serde_json@1.0.99 shared_child@1.0.0 signal-hook-registry@1.4.1 slab@0.4.8 smallvec@1.10.0 socket2@0.4.9 strsim@0.8.0 structopt-derive@0.4.18 structopt@0.3.26 syn@1.0.109 syn@2.0.20 sysinfo@0.26.9 tabular@0.2.0 textwrap@0.11.0 thiserror-impl@1.0.40 thiserror@1.0.40 tokio-macros@2.1.0 tokio-util@0.6.10 tokio@1.28.2 tracing-core@0.1.31 tracing@0.1.37 unicode-ident@1.0.9 unicode-segmentation@1.10.1 unicode-width@0.1.10 vec_map@0.8.2 version_check@0.9.4 wasi@0.11.0+wasi-snapshot-preview1 winapi-i686-pc-windows-gnu@0.4.0 winapi-x86_64-pc-windows-gnu@0.4.0 winapi@0.3.9 windows-sys@0.48.0 windows-targets@0.48.0 windows_aarch64_gnullvm@0.48.0 windows_aarch64_msvc@0.48.0 windows_i686_gnu@0.48.0 windows_i686_msvc@0.48.0 windows_x86_64_gnu@0.48.0 windows_x86_64_gnullvm@0.48.0 windows_x86_64_msvc@0.48.0 " DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{10..12} ) # stdsimd RUST_MAX_VER="1.77.1" inherit cargo cmake distutils-r1 tmpfiles DESCRIPTION="A file watching service" HOMEPAGE="https://facebook.github.io/watchman/" SRC_URI="https://github.com/facebook/watchman/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" SRC_URI+=" ${CARGO_CRATE_URIS}" LICENSE="Apache-2.0" # Dependent crate licenses LICENSE+=" MIT Unicode-DFS-2016 || ( Apache-2.0 Boost-1.0 ) " SLOT="0" KEYWORDS="amd64" IUSE="llvm-libunwind python" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" # See https://github.com/facebook/watchman/blob/main/CMakeLists.txt#L342 for libevent # /dev/null || die distutils-r1_src_compile popd >/dev/null || die fi } src_test() { cmake_src_test if use python ; then pushd watchman/python >/dev/null || die distutils-r1_src_test popd >/dev/null || die fi } src_install() { cmake_src_install newtmpfiles "${FILESDIR}"/watchman.tmpfiles watchman.conf if use python ; then pushd watchman/python >/dev/null || die distutils-r1_src_install popd >/dev/null || die fi } pkg_postinst() { tmpfiles_process watchman.conf }