nng-1.9.0xoores
download
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake-multilib multibuild
DESCRIPTION="Light-weight brokerless messaging"
HOMEPAGE="https://nng.nanomsg.org/"
SRC_URI="https://github.com/nanomsg/nng/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
# compat and deprecated match upstream's default choice
IUSE="+compat +deprecated doc ssl static-libs test tools"
DEPEND="ssl? ( net-libs/mbedtls[${MULTILIB_USEDEP}] )"
RDEPEND="${DEPEND}"
BDEPEND="doc? ( dev-ruby/asciidoctor )"
RESTRICT="test" # Needs network
DOCS=(README.adoc RELEASE_NOTES.adoc docs/RATIONALE.adoc)
multilib_src_configure() {
myconfig() {
local mycmakeargs=(
-DNNG_ELIDE_DEPRECATED=$(usex deprecated OFF ON)
-DNNG_ENABLE_COMPAT=$(usex compat ON OFF)
-DNNG_ENABLE_TLS=$(usex ssl ON OFF)
-DNNG_TESTS=$(usex test ON OFF)
)
if [[ ${MULTIBUILD_VARIANT} = static-libs ]]; then
# Build tools against the shared library
mycmakeargs+=(
-DBUILD_SHARED_LIBS=OFF
-DNNG_ENABLE_DOC=OFF
-DNNG_ENABLE_NNGCAT=OFF
-DNNG_TOOLS=OFF
)
else
mycmakeargs+=( -DBUILD_SHARED_LIBS=ON )
if multilib_is_native_abi; then
mycmakeargs+=(
-DNNG_ENABLE_DOC=$(usex doc ON OFF)
-DNNG_ENABLE_NNGCAT=$(usex tools ON OFF)
-DNNG_TOOLS=$(usex tools ON OFF)
)
else
mycmakeargs+=(
-DNNG_ENABLE_DOC=OFF
-DNNG_ENABLE_NNGCAT=OFF
-DNNG_TOOLS=OFF
)
fi
fi
cmake_src_configure
}
MULTIBUILD_VARIANTS=($(usev static-libs) shared)
multibuild_foreach_variant myconfig
}
multilib_src_compile() {
MULTIBUILD_VARIANTS=($(usev static-libs) shared)
multibuild_foreach_variant cmake_src_compile
}
multilib_src_install() {
MULTIBUILD_VARIANTS=($(usev static-libs) shared)
multibuild_foreach_variant cmake_src_install
}
multilib_src_test() {
MULTIBUILD_VARIANTS=($(usev static-libs) shared)
multibuild_foreach_variant cmake_src_compile test
}