Files
guru/sci-libs/dart/dart-6.12.1-r2.ebuild
Alessandro Barbieri c095b9684f sci-libs/dart: reduce number of useflags
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
2022-05-03 22:21:35 +02:00

170 lines
4.4 KiB
Bash

# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
CMAKE_BUILD_TYPE="Release"
inherit cmake python-single-r1
DESCRIPTION="Dynamic Animation and Robotics Toolkit"
HOMEPAGE="
https://dartsim.github.io
https://github.com/dartsim/dart
"
SRC_URI="https://github.com/dartsim/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc examples extras osg python test tutorials
cpu_flags_x86_mmx cpu_flags_x86_mmxext cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3
cpu_flags_x86_ssse3 cpu_flags_x86_sse4a cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx
cpu_flags_x86_avx2 cpu_flags_x86_avx512dq cpu_flags_x86_avx512f cpu_flags_x86_avx512vl
cpu_flags_x86_3dnow cpu_flags_x86_3dnowext cpu_flags_ppc_vsx cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3
cpu_flags_ppc_altivec cpu_flags_arm_neon cpu_flags_arm_iwmmxt cpu_flags_arm_iwmmxt2 cpu_flags_arm_neon"
#TODO: pagmo
RDEPEND="
app-arch/lz4
>=dev-cpp/eigen-3.0.5
dev-games/ode
dev-libs/boost
dev-libs/tinyxml2
dev-libs/urdfdom
>=media-libs/assimp-3.0.0
media-libs/freeglut
media-libs/imgui:=[glut(-),opengl(-)]
media-libs/lodepng:=
>=sci-libs/libccd-2.0
>=sci-libs/fcl-0.2.9
sci-libs/flann
sci-libs/ipopt
>=sci-libs/nlopt-2.4.1
sci-libs/octomap
sci-physics/bullet
virtual/opengl
examples? ( dev-cpp/tiny-dnn )
osg? ( dev-games/openscenegraph )
python? (
${PYTHON_DEPS}
$(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
)
"
DEPEND="
${RDEPEND}
dev-libs/urdfdom_headers
extras? ( dev-cpp/gtest )
test? ( dev-cpp/gtest )
"
BDEPEND="
app-text/dos2unix
doc? ( app-doc/doxygen )
test? ( python? ( $(python_gen_cond_dep 'dev-python/pytest[${PYTHON_USEDEP}]') ) )
"
RESTRICT="!test? ( test )"
PATCHES=(
"${FILESDIR}/${P}-no-deprecated-examples.patch"
"${FILESDIR}/${PN}-respect-ldflags.patch"
"${FILESDIR}/${P}-respect-cflags.patch"
"${FILESDIR}/${P}-use-system-gtest.patch"
"${FILESDIR}/${P}-use-system-lodepng-imgui.patch"
)
REQUIRED_USE="
python? (
${PYTHON_REQUIRED_USE}
osg
)
"
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_prepare() {
# delete bundled libs
rm -r unittests/gtest || die
rm -r dart/external/{imgui,lodepng} || die
# delete deprecated examples
rm -r examples/deprecated_examples || die
dos2unix unittests/CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
local simd=OFF
use cpu_flags_x86_mmx && simd=ON
use cpu_flags_x86_mmxext && simd=ON
use cpu_flags_x86_sse && simd=ON
use cpu_flags_x86_sse2 && simd=ON
use cpu_flags_x86_sse3 && simd=ON
use cpu_flags_x86_ssse3 && simd=ON
use cpu_flags_x86_sse4a && simd=ON
use cpu_flags_x86_sse4_1 && simd=ON
use cpu_flags_x86_sse4_2 && simd=ON
use cpu_flags_x86_avx && simd=ON
use cpu_flags_x86_avx2 && simd=ON
use cpu_flags_x86_avx512dq && simd=ON
use cpu_flags_x86_avx512f && simd=ON
use cpu_flags_x86_avx512vl && simd=ON
use cpu_flags_x86_3dnow && simd=ON
use cpu_flags_x86_3dnowext && simd=ON
use cpu_flags_ppc_vsx && simd=ON
use cpu_flags_ppc_vsx2 && simd=ON
use cpu_flags_ppc_vsx3 && simd=ON
use cpu_flags_ppc_altivec && simd=ON
use cpu_flags_arm_neon && simd=ON
use cpu_flags_arm_iwmmxt && simd=ON
use cpu_flags_arm_iwmmxt2 && simd=ON
use cpu_flags_arm_neon && simd=ON
export ODE_DIR="${EPREFIX}/usr"
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DDART_CODECOV=OFF
-DDART_VERBOSE=ON
-DDART_TREAT_WARNINGS_AS_ERRORS=OFF
-DDART_BUILD_EXTRAS=$(usex extras)
-DDART_BUILD_GUI_OSG=$(usex osg)
-DDART_ENABLE_SIMD="${simd}"
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
use examples && cmake_build examples
use python && cmake_build dartpy
use test && cmake_build tests
use tutorials && cmake_build tutorials
}
src_install() {
cmake_src_install
#TODO: python (?)
if ! use examples ; then
rm -rf "${ED}/usr/share/doc/dart/examples" || die
fi
if ! use tutorials ; then
rm -rf "${ED}/usr/share/doc/dart/tutorials" || die
fi
if use examples || use tutorials ; then
exeinto "/usr/libexec/${PN}"
doexe "${BUILD_DIR}"/bin/*
fi
# use python && cmake_build install-dartpy
mv "${ED}/usr/share/doc/dart/data" "${ED}/usr/share/${PN}" || die
if [[ -d "${ED}/usr/share/doc/dart" ]] ; then
if [[ "$(ls -A ${ED}/usr/share/doc/dart)" ]] ; then
mv "${ED}"/usr/share/doc/dart/* "${ED}/usr/share/doc/${PF}" || die
fi
fi
docompress -x "/usr/share/doc/${PF}"
}