# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake flag-o-matic udev DESCRIPTION="INDI Astronomical Control Protocol library" HOMEPAGE="https://www.indilib.org/" if [[ ${PV} == "9999" ]]; then EGIT_REPO_URI="https://github.com/indilib/indi.git" inherit git-r3 else SRC_URI="https://github.com/indilib/indi/archive/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~x86" S="${WORKDIR}/indi-${PV}" fi LICENSE="BSD GPL-2+ LGPL-2+ LGPL-2.1+" SLOT="0/1" IUSE="ogg qt5 rtlsdr static-libs test websocket" RESTRICT="!test? ( test )" RDEPEND=" acct-group/indiserver acct-user/indiserver dev-cpp/cpp-httplib:= dev-cpp/nlohmann_json:= dev-libs/libev:= media-libs/libjpeg-turbo:= net-misc/curl sci-libs/cfitsio:= sci-libs/fftw:3.0= sci-libs/gsl:= sci-libs/libnova:= sys-libs/zlib:= virtual/libusb:1 ogg? ( media-libs/libogg media-libs/libtheora ) qt5? ( dev-qt/qtcore:5 dev-qt/qtnetwork:5 ) rtlsdr? ( net-wireless/rtl-sdr ) websocket? ( dev-libs/boost:= ) " DEPEND=" ${RDEPEND} kernel_linux? ( sys-kernel/linux-headers ) test? ( >=dev-cpp/gtest-1.8.0 ) websocket? ( dev-cpp/websocketpp ) " DOCS=( AUTHORS ChangeLog README ) PATCHES=( "${FILESDIR}/${P}-httplib.patch" ) src_configure() { # -Werror=odr # https://bugs.gentoo.org/878525 # https://github.com/indilib/indi/issues/2023 filter-lto local mycmakeargs=( -DINDI_SYSTEM_HTTPLIB=ON -DINDI_SYSTEM_JSONLIB=ON -DINDI_BUILD_QT5_CLIENT=$(usex qt5) -DINDI_BUILD_SHARED=ON -DINDI_BUILD_STATIC=$(usex static-libs) -DINDI_BUILD_XISF=OFF # not packaged -DUDEVRULES_INSTALL_DIR="${EPREFIX}$(get_udevdir)"/rules.d $(cmake_use_find_package ogg OggTheora) $(cmake_use_find_package rtlsdr RTLSDR) -DINDI_BUILD_UNITTESTS=$(usex test) -DINDI_BUILD_INTEGTESTS=$(usex test) -DINDI_BUILD_WEBSOCKET=$(usex websocket) ) cmake_src_configure } src_install() { cmake_src_install newinitd "${FILESDIR}/indiserver.sh" indiserver newconfd "${FILESDIR}/indiserver.conf" indiserver } src_test() { # Unit tests BUILD_DIR="${BUILD_DIR}"/test cmake_src_test # Integration tests # They fail in parallel because they try to bind to the same port more # than once. BUILD_DIR="${BUILD_DIR}"/integs cmake_src_test -j1 } pkg_postinst() { udev_reload elog "You can use init script in /etc/init.d/indiserver to start" elog "indiserver automatically." elog "Configuration is in /etc/conf.d/indiserver." } pkg_postrm() { udev_reload }