107 lines
2.1 KiB
Bash
107 lines
2.1 KiB
Bash
# Copyright 1999-2023 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
DISTUTILS_OPTIONAL=1
|
|
DISTUTILS_USE_PEP517=setuptools
|
|
PYTHON_COMPAT=( pypy3 python3_{9..11} )
|
|
|
|
inherit cmake toolchain-funcs flag-o-matic distutils-r1
|
|
|
|
DESCRIPTION="A data templating language for app and tool developers"
|
|
HOMEPAGE="https://jsonnet.org/"
|
|
SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
IUSE="custom-optimization doc examples python test"
|
|
|
|
LICENSE="Apache-2.0"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
|
|
RDEPEND="
|
|
dev-cpp/rapidyaml:=
|
|
dev-cpp/nlohmann_json:=
|
|
python? ( ${PYTHON_DEPS} )
|
|
"
|
|
|
|
DEPEND="
|
|
${RDEPEND}
|
|
test? ( dev-cpp/gtest )
|
|
"
|
|
|
|
BDEPEND="
|
|
python? (
|
|
${PYTHON_DEPS}
|
|
${DISTUTILS_DEPS}
|
|
dev-python/setuptools[${PYTHON_USEDEP}]
|
|
)
|
|
"
|
|
RESTRICT="!test? ( test )"
|
|
|
|
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/jsonnet-0.12.1-dont-call-make-from-setuppy.patch"
|
|
"${FILESDIR}/jsonnet-0.16.0-libdir.patch"
|
|
"${FILESDIR}/jsonnet-0.16.0-cp-var.patch"
|
|
"${FILESDIR}/jsonnet-0.18.0-unbundle.patch"
|
|
)
|
|
|
|
distutils_enable_tests unittest
|
|
|
|
src_prepare() {
|
|
cmake_src_prepare
|
|
use python && distutils-r1_src_prepare
|
|
}
|
|
|
|
src_configure() {
|
|
use custom-optimization || replace-flags '-O*' -O3
|
|
tc-export CC CXX
|
|
|
|
local mycmakeargs=(
|
|
-DUSE_SYSTEM_JSON=ON
|
|
-DBUILD_STATIC_LIBS=OFF
|
|
)
|
|
|
|
if use test; then
|
|
mycmakeargs+=(
|
|
-DBUILD_TESTS=ON
|
|
-DUSE_SYSTEM_GTEST=ON
|
|
)
|
|
else
|
|
mycmakeargs+=(
|
|
-DBUILD_TESTS=OFF
|
|
)
|
|
fi
|
|
|
|
cmake_src_configure
|
|
}
|
|
|
|
src_compile() {
|
|
cmake_src_compile
|
|
use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_compile
|
|
}
|
|
|
|
src_test() {
|
|
cmake_src_test
|
|
use python && CMAKE_BUILD_DIR="${BUILD_DIR}" distutils-r1_src_test
|
|
}
|
|
|
|
python_test() {
|
|
LD_LIBRARY_PATH="${CMAKE_BUILD_DIR}" "${EPYTHON}" -m unittest python._jsonnet_test -v \
|
|
|| die "Tests failed with ${EPYTHON}"
|
|
}
|
|
|
|
src_install() {
|
|
cmake_src_install
|
|
use python && distutils-r1_src_install
|
|
|
|
if use doc; then
|
|
find doc -name '.gitignore' -delete || die
|
|
docinto html
|
|
dodoc -r doc/.
|
|
fi
|
|
if use examples; then
|
|
docinto examples
|
|
dodoc -r examples/.
|
|
fi
|
|
}
|