commit: ef1f64452bc61dc3139696482eef10e875e331b9 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> AuthorDate: Sun Mar 27 20:26:32 2022 +0000 Commit: Ronny Gutbrod <gentoo <AT> tastytea <DOT> de> CommitDate: Sun Mar 27 21:28:24 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ef1f6445
sci-libs/dart: add 6.12.1 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> sci-libs/dart/Manifest | 1 + sci-libs/dart/dart-6.12.1.ebuild | 162 +++++++++++++++++++++ .../dart/files/dart-6.12.1-respect-cflags.patch | 11 ++ .../dart/files/dart-6.12.1-use-system-gtest.patch | 31 ++++ .../dart-6.12.1-use-system-lodepng-imgui.patch | 149 +++++++++++++++++++ sci-libs/dart/metadata.xml | 1 + 6 files changed, 355 insertions(+) diff --git a/sci-libs/dart/Manifest b/sci-libs/dart/Manifest index 461c20c15..46b234018 100644 --- a/sci-libs/dart/Manifest +++ b/sci-libs/dart/Manifest @@ -1 +1,2 @@ DIST dart-6.10.1.tar.gz 15867405 BLAKE2B 64c42ce1d808a88df53f4292df30c0bc58b52f864342ac0b353ad0496d41bd4986ad231cb08869058a16591350acf0fc0c12ae15d574d919c1c27f102028f608 SHA512 8abbf883628442ed5166e436349de8caaaf72a0ecfa88e75b986a550d617bd9b5df8ff32e32395e941ba12b7ad359be15b2ab2f566d99aa6c603bd0ebade1df0 +DIST dart-6.12.1.tar.gz 15990308 BLAKE2B d361dfad70745aa3747ea09f9f80a0b52051cb3e5d9a961995d469ab33086bf8d4068f95dbd4af8d0e2b23d5fbb0fa49dc63d823ffa52bbe750745093a6b54eb SHA512 f386f646f13989dad66efbe126691553b280bf6441edad1c03059d6ae650384652da538edd3d27f3404ba76b9d6f9348e5b1c0998d7673e856cc488b91a677ff diff --git a/sci-libs/dart/dart-6.12.1.ebuild b/sci-libs/dart/dart-6.12.1.ebuild new file mode 100644 index 000000000..aac4ae640 --- /dev/null +++ b/sci-libs/dart/dart-6.12.1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) + +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="bullet doc examples extras glut gui +ipopt +nlopt ode python test tests tutorials urdfdom +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-libs/boost + dev-libs/tinyxml2 + >=sci-libs/libccd-2.0 + >=media-libs/assimp-3.0.0 + >=sci-libs/fcl-0.2.9 + sci-libs/flann + sci-libs/octomap + + bullet? ( sci-physics/bullet ) + examples? ( + dev-cpp/tiny-dnn + dev-libs/urdfdom + ) + extras? ( dev-libs/urdfdom ) + glut? ( media-libs/freeglut ) + gui? ( + dev-games/openscenegraph + media-libs/imgui:=[opengl(-)] + media-libs/lodepng:= + virtual/opengl + x11-libs/libXi + x11-libs/libXmu + ) + ipopt? ( sci-libs/ipopt ) + nlopt? ( >=sci-libs/nlopt-2.4.1 ) + ode? ( dev-games/ode ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]') + ) + urdfdom? ( dev-libs/urdfdom ) +" +DEPEND=" + ${RDEPEND} + examples? ( dev-libs/urdfdom_headers ) + extras? ( dev-libs/urdfdom_headers ) + test? ( + dev-cpp/gtest + python? ( $(python_gen_cond_dep 'dev-python/pytest[${PYTHON_USEDEP}]') ) + ) + urdfdom? ( dev-libs/urdfdom_headers ) +" +BDEPEND=" + app-text/dos2unix + doc? ( app-doc/doxygen ) + test? ( python? ( $(python_gen_cond_dep 'dev-python/pytest[${PYTHON_USEDEP}]') ) ) +" + +RESTRICT="!test? ( test )" +PATCHES=( + "${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=" + examples? ( gui ) + python? ( + ${PYTHON_REQUIRED_USE} + gui + ) + + || ( ipopt nlopt ) +" + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + # delete bundled gtest + rm -r unittests/gtest || die + rm -r dart/external/{imgui,lodepng} || 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 + + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DCMAKE_BUILD_TYPE=Release + -DDART_CODECOV=OFF + -DDART_VERBOSE=ON + -DDART_TREAT_WARNINGS_AS_ERRORS=OFF + + -DDART_BUILD_EXTRAS=$(usex extras) + -DDART_BUILD_GUI_OSG=$(usex gui) + -DDART_ENABLE_SIMD="${simd}" + ) + cmake_src_configure +} + +src_compile() { + cmake_src_compile + use examples && cmake_build examples + use python && cmake_build dartpy # no work to do ... + use test && cmake_build tests + use tutorials && cmake_build tutorials +} + +src_install() { + cmake_src_install + #TODO: python examples tests tutorials + mv "${ED}/usr/share/doc/dart" "${ED}/usr/share/doc/${PF}" || die + docompress -x "/usr/share/doc/${PF}" +} diff --git a/sci-libs/dart/files/dart-6.12.1-respect-cflags.patch b/sci-libs/dart/files/dart-6.12.1-respect-cflags.patch new file mode 100644 index 000000000..1c3f45d58 --- /dev/null +++ b/sci-libs/dart/files/dart-6.12.1-respect-cflags.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -208,7 +208,7 @@ + if(GCC_VERSION VERSION_LESS 7.3.0) + message(FATAL_ERROR "The installed g++ version is ${GCC_VERSION}. ${PROJECT_NAME} requires g++ 7.3.0 or greater.") + endif() +- set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") ++ set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "-g -fno-omit-frame-pointer -fno-inline-functions -fno-inline-functions-called-once -fno-optimize-sibling-calls") + if(DART_FAST_DEBUG) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1") diff --git a/sci-libs/dart/files/dart-6.12.1-use-system-gtest.patch b/sci-libs/dart/files/dart-6.12.1-use-system-gtest.patch new file mode 100644 index 000000000..37cdd9ecf --- /dev/null +++ b/sci-libs/dart/files/dart-6.12.1-use-system-gtest.patch @@ -0,0 +1,31 @@ +--- a/unittests/CMakeLists.txt ++++ b/unittests/CMakeLists.txt +@@ -31,18 +31,7 @@ + # + + # GoogleTest setup +-include_directories(BEFORE SYSTEM ${DART_SOURCE_DIR}/unittests/gtest/include) +-include_directories(BEFORE SYSTEM ${DART_SOURCE_DIR}/unittests/gtest) +-add_library(gtest STATIC gtest/src/gtest-all.cc) +-add_library(gtest_main STATIC gtest/src/gtest_main.cc) +-target_link_libraries(gtest_main gtest) +-if(NOT WIN32) +- target_link_libraries(gtest pthread) +-endif() +-set_target_properties( +- gtest PROPERTIES +- ARCHIVE_OUTPUT_DIRECTORY ${DART_BINARY_DIR}/lib +-) ++include_directories(BEFORE SYSTEM /usr/include/gtest) + + #=============================================================================== + # This function uses following global properties: +@@ -66,7 +55,7 @@ + + add_executable(${target_name} ${sources}) + add_test(${target_name} ${target_name}) +- target_link_libraries(${target_name} dart gtest gtest_main) ++ target_link_libraries(${target_name} dart gtest) + + dart_format_add(${sources}) + diff --git a/sci-libs/dart/files/dart-6.12.1-use-system-lodepng-imgui.patch b/sci-libs/dart/files/dart-6.12.1-use-system-lodepng-imgui.patch new file mode 100644 index 000000000..1d90631e9 --- /dev/null +++ b/sci-libs/dart/files/dart-6.12.1-use-system-lodepng-imgui.patch @@ -0,0 +1,149 @@ +--- a/dart/external/CMakeLists.txt ++++ b/dart/external/CMakeLists.txt +@@ -1,5 +1,3 @@ + add_subdirectory(convhull_3d) +-add_subdirectory(imgui) + add_subdirectory(ikfast) +-add_subdirectory(lodepng) + add_subdirectory(odelcpsolver) +--- a/dart/gui/CMakeLists.txt ++++ b/dart/gui/CMakeLists.txt +@@ -42,14 +42,15 @@ + dart_add_library(${target_name} + ${hdrs} ${srcs} ${dart_gui_headers} ${dart_gui_sources} + ) ++target_include_directories(${target_name} PRIVATE /usr/include/imgui) + target_link_libraries(${target_name} + PUBLIC + dart-utils + OpenGL::GL + OpenGL::GLU + GLUT::GLUT +- ${PROJECT_NAME}-external-lodepng +- ${PROJECT_NAME}-external-imgui ++ -limgui ++ lodepng + ) + + # Component +@@ -59,8 +60,6 @@ + ${PROJECT_NAME} + ${component_name} + utils +- external-lodepng +- external-imgui + ) + add_component_dependency_packages(${PROJECT_NAME} ${component_name} OpenGL) + if(NOT WIN32 OR CYGWIN) +--- a/dart/gui/glut/GlutWindow.cpp ++++ b/dart/gui/glut/GlutWindow.cpp +@@ -30,7 +30,7 @@ + * POSSIBILITY OF SUCH DAMAGE. + */ + +-#include "dart/external/lodepng/lodepng.h" ++#include "lodepng.h" + #include "dart/gui/glut/Window.hpp" + + #ifdef _WIN32 +--- a/dart/gui/osg/ImGuiHandler.cpp ++++ b/dart/gui/osg/ImGuiHandler.cpp +@@ -44,8 +44,8 @@ + #include <osg/RenderInfo> + + #include "dart/common/Console.hpp" +-#include "dart/external/imgui/imgui.h" +-#include "dart/external/imgui/imgui_impl_opengl2.h" ++#include "imgui/imgui.h" ++#include "imgui/imgui_impl_opengl2.h" + #include "dart/gui/osg/ImGuiWidget.hpp" + + namespace dart { +--- a/dart/gui/osg/ImGuiWidget.cpp ++++ b/dart/gui/osg/ImGuiWidget.cpp +@@ -38,7 +38,7 @@ + + #include "dart/gui/osg/ImGuiWidget.hpp" + +-#include "dart/external/imgui/imgui.h" ++#include "imgui/imgui.h" + + namespace dart { + namespace gui { +--- a/examples/atlas_simbicon/AtlasSimbiconWidget.cpp ++++ b/examples/atlas_simbicon/AtlasSimbiconWidget.cpp +@@ -38,7 +38,7 @@ + + #include "AtlasSimbiconWidget.hpp" + +-#include "dart/external/imgui/imgui.h" ++#include "imgui/imgui.h" + + #include "AtlasSimbiconWorldNode.hpp" + +--- a/examples/box_stacking/main.cpp ++++ b/examples/box_stacking/main.cpp +@@ -33,7 +33,7 @@ + #include <iostream> + + #include <dart/dart.hpp> +-#include <dart/external/imgui/imgui.h> ++#include "imgui/imgui.h" + #include <dart/gui/osg/osg.hpp> + #include <dart/utils/utils.hpp> + +--- a/examples/fetch/main.cpp ++++ b/examples/fetch/main.cpp +@@ -32,7 +32,7 @@ + + #include <dart/collision/bullet/bullet.hpp> + #include <dart/dart.hpp> +-#include <dart/external/imgui/imgui.h> ++#include "imgui/imgui.h" + #include <dart/gui/osg/osg.hpp> + #include <dart/utils/utils.hpp> + +--- a/examples/heightmap/main.cpp ++++ b/examples/heightmap/main.cpp +@@ -33,7 +33,7 @@ + #include <cmath> + + #include <dart/dart.hpp> +-#include <dart/external/imgui/imgui.h> ++#include "imgui/imgui.h" + #include <dart/gui/osg/osg.hpp> + #include <dart/utils/urdf/urdf.hpp> + #include <dart/utils/utils.hpp> +--- a/examples/imgui/main.cpp ++++ b/examples/imgui/main.cpp +@@ -31,7 +31,7 @@ + */ + + #include <dart/dart.hpp> +-#include <dart/external/imgui/imgui.h> ++#include "imgui/imgui.h" + #include <dart/gui/osg/osg.hpp> + + //============================================================================== +--- a/examples/point_cloud/main.cpp ++++ b/examples/point_cloud/main.cpp +@@ -33,7 +33,7 @@ + #include <cmath> + + #include <dart/dart.hpp> +-#include <dart/external/imgui/imgui.h> ++#include "imgui/imgui.h" + #include <dart/gui/osg/osg.hpp> + #include <dart/utils/urdf/urdf.hpp> + #include <dart/utils/utils.hpp> +--- a/examples/tinkertoy/TinkertoyWidget.cpp ++++ b/examples/tinkertoy/TinkertoyWidget.cpp +@@ -38,7 +38,7 @@ + + #include "TinkertoyWidget.hpp" + +-#include "dart/external/imgui/imgui.h" ++#include "imgui/imgui.h" + + #include "TinkertoyWorldNode.hpp" + diff --git a/sci-libs/dart/metadata.xml b/sci-libs/dart/metadata.xml index 486eef082..2d537d0c1 100644 --- a/sci-libs/dart/metadata.xml +++ b/sci-libs/dart/metadata.xml @@ -13,6 +13,7 @@ <flag name="bullet">Bullet Collision Detector Support</flag> <flag name="examples">Build the examples</flag> <flag name="extras">Build the experimental projects that are derived from the core DART project</flag> + <flag name="gui">OpenSceneGraph GUI</flag> <flag name="ipopt">IPopt Optimization Support</flag> <flag name="nlopt">NLopt Optimization Support</flag> <flag name="ode">ODE Collision Detector Support</flag>