# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=5 inherit eutils toolchain-funcs multilib # TODO: FHS https://github.com/luvit/luvit/issues/379 DESCRIPTION="Takes node.js' architecture and dependencies and fits it in the Lua language" HOMEPAGE="https://luvit.io/" SRC_URI="https://luvit.io/dist/latest/${P}.tar.gz" KEYWORDS="~amd64 ~x86" SLOT="0" IUSE="bundled-libs examples libressl" # luvit Apache-2.0 # luajit MIT # yajl BSD LICENSE="Apache-2.0 bundled-libs? ( BSD MIT )" # fails in portage environment # succeeds if run manually RESTRICT="test" RDEPEND=" !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) sys-libs/zlib !bundled-libs? ( dev-lang/luajit:2[lua52compat] >=dev-libs/yajl-2.0.2 net-libs/http-parser )" DEPEND="${RDEPEND} virtual/pkgconfig" src_prepare() { rm -r deps/{openssl,zlib} || die epatch "${FILESDIR}"/${PN}-0.7.0-unbundle-http-parser.patch if use bundled-libs ; then sed -i \ -e "s/-Werror//" \ -e "s/-O3//" \ deps/http-parser/Makefile || die "fixing flags failed!" else rm -r deps/{luajit,yajl,http-parser} || die # TODO: no version detection for http-parser yet MY_YAJL_VERSION=$($(tc-getPKG_CONFIG) --modversion yajl) MY_LUAJIT_VERSION=$($(tc-getPKG_CONFIG) --modversion luajit) sed -i \ -e "s:^YAJL_VERSION=.*:YAJL_VERSION=${MY_YAJL_VERSION}:" \ -e "s:^LUAJIT_VERSION=.*:LUAJIT_VERSION=${MY_LUAJIT_VERSION}:" \ Makefile || die "setting yajl version failed" fi } src_configure() { # skip retarded gyp build system : } src_compile() { tc-export CC AR emake -C deps/cares myemakeargs=( DEBUG=0 WERROR=0 USE_SYSTEM_SSL=1 # bundled luajit is compiled with special flags USE_SYSTEM_LUAJIT=$(usex bundled-libs "0" "1") USE_SYSTEM_YAJL=$(usex bundled-libs "0" "1") USE_SYSTEM_HTTPPARSER=$(usex bundled-libs "0" "1") USE_SYSTEM_ZLIB=1 PREFIX=/usr LIBDIR="${D%/}"/usr/$(get_libdir)/${PN} DESTDIR="${D}" ) emake "${myemakeargs[@]}" all } src_install() { emake "${myemakeargs[@]}" install dodoc TODO ChangeLog README.markdown errors.markdown if use examples ; then dodoc -r examples docompress -x /usr/share/doc/${PF}/examples fi }