From 6a96ce76b805be313731693b629f80d032525842 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Thu, 21 Mar 2024 21:00:32 -0700 Subject: [PATCH] [build] Remove support for CMake < 3.22.1 and Eigen < 3.4.0 (cherry picked from commit 7a13a30258dbcd64170a37efb28953173d3ce83a) --- .github/workflows/api_doc.yml | 42 +++++++- .github/workflows/ci_windows.yml | 2 +- Brewfile | 1 - Dockerfile | 1 - cmake/DARTFindBullet.cmake | 11 +- cmake/DARTFindOpenSceneGraph.cmake | 20 +--- dart/CMakeLists.txt | 3 - dart/common/Memory.hpp | 20 +--- dart/common/detail/AlignedAllocator.hpp | 106 ------------------- dart/common/detail/Memory-impl.hpp | 13 +-- dart/common/detail/SharedLibraryManager.cpp | 2 + dart/config.hpp.in | 45 ++++---- dart/math/MathTypes.hpp | 19 ---- dart/math/detail/Random-impl.hpp | 107 -------------------- docker/dev/v6.14/Dockerfile.archlinux-min | 2 +- docker/dev/v6.14/Dockerfile.ubuntu.jammy | 1 - docker/dev/v6.14/Dockerfile.ubuntu.noble | 1 - docs/readthedocs/developer_guide/build.rst | 23 ++++- 18 files changed, 98 insertions(+), 321 deletions(-) delete mode 100644 dart/common/detail/AlignedAllocator.hpp diff --git a/.github/workflows/api_doc.yml b/.github/workflows/api_doc.yml index f442704e48ddc..a37d29d40fc3a 100644 --- a/.github/workflows/api_doc.yml +++ b/.github/workflows/api_doc.yml @@ -52,7 +52,47 @@ jobs: - name: Install Dependencies with cache uses: awalsh128/cache-apt-pkgs-action@v1.4.2 with: - packages: build-essential libboost-all-dev clang clang-format-12 cmake curl doxygen gcovr git lcov lsb-release pkg-config software-properties-common valgrind libassimp-dev libccd-dev libeigen3-dev libfcl-dev libfmt-dev coinor-libipopt-dev freeglut3-dev libxi-dev libxmu-dev libbullet-dev libtinyxml2-dev liburdfdom-dev liburdfdom-headers-dev libopenscenegraph-dev libnlopt-cxx-dev liboctomap-dev libode-dev libspdlog-dev ocl-icd-opencl-dev libpython3-dev pybind11-dev python3 python3-dev python3-distutils python3-numpy python3-pip python3-setuptools + packages: | + build-essential + libboost-all-dev + clang + clang-format-12 + cmake + curl + doxygen + gcovr + git + lcov + lsb-release + pkg-config + software-properties-common + valgrind + libassimp-dev + libeigen3-dev + libfcl-dev + libfmt-dev + coinor-libipopt-dev + freeglut3-dev + libxi-dev + libxmu-dev + libbullet-dev + libtinyxml2-dev + liburdfdom-dev + liburdfdom-headers-dev + libopenscenegraph-dev + libnlopt-cxx-dev + liboctomap-dev + libode-dev + libspdlog-dev + ocl-icd-opencl-dev + libpython3-dev + pybind11-dev + python3 + python3-dev + python3-distutils + python3-numpy + python3-pip + python3-setuptools version: 1.1 - name: Install Python dependencies diff --git a/.github/workflows/ci_windows.yml b/.github/workflows/ci_windows.yml index 3e6cc03ff0dd9..3bf59e9443d1c 100644 --- a/.github/workflows/ci_windows.yml +++ b/.github/workflows/ci_windows.yml @@ -38,7 +38,7 @@ jobs: - uses: johnwason/vcpkg-action@v6 with: # TODO: Add ode and coin-or-ipopt - pkgs: assimp ccd eigen3 fcl fmt spdlog bullet3 freeglut glfw3 nlopt opengl osg pagmo2 tinyxml2 urdfdom + pkgs: assimp eigen3 fcl fmt spdlog bullet3 freeglut glfw3 nlopt opengl osg pagmo2 tinyxml2 urdfdom triplet: x64-windows revision: "2024.02.14" github-binarycache: true diff --git a/Brewfile b/Brewfile index 9e3433b19dd3b..5591ae2c34e09 100644 --- a/Brewfile +++ b/Brewfile @@ -8,7 +8,6 @@ brew 'eigen' brew 'fcl' brew 'fmt' brew 'ipopt' -brew 'libccd' brew 'nlopt' brew 'octomap' brew 'ode' diff --git a/Dockerfile b/Dockerfile index 331ed819f7afe..1742b06d9408a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,6 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends \ libeigen3-dev \ libassimp-dev \ - libccd-dev \ libfcl-dev \ libfmt-dev \ libnlopt-cxx-dev \ diff --git a/cmake/DARTFindBullet.cmake b/cmake/DARTFindBullet.cmake index 82f2bf7b97b15..c2d3e63b793e6 100644 --- a/cmake/DARTFindBullet.cmake +++ b/cmake/DARTFindBullet.cmake @@ -13,13 +13,6 @@ find_package(Bullet COMPONENTS BulletMath BulletCollision MODULE QUIET) if((BULLET_FOUND OR Bullet_FOUND) AND NOT TARGET Bullet) add_library(Bullet INTERFACE IMPORTED) - if(CMAKE_VERSION VERSION_LESS 3.11) - set_target_properties(Bullet PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${BULLET_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${BULLET_LIBRARIES}" - ) - else() - target_include_directories(Bullet INTERFACE ${BULLET_INCLUDE_DIRS}) - target_link_libraries(Bullet INTERFACE ${BULLET_LIBRARIES}) - endif() + target_include_directories(Bullet INTERFACE ${BULLET_INCLUDE_DIRS}) + target_link_libraries(Bullet INTERFACE ${BULLET_LIBRARIES}) endif() diff --git a/cmake/DARTFindOpenSceneGraph.cmake b/cmake/DARTFindOpenSceneGraph.cmake index 48269ffad619c..bf16b17f8ea67 100644 --- a/cmake/DARTFindOpenSceneGraph.cmake +++ b/cmake/DARTFindOpenSceneGraph.cmake @@ -6,19 +6,10 @@ # # This file is provided under the "BSD-style" License -if (CMAKE_VERSION VERSION_LESS 3.12) - get_property(old_find_library_use_lib64_paths GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) - set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) -endif() - find_package(OpenSceneGraph 3.0 QUIET COMPONENTS osg osgViewer osgManipulator osgGA osgDB osgShadow osgUtil ) -if (CMAKE_VERSION VERSION_LESS 3.12) - set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${old_find_library_use_lib64_paths}) -endif() - # It seems that OPENSCENEGRAPH_FOUND will inadvertently get set to true when # OpenThreads is found, even if OpenSceneGraph is not installed. This is quite # possibly a bug in OSG's cmake configuration file. For now, it seems that @@ -56,13 +47,6 @@ endif() # where the system that DART is built and where the system that consumes DART. if((OPENSCENEGRAPH_FOUND OR OpenSceneGraph_FOUND) AND NOT TARGET osg::osg) add_library(osg::osg INTERFACE IMPORTED) - if(CMAKE_VERSION VERSION_LESS 3.11) - set_target_properties(osg::osg PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OPENSCENEGRAPH_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${OPENSCENEGRAPH_LIBRARIES}" - ) - else() - target_include_directories(osg::osg INTERFACE ${OPENSCENEGRAPH_INCLUDE_DIRS}) - target_link_libraries(osg::osg INTERFACE ${OPENSCENEGRAPH_LIBRARIES}) - endif() + target_include_directories(osg::osg INTERFACE ${OPENSCENEGRAPH_INCLUDE_DIRS}) + target_link_libraries(osg::osg INTERFACE ${OPENSCENEGRAPH_LIBRARIES}) endif() diff --git a/dart/CMakeLists.txt b/dart/CMakeLists.txt index afc41765eca88..a67a03ce653cd 100644 --- a/dart/CMakeLists.txt +++ b/dart/CMakeLists.txt @@ -160,9 +160,6 @@ endif() # C++ standard settings target_compile_features(dart PUBLIC cxx_std_17) -if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) - target_link_libraries(dart PUBLIC "stdc++fs") -endif() # Build DART with all available SIMD instructions if(DART_ENABLE_SIMD) diff --git a/dart/common/Memory.hpp b/dart/common/Memory.hpp index a392c24830019..a601460c31f9d 100644 --- a/dart/common/Memory.hpp +++ b/dart/common/Memory.hpp @@ -36,7 +36,8 @@ #include #include -#include + +#include #include #include @@ -53,21 +54,6 @@ template DART_DEPRECATED(6.9) std::unique_ptr make_unique(Args&&... args); -#if EIGEN_VERSION_AT_LEAST(3, 2, 1) && EIGEN_VERSION_AT_MOST(3, 2, 8) - -template -using aligned_vector - = std::vector<_Tp, dart::common::detail::aligned_allocator_cpp11<_Tp>>; - -template > -using aligned_map = std::map< - _Key, - _Tp, - _Compare, - dart::common::detail::aligned_allocator_cpp11>>; - -#else - template using aligned_vector = std::vector<_Tp, Eigen::aligned_allocator<_Tp>>; @@ -78,8 +64,6 @@ using aligned_map = std::map< _Compare, Eigen::aligned_allocator>>; -#endif - } // namespace common } // namespace dart diff --git a/dart/common/detail/AlignedAllocator.hpp b/dart/common/detail/AlignedAllocator.hpp deleted file mode 100644 index 52ebb9b312045..0000000000000 --- a/dart/common/detail/AlignedAllocator.hpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2011-2024, The DART development contributors - * All rights reserved. - * - * The list of contributors can be found at: - * https://github.com/dartsim/dart/blob/main/LICENSE - * - * This file is provided under the following "BSD-style" License: - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef DART_COMMON_DETAIL_ALIGNEDALLOCATOR_HPP_ -#define DART_COMMON_DETAIL_ALIGNEDALLOCATOR_HPP_ - -#include - -#include - -#include - -namespace dart { -namespace common { - -#if EIGEN_VERSION_AT_LEAST(3, 2, 1) && EIGEN_VERSION_AT_MOST(3, 2, 8) - -namespace detail { - -/// Aligned allocator that is compatible with C++11 -// Ref: https://bitbucket.org/eigen/eigen/commits/f5b7700 -// TODO: Remove this and use Eigen::aligned_allocator once new version of Eigen -// is released with above commit. -template -class aligned_allocator_cpp11 : public std::allocator -{ -public: - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef T& reference; - typedef const T& const_reference; - typedef T value_type; - - template - struct rebind - { - typedef aligned_allocator_cpp11 other; - }; - - aligned_allocator_cpp11() : std::allocator() {} - - aligned_allocator_cpp11(const aligned_allocator_cpp11& other) - : std::allocator(other) - { - } - - template - aligned_allocator_cpp11(const aligned_allocator_cpp11& other) - : std::allocator(other) - { - } - - ~aligned_allocator_cpp11() {} - - pointer allocate(size_type num, const void* /*hint*/ = 0) - { - Eigen::internal::check_size_for_overflow(num); - return static_cast( - Eigen::internal::aligned_malloc(num * sizeof(T))); - } - - void deallocate(pointer p, size_type /*num*/) - { - Eigen::internal::aligned_free(p); - } -}; - -} // namespace detail - -#endif // EIGEN_VERSION_AT_LEAST(3,2,1) && EIGEN_VERSION_AT_MOST(3,2,8) - -} // namespace common -} // namespace dart - -#endif // DART_COMMON_DETAIL_ALIGNEDALLOCATOR_HPP_ diff --git a/dart/common/detail/Memory-impl.hpp b/dart/common/detail/Memory-impl.hpp index 7ce8a13536ef0..e73aca6710f27 100644 --- a/dart/common/detail/Memory-impl.hpp +++ b/dart/common/detail/Memory-impl.hpp @@ -36,15 +36,10 @@ #include #include +#include #include -#if EIGEN_VERSION_AT_LEAST(3, 2, 1) && EIGEN_VERSION_AT_MOST(3, 2, 8) - #include -#else - #include -#endif - namespace dart { namespace common { @@ -54,14 +49,8 @@ std::shared_ptr<_Tp> make_aligned_shared(_Args&&... __args) { using _Tp_nc = typename std::remove_const<_Tp>::type; -#if EIGEN_VERSION_AT_LEAST(3, 2, 1) && EIGEN_VERSION_AT_MOST(3, 2, 8) - return std::allocate_shared<_Tp>( - detail::aligned_allocator_cpp11<_Tp_nc>(), - std::forward<_Args>(__args)...); -#else return std::allocate_shared<_Tp>( Eigen::aligned_allocator<_Tp_nc>(), std::forward<_Args>(__args)...); -#endif // EIGEN_VERSION_AT_LEAST(3,2,1) && EIGEN_VERSION_AT_MOST(3,2,8) } //============================================================================== diff --git a/dart/common/detail/SharedLibraryManager.cpp b/dart/common/detail/SharedLibraryManager.cpp index 3f6cd8451bf86..ed67fa6c1be52 100644 --- a/dart/common/detail/SharedLibraryManager.cpp +++ b/dart/common/detail/SharedLibraryManager.cpp @@ -37,6 +37,8 @@ #include +#include + namespace dart { namespace common { namespace detail { diff --git a/dart/config.hpp.in b/dart/config.hpp.in index b5cb927599676..e3bc312499d7b 100644 --- a/dart/config.hpp.in +++ b/dart/config.hpp.in @@ -1,8 +1,5 @@ /* config.hpp. Generated by CMake for @PROJECT_NAME@. */ -#ifndef DART_CONFIG_HPP_ -#define DART_CONFIG_HPP_ - -#include +#pragma once /* Version number */ #define DART_MAJOR_VERSION @DART_MAJOR_VERSION @ @@ -12,34 +9,50 @@ #define DART_VERSION "@DART_VERSION@" #define DART_DESCRIPTION "@DART_PKG_DESC@" -#define DART_VERSION_AT_LEAST(x, y, z) \ +#define DART_VERSION_GT(x, y, z) \ + (DART_MAJOR_VERSION < x \ + || (DART_MAJOR_VERSION <= x \ + && (DART_MINOR_VERSION < y \ + || (DART_MINOR_VERSION <= y && DART_PATCH_VERSION < z)))) + +#define DART_VERSION_GE(x, y, z) \ (DART_MAJOR_VERSION > x \ || (DART_MAJOR_VERSION >= x \ && (DART_MINOR_VERSION > y \ || (DART_MINOR_VERSION >= y && DART_PATCH_VERSION >= z)))) -#define DART_MAJOR_MINOR_VERSION_AT_LEAST(x, y) \ +#define DART_VERSION_LT(x, y, z) \ (DART_MAJOR_VERSION > x \ || (DART_MAJOR_VERSION >= x \ - && (DART_MINOR_VERSION > y || (DART_MINOR_VERSION >= y)))) + && (DART_MINOR_VERSION > y \ + || (DART_MINOR_VERSION >= y && DART_PATCH_VERSION > z))) -#define DART_VERSION_AT_MOST(x, y, z) \ +#define DART_VERSION_LE(x, y, z) \ (DART_MAJOR_VERSION < x \ || (DART_MAJOR_VERSION <= x \ && (DART_MINOR_VERSION < y \ - || (DART_MINOR_VERSION <= y && DART_PATCH_VERSION <= z)))) + || (DART_MINOR_VERSION <= y && DART_PATCH_VERSION <= z))) +// Deprecated in 6.14 +#define DART_VERSION_AT_LEAST(x, y, z) \ + DART_VERSION_GE(x, y, z) + +// Deprecated in 6.14 +#define DART_MAJOR_MINOR_VERSION_AT_LEAST(x, y) \ + (DART_MAJOR_VERSION > x \ + || (DART_MAJOR_VERSION >= x \ + && (DART_MINOR_VERSION > y || (DART_MINOR_VERSION >= y)))) + +// Deprecated in 6.14 +#define DART_VERSION_AT_MOST(x, y, z) \ + DART_VERSION_LE(x, y, z) + +// Deprecated in 6.14 #define DART_MAJOR_MINOR_VERSION_AT_MOST(x, y) \ (DART_MAJOR_VERSION < x \ || (DART_MAJOR_VERSION <= x \ && (DART_MINOR_VERSION < y || (DART_MINOR_VERSION <= y)))) -#define EIGEN_VERSION_AT_MOST(x, y, z) \ - (EIGEN_WORLD_VERSION < x \ - || (EIGEN_WORLD_VERSION <= x \ - && (EIGEN_MAJOR_VERSION < y \ - || (EIGEN_MAJOR_VERSION <= y && EIGEN_MINOR_VERSION <= z)))) - // Detect the compiler #if defined(__clang__) #define DART_COMPILER_CLANG @@ -84,5 +97,3 @@ #cmakedefine BT_USE_DOUBLE_PRECISION #cmakedefine01 DART_USE_SYSTEM_IMGUI - -#endif // #ifndef DART_CONFIG_HPP_ diff --git a/dart/math/MathTypes.hpp b/dart/math/MathTypes.hpp index a42ac40bf534e..1da4749d64548 100644 --- a/dart/math/MathTypes.hpp +++ b/dart/math/MathTypes.hpp @@ -63,23 +63,6 @@ using EIGEN_V_VEC3D = std::vector; // Deprecated using EIGEN_VV_VEC3D = std::vector>; -#if EIGEN_VERSION_AT_LEAST(3, 2, 1) && EIGEN_VERSION_AT_MOST(3, 2, 8) - -// Deprecated in favor of dart::common::aligned_vector -template -using aligned_vector - = std::vector<_Tp, dart::common::detail::aligned_allocator_cpp11<_Tp>>; - -// Deprecated in favor of dart::common::aligned_map -template > -using aligned_map = std::map< - _Key, - _Tp, - _Compare, - dart::common::detail::aligned_allocator_cpp11>>; - -#else - // Deprecated in favor of dart::common::aligned_vector template using aligned_vector = std::vector<_Tp, Eigen::aligned_allocator<_Tp>>; @@ -92,8 +75,6 @@ using aligned_map = std::map< _Compare, Eigen::aligned_allocator>>; -#endif - // Deprecated in favor of dart::common::make_aligned_shared template DART_DEPRECATED(6.2) diff --git a/dart/math/detail/Random-impl.hpp b/dart/math/detail/Random-impl.hpp index bb1b94a997d1a..8cb37f66328b8 100644 --- a/dart/math/detail/Random-impl.hpp +++ b/dart/math/detail/Random-impl.hpp @@ -32,91 +32,6 @@ #include -//============================================================================== -// This workaround is necessary for old Eigen (< 3.3). See the details here: -// http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1286 -#if !EIGEN_VERSION_AT_LEAST(3, 3, 0) - -namespace dart { -namespace math { -namespace detail { - -template -struct UniformScalarFromMatrixFunctor -{ - using S = typename Derived::Scalar; - - UniformScalarFromMatrixFunctor( - const Eigen::MatrixBase& min, - const Eigen::MatrixBase& max) - : mMin(min), mMax(max) - { - // Do nothing - } - - S operator()(int i, int j) const - { - return Random::uniform(mMin(i, j), mMax(i, j)); - } - - const Eigen::MatrixBase& mMin; - const Eigen::MatrixBase& mMax; -}; - -template -struct UniformScalarFromVectorFunctor -{ - using S = typename Derived::Scalar; - - UniformScalarFromVectorFunctor( - const Eigen::MatrixBase& min, - const Eigen::MatrixBase& max) - : mMin(min), mMax(max) - { - // Do nothing - } - - S operator()(int i) const - { - return Random::uniform(mMin[i], mMax[i]); - } - - const Eigen::MatrixBase& mMin; - const Eigen::MatrixBase& mMax; -}; - -} // namespace detail -} // namespace math -} // namespace dart - -namespace Eigen { -namespace internal { - -template -struct functor_has_linear_access< - dart::math::detail::UniformScalarFromMatrixFunctor> -{ - enum - { - ret = false - }; -}; - -template -struct functor_has_linear_access< - dart::math::detail::UniformScalarFromVectorFunctor> -{ - enum - { - ret = true - }; -}; - -} // namespace internal -} // namespace Eigen - -#endif // !EIGEN_VERSION_AT_LEAST(3,3,0) - namespace dart { namespace math { @@ -227,18 +142,11 @@ struct UniformMatrixImpl< const Eigen::MatrixBase& min, const Eigen::MatrixBase& max) { -#if EIGEN_VERSION_AT_LEAST(3, 3, 0) const auto uniformFunc = [&](int i, int j) { return Random::uniform(min(i, j), max(i, j)); }; return Derived::PlainObject::NullaryExpr( min.rows(), min.cols(), uniformFunc); -#else - return Derived::PlainObject::NullaryExpr( - min.rows(), - min.cols(), - detail::UniformScalarFromMatrixFunctor(min, max)); -#endif } }; @@ -255,15 +163,10 @@ struct UniformMatrixImpl< const Eigen::MatrixBase& min, const Eigen::MatrixBase& max) { -#if EIGEN_VERSION_AT_LEAST(3, 3, 0) const auto uniformFunc = [&](int i) { return Random::uniform(min[i], max[i]); }; return Derived::PlainObject::NullaryExpr(min.size(), uniformFunc); -#else - return Derived::PlainObject::NullaryExpr( - min.size(), detail::UniformScalarFromVectorFunctor(min, max)); -#endif } }; @@ -280,15 +183,10 @@ struct UniformMatrixImpl< const Eigen::MatrixBase& min, const Eigen::MatrixBase& max) { -#if EIGEN_VERSION_AT_LEAST(3, 3, 0) const auto uniformFunc = [&](int i, int j) { return Random::uniform(min(i, j), max(i, j)); }; return Derived::PlainObject::NullaryExpr(uniformFunc); -#else - return Derived::PlainObject::NullaryExpr( - detail::UniformScalarFromMatrixFunctor(min, max)); -#endif } }; @@ -305,15 +203,10 @@ struct UniformMatrixImpl< const Eigen::MatrixBase& min, const Eigen::MatrixBase& max) { -#if EIGEN_VERSION_AT_LEAST(3, 3, 0) const auto uniformFunc = [&](int i) { return Random::uniform(min[i], max[i]); }; return Derived::PlainObject::NullaryExpr(uniformFunc); -#else - return Derived::PlainObject::NullaryExpr( - detail::UniformScalarFromVectorFunctor(min, max)); -#endif } }; diff --git a/docker/dev/v6.14/Dockerfile.archlinux-min b/docker/dev/v6.14/Dockerfile.archlinux-min index 84a744bb37857..1fe649e6deb0d 100644 --- a/docker/dev/v6.14/Dockerfile.archlinux-min +++ b/docker/dev/v6.14/Dockerfile.archlinux-min @@ -34,6 +34,6 @@ RUN yay -Syu --needed --noconfirm \ # DART required dependencies # ============================================================================== RUN yay -Syu --needed --noconfirm \ - assimp eigen fcl fmt libccd + assimp eigen fcl fmt USER root diff --git a/docker/dev/v6.14/Dockerfile.ubuntu.jammy b/docker/dev/v6.14/Dockerfile.ubuntu.jammy index 728a7b2ec48bb..e88e5fa09cfbd 100644 --- a/docker/dev/v6.14/Dockerfile.ubuntu.jammy +++ b/docker/dev/v6.14/Dockerfile.ubuntu.jammy @@ -31,7 +31,6 @@ RUN apt-get install -y --no-install-recommends \ # ============================================================================== RUN apt-get install -y --no-install-recommends \ libassimp-dev \ - libccd-dev \ libeigen3-dev \ libfcl-dev \ libfmt-dev diff --git a/docker/dev/v6.14/Dockerfile.ubuntu.noble b/docker/dev/v6.14/Dockerfile.ubuntu.noble index cf49a8d9495ab..2a91654d30c68 100644 --- a/docker/dev/v6.14/Dockerfile.ubuntu.noble +++ b/docker/dev/v6.14/Dockerfile.ubuntu.noble @@ -31,7 +31,6 @@ RUN apt-get install -y --no-install-recommends \ # ============================================================================== RUN apt-get install -y --no-install-recommends \ libassimp-dev \ - libccd-dev \ libeigen3-dev \ libfcl-dev \ libfmt-dev diff --git a/docs/readthedocs/developer_guide/build.rst b/docs/readthedocs/developer_guide/build.rst index 76a6a2a17c6b0..11901ea41a34c 100644 --- a/docs/readthedocs/developer_guide/build.rst +++ b/docs/readthedocs/developer_guide/build.rst @@ -55,7 +55,7 @@ manager. The following command will install the required dependencies: .. code-block:: bash $ sudo apt install \ - build-essential cmake pkg-config git libassimp-dev libccd-dev \ + build-essential cmake pkg-config git libassimp-dev \ libeigen3-dev libfcl-dev libfmt-dev The following command will install the optional dependencies: @@ -77,7 +77,7 @@ manager. The following command will install the required dependencies: .. code-block:: bash - $ brew install assimp cmake eigen fmt fcl libccd + $ brew install assimp cmake eigen fmt fcl The following command will install the optional dependencies: @@ -95,14 +95,14 @@ manager. The following command will install the required dependencies: .. code-block:: bash - $ vcpkg install --triplet x64-windows assimp ccd eigen3 fcl fmt spdlog + $ vcpkg install --triplet x64-windows assimp eigen3 fcl fmt spdlog The following command will install the optional dependencies: .. code-block:: bash $ vcpkg install --triplet x64-windows \ - assimp ccd eigen3 fcl fmt spdlog bullet3 freeglut glfw3 nlopt ode \ + assimp eigen3 fcl fmt spdlog bullet3 freeglut glfw3 nlopt ode \ opencl opengl osg pagmo2 pybind11 tinyxml2 urdfdom yaml-cpp Arch Linux (experimental) @@ -113,7 +113,7 @@ manager. The following command will install the required dependencies: .. code-block:: bash - $ yay -S assimp cmake eigen fcl fmt libccd + $ yay -S assimp cmake eigen fcl fmt The following command will install the optional dependencies: @@ -129,6 +129,19 @@ FreeBSD (experimental) TODO +Dependency Info +~~~~~~~~~~~~~~~ + +Here's a summary of the dependencies required to build DART (WIP): + ++------------+----------+---------+--------------+-------+ +| Dependency | Required | Type | Min. Version | Notes | ++============+==========+=========+==============+=======+ +| CMake | Yes | Build | 3.22.1 | | ++------------+----------+---------+--------------+-------+ +| Eigen | Yes | Runtime | 3.4.0 | | ++------------+----------+---------+--------------+-------+ + Clone the DART Repository ~~~~~~~~~~~~~~~~~~~~~~~~~