Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,9 @@ if(BUILD_PYTHON_INTERFACE)
set(PYTHON_COMPONENTS Interpreter Development NumPy)
ADD_PROJECT_DEPENDENCY(
eigenpy
3.10.3
3.10.2
REQUIRED
PKG_CONFIG_REQUIRES "eigenpy >= 3.10.3"
PKG_CONFIG_REQUIRES "eigenpy >= 3.10.2"
)
set(PYLIB_NAME "py${PROJECT_NAME}")
set(${PYLIB_NAME}_INSTALL_DIR ${PYTHON_SITELIB}/${PROJECT_NAME})
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ cmake --build . -jNCPUS
* [Boost](https://www.boost.org) >= 1.71.0
* OpenMP
* [fmtlib](https://github.com/fmtlib/fmt) >= 10.0.0 | [conda](https://github.com/fmtlib/fmt)
* [mimalloc](https://github.com/microsoft/mimalloc) >= 2.1.0 | [conda](https://github.com/microsoft/mimalloc)
* (optional) [eigenpy](https://github.com/stack-of-tasks/eigenpy)>=3.9.0 | [conda](https://anaconda.org/conda-forge/eigenpy) (Python bindings)
* (optional) [Pinocchio](https://github.com/stack-of-tasks/pinocchio) | [conda](https://anaconda.org/conda-forge/pinocchio)
* (optional) [Crocoddyl](https://github.com/loco-3d/crocoddyl) | [conda](https://anaconda.org/conda-forge/crocoddyl)
* (optional) [example-robot-data](https://github.com/Gepetto/example-robot-data) | [conda](https://anaconda.org/conda-forge/example-robot-data) (required for some examples and benchmarks)
* (optional) [Catch2](https://github.com/catchorg/Catch2) | [conda](https://anaconda.org/conda-forge/catch2) for testing
* a C++17 compliant compiler
* (optional) [Catch2](https://github.com/catchorg/Catch2) | [conda](https://anaconda.org/conda-forge/catch2) for testing a C++17 compliant compiler
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. C++17 is required.


#### Python dependencies

Expand Down
2 changes: 1 addition & 1 deletion bindings/python/include/aligator/python/fwd.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#pragma once

#include <pinocchio/fwd.hpp>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not an acceptable change, because Pinocchio is an optional dependency. You could add include guards but most likely including Pinocchio's fwd header is too coarse a solution (what was the problem here?)

#include "aligator/context.hpp"

namespace boost {
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/src/modelling/expose-cost-stack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ void exposeCostStack() {
.def(
"getComponent",
+[](CostStack &self, const CostKey &key) -> PolyCost & {
if (!self.components_.contains(key)) {
if (self.components_.find(key) == self.components_.end()) {
key_err_python_manager(key);
}
CostItem &c = self.components_.at(key);
Expand Down
2 changes: 1 addition & 1 deletion examples/se2-car.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ int main() {
solver.setup(problem);
solver.run(problem);

fmt::print("{}\n", fmt::streamed(solver.results_));
fmt::print("{}\n", solver.results_);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This breaks with recent versions of fmtlib. A possible solution would be to specialise the required template class from fmtlib using fmt::ostream_formatter


return 0;
}
60 changes: 60 additions & 0 deletions include/aligator/compat/boost/core/data.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/*
Copyright 2023 Glen Joseph Fernandes
([email protected])

Distributed under the Boost Software License, Version 1.0.
(http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_CORE_DATA_HPP
#define BOOST_CORE_DATA_HPP

#include <iterator>

// Note: MSVC doesn't define __cpp_lib_nonmember_container_access but supports the feature even in C++14 mode
#if (defined(__cpp_lib_nonmember_container_access) && (__cpp_lib_nonmember_container_access >= 201411l)) || \
(defined(_MSC_VER) && (_MSC_VER >= 1900))

namespace boost {
using std::data;
} /* boost */

#else // (defined(__cpp_lib_nonmember_container_access) ...

#include <cstddef>
#include <initializer_list>

namespace boost {

template<class C>
inline constexpr auto
data(C& c) noexcept(noexcept(c.data())) -> decltype(c.data())
{
return c.data();
}

template<class C>
inline constexpr auto
data(const C& c) noexcept(noexcept(c.data())) -> decltype(c.data())
{
return c.data();
}

template<class T, std::size_t N>
inline constexpr T*
data(T(&a)[N]) noexcept
{
return a;
}

template<class T>
inline constexpr const T*
data(std::initializer_list<T> l) noexcept
{
return l.begin();
}

} /* boost */

#endif // (defined(__cpp_lib_nonmember_container_access) ...

#endif
18 changes: 18 additions & 0 deletions include/aligator/compat/boost/core/detail/assert.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
Copyright 2025 Glen Joseph Fernandes
([email protected])

Distributed under the Boost Software License, Version 1.0.
(http://www.boost.org/LICENSE_1_0.txt)
*/
#undef BOOST_CORE_DETAIL_ASSERT

#if !defined(__clang__) && \
!defined(__INTEL_COMPILER) && \
defined(__GNUC__) && \
(__GNUC__ < 5)
#define BOOST_CORE_DETAIL_ASSERT(expr) void(0)
#else
#include <boost/assert.hpp>
#define BOOST_CORE_DETAIL_ASSERT(expr) BOOST_ASSERT(expr)
#endif
59 changes: 59 additions & 0 deletions include/aligator/compat/boost/core/make_span.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
Copyright 2023 Glen Joseph Fernandes
([email protected])

Distributed under the Boost Software License, Version 1.0.
(http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_CORE_MAKE_SPAN_HPP
#define BOOST_CORE_MAKE_SPAN_HPP

#include "aligator/compat/boost/core/span.hpp"

namespace boost {

template<class I>
inline constexpr span<I>
make_span(I* f, std::size_t c) noexcept
{
return span<I>(f, c);
}

template<class I>
inline constexpr span<I>
make_span(I* f, I* l) noexcept
{
return span<I>(f, l);
}

template<class T, std::size_t N>
inline constexpr span<T, N>
make_span(T(&a)[N]) noexcept
{
return span<T, N>(a);
}

template<class T, std::size_t N>
inline constexpr span<T, N>
make_span(std::array<T, N>& a) noexcept
{
return span<T, N>(a);
}

template<class T, std::size_t N>
inline constexpr span<const T, N>
make_span(const std::array<T, N>& a) noexcept
{
return span<const T, N>(a);
}

template<class R>
inline span<typename detail::span_data<R>::type>
make_span(R&& r)
{
return span<typename detail::span_data<R>::type>(std::forward<R>(r));
}

} /* boost */

#endif
Loading
Loading