Skip to content

Commit

Permalink
[core] Move member initialization in header when possible. (#683)
Browse files Browse the repository at this point in the history
* [core] Move member initialization in header when possible.
* [core] Use attributes 'explicit', 'noexcept'.
* [core/python] More robust and generic from/to python converters.
* [misc] More robust build script on unix systems.
* [python/viewer] Do not use 'atexit' anymore to fix memory leaks.
  • Loading branch information
duburcqa committed Jan 2, 2024
1 parent f751a0c commit eb8e39e
Show file tree
Hide file tree
Showing 100 changed files with 1,689 additions and 2,066 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
CMAKE_C_COMPILER: "/usr/bin/clang"
CMAKE_CXX_COMPILER: "/usr/bin/clang++"
CMAKE_CXX_FLAGS: "-DEIGEN_MPL2_ONLY -Wno-deprecated-declarations"
MACOSX_DEPLOYMENT_TARGET: "10.15"
OSX_DEPLOYMENT_TARGET: "10.15"
OSX_ARCHITECTURES: "x86_64;arm64"
WHEEL_ARCH: "universal2"

Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:
"${PYTHON_EXECUTABLE}" -m pip install delocate twine
- name: Build project dependencies
run: |
MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} OSX_ARCHITECTURES=${OSX_ARCHITECTURES} \
OSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} OSX_ARCHITECTURES=${OSX_ARCHITECTURES} \
BUILD_TYPE="${{ matrix.BUILD_TYPE }}" ./build_tools/build_install_deps_unix.sh
"${PYTHON_EXECUTABLE}" -m pip install "torch==${TORCH_VERSION}" -f https://download.pytorch.org/whl/cpu
"${PYTHON_EXECUTABLE}" -m pip install "gymnasium>=0.26,<0.29" "importlib-metadata>=3.3.0"
Expand All @@ -82,7 +82,7 @@ jobs:
cmake "${RootDir}" -DCMAKE_INSTALL_PREFIX="${InstallDir}" -DCMAKE_PREFIX_PATH="${InstallDir}" \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DBOOST_ROOT="${InstallDir}" -DBoost_INCLUDE_DIR="${InstallDir}/include" \
-DBoost_NO_SYSTEM_PATHS=TRUE -DBoost_NO_BOOST_CMAKE=TRUE \
Expand Down Expand Up @@ -126,7 +126,7 @@ jobs:
delocate-wheel -vvv --require-archs "${WHEEL_ARCH}" \
-w "${RootDir}/build/wheelhouse" "${RootDir}/build/pypi/dist/jiminy_py/"*.whl
"${PYTHON_EXECUTABLE}" "${RootDir}/build_tools/wheel_addplat_macos.py" -vvv --rm-orig --clobber \
-p "macosx_${MACOSX_DEPLOYMENT_TARGET//./_}_${WHEEL_ARCH}" "${RootDir}/build/wheelhouse/"*.whl
-p "macosx_${OSX_DEPLOYMENT_TARGET//./_}_${WHEEL_ARCH}" "${RootDir}/build/wheelhouse/"*.whl
"${PYTHON_EXECUTABLE}" -m pip install --force-reinstall --no-deps "${RootDir}/build/wheelhouse/"*.whl
- name: Upload the wheel for Linux of jiminy_py
if: matrix.BUILD_TYPE == 'Release'
Expand Down
48 changes: 26 additions & 22 deletions build_tools/build_install_deps_unix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ if [ -z ${BUILD_TYPE} ]; then
fi

### Set the macos sdk version min if undefined
if [ -z ${MACOSX_DEPLOYMENT_TARGET} ]; then
MACOSX_DEPLOYMENT_TARGET="10.15"
echo "MACOSX_DEPLOYMENT_TARGET is unset. Defaulting to '${MACOSX_DEPLOYMENT_TARGET}'."
if [ -z ${OSX_DEPLOYMENT_TARGET} ]; then
OSX_DEPLOYMENT_TARGET="10.15"
echo "OSX_DEPLOYMENT_TARGET is unset. Defaulting to '${OSX_DEPLOYMENT_TARGET}'."
fi

### Set the build architecture if undefined
if [ -z ${OSX_ARCHITECTURES} ]; then
OSX_ARCHITECTURES="x86_64"
OSX_ARCHITECTURES="arm64"
echo "OSX_ARCHITECTURES is unset. Defaulting to '${OSX_ARCHITECTURES}'."
fi

Expand All @@ -32,6 +32,8 @@ if [ -z ${CMAKE_CXX_COMPILER} ]; then
fi

### Set common CMAKE_C/CXX_FLAGS
# '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION' flag is required to compile `boost::container_hash::hash`
# with C++17 enabled from "old" releases of Boost.
CMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -Wno-deprecated-declarations"
if [ "${BUILD_TYPE}" == "Release" ]; then
CMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -DNDEBUG -O3"
Expand All @@ -43,8 +45,8 @@ fi
echo "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}"

### Get the fullpath of Jiminy project
ScriptDir="$(cd "$(dirname "$0")" >/dev/null 2>&1 && pwd)"
RootDir="$(dirname $ScriptDir)"
ScriptDir="$(cd "$(dirname -- $0)" >/dev/null 2>&1 && pwd)"
RootDir="$(dirname -- ${ScriptDir})"

### Set the fullpath of the install directory, then creates it
InstallDir="${RootDir}/install"
Expand Down Expand Up @@ -79,7 +81,7 @@ unset Boost_ROOT
# - Boost.Python == 1.75 fixes support of PyPy
# - Boost.Python == 1.76 fixes error handling at import
# - Boost >= 1.75 is required to compile ouf-of-the-box on MacOS for intel and Apple Silicon
# - Boost < 1.77 causes compilation failure with gcc-12.
# - Boost < 1.77 causes compilation failure with gcc-12 if not patched
# - Boost >= 1.77 affects the memory layout to improve alignment, breaking retro-compatibility
if [ ! -d "${RootDir}/boost" ]; then
git clone --depth 1 https://github.com/boostorg/boost.git "${RootDir}/boost"
Expand Down Expand Up @@ -206,6 +208,9 @@ git apply --reject --whitespace=fix "${RootDir}/build_tools/patch_deps_unix/pino
# * Set the cmake cache variable CMAKE_PREFIX_PATH
# * Set the environment variable Boost_DIR

# Must add toolset to search path for boost build system to find it
PATH="${PATH}:$(dirname -- ${CMAKE_C_COMPILER})"

### Build and install the build tool b2 (build-ception !)
cd "${RootDir}/boost"
./bootstrap.sh --prefix="${InstallDir}" --with-python="${PYTHON_EXECUTABLE}"
Expand Down Expand Up @@ -234,7 +239,7 @@ else
fi
CMAKE_CXX_FLAGS_B2="-fPIC -std=c++11"
if [ "${OSTYPE//[0-9.]/}" == "darwin" ]; then
CMAKE_CXX_FLAGS_B2="${CMAKE_CXX_FLAGS_B2} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}"
CMAKE_CXX_FLAGS_B2="${CMAKE_CXX_FLAGS_B2} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}"
fi
if grep -q ";" <<< "${OSX_ARCHITECTURES}" ; then
CMAKE_CXX_FLAGS_B2="${CMAKE_CXX_FLAGS_B2} $(echo "-arch ${OSX_ARCHITECTURES}" | sed "s/;/ -arch /g")"
Expand All @@ -249,7 +254,7 @@ mkdir -p "${RootDir}/boost/build"
architecture= address-model=64 $DebugOptionsB2 \
threading=single link=static runtime-link=static \
cxxflags="${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_B2}" \
linkflags="${CMAKE_CXX_FLAGS_B2}" \
linkflags="${CMAKE_CXX_FLAGS_B2}" toolset="$(basename -- ${CMAKE_C_COMPILER})" \
variant="$BuildTypeB2" install -q -d0 -j2

./b2 --prefix="${InstallDir}" --build-dir="${RootDir}/boost/build" \
Expand All @@ -258,7 +263,7 @@ mkdir -p "${RootDir}/boost/build"
architecture= address-model=64 $DebugOptionsB2 \
threading=single link=shared runtime-link=shared \
cxxflags="${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_B2}" \
linkflags="${CMAKE_CXX_FLAGS_B2}" \
linkflags="${CMAKE_CXX_FLAGS_B2}" toolset="$(basename -- ${CMAKE_C_COMPILER})" \
variant="$BuildTypeB2" install -q -d0 -j2

#################################### Build and install eigen3 ##########################################
Expand All @@ -277,7 +282,7 @@ cd "${RootDir}/eigenpy/build"
cmake "${RootDir}/eigenpy" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" -DCMAKE_PREFIX_PATH="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF \
-DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" -DPYTHON_STANDARD_LAYOUT=ON \
Expand All @@ -295,12 +300,11 @@ cd "${RootDir}/tinyxml/build"
cmake "${RootDir}/tinyxml" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
-DCMAKE_CXX_FLAGS_RELEASE_INIT="" -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -DTIXML_USE_STL" \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"

make install -j2

############################## Build and install console_bridge ########################################
Expand All @@ -310,7 +314,7 @@ cd "${RootDir}/console_bridge/build"
cmake "${RootDir}/console_bridge" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
-DCMAKE_CXX_FLAGS_RELEASE_INIT="" -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
Expand All @@ -330,7 +334,7 @@ cd "${RootDir}/urdfdom/build"
cmake "${RootDir}/urdfdom" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" -DCMAKE_PREFIX_PATH="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON -DBUILD_TESTING=OFF \
-DCMAKE_CXX_FLAGS_RELEASE_INIT="" -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
Expand All @@ -343,7 +347,7 @@ cd "${RootDir}/cppad/build"
cmake "${RootDir}/cppad" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_CXX_FLAGS_RELEASE_INIT="" -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
make install -j2
Expand All @@ -356,7 +360,7 @@ cd "${RootDir}/cppadcodegen/build"
cmake "${RootDir}/cppadcodegen" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DGOOGLETEST_GIT=ON \
-DCMAKE_CXX_FLAGS_RELEASE_INIT="" -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
Expand All @@ -371,14 +375,14 @@ cd "${RootDir}/assimp/build"
cmake "${RootDir}/assimp" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_ZLIB=ON -DASSIMP_BUILD_TESTS=OFF \
-DASSIMP_BUILD_SAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_TESTING=OFF \
-DCMAKE_C_FLAGS="${CMAKE_CXX_FLAGS} -DHAVE_HIDDEN" -DCMAKE_CXX_FLAGS_RELEASE_INIT="" \
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-strict-overflow -Wno-tautological-compare -Wno-array-compare $(
) -Wno-alloc-size-larger-than -Wno-unknown-warning-option -Wno-unknown-warning" \
) -Wno-alloc-size-larger-than -Wno-unknown-warning-option -Wno-unknown-warning -Wno-error=array-bounds" \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"
make install -j2

Expand All @@ -389,7 +393,7 @@ cd "${RootDir}/hpp-fcl/third-parties/qhull/build"
cmake "${RootDir}/hpp-fcl/third-parties/qhull" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
-DCMAKE_C_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-conversion" \
Expand All @@ -401,7 +405,7 @@ cd "${RootDir}/hpp-fcl/build"
cmake "${RootDir}/hpp-fcl" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" -DCMAKE_PREFIX_PATH="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF \
-DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" -DPYTHON_STANDARD_LAYOUT=ON \
Expand All @@ -423,7 +427,7 @@ cd "${RootDir}/pinocchio/build"
cmake "${RootDir}/pinocchio" -Wno-dev -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}" -DCMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}" \
-DCMAKE_INSTALL_PREFIX="${InstallDir}" -DCMAKE_PREFIX_PATH="${InstallDir}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF \
-DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" -DPYTHON_STANDARD_LAYOUT=ON \
Expand Down
2 changes: 1 addition & 1 deletion build_tools/cmake/base.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ else()
-Wno-unknown-warning -Wno-undefined-var-template \
-Wno-long-long -Wno-error=maybe-uninitialized \
-Wno-error=uninitialized -Wno-error=deprecated \
-Wno-error=array-bounds")
-Wno-error=array-bounds -Wno-error=redundant-move")
endif()

# Shared libraries need PIC
Expand Down
10 changes: 5 additions & 5 deletions core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ target_include_directories(${PROJECT_NAME}-object PUBLIC
)

# Configure jsoncpp and hdf5 dependencies.
# Note that defining only BUILD_INTERFACE will prevent the header files to be exported,
# Note that defining only BUILD_INTERFACE will prevent the header files from being exported,
# thus not making them available by a side-project depending on Jiminy. However, since
# jsoncpp is installed on the system as an external project, those side-projects must
# simply call find_package(jsoncpp) and it will be included automatically.
Expand All @@ -124,7 +124,7 @@ target_include_directories(${PROJECT_NAME}-object SYSTEM PUBLIC
$<BUILD_INTERFACE:${INSTALL_DIR}/include>
)

# Linking with other libraries (in such a way to avoid any warnings compiling them)
# Linking with other libraries (as a way to avoid any warnings compiling them)
target_link_libraries_system(${PROJECT_NAME}-object pinocchio::pinocchio hpp-fcl::hpp-fcl Eigen3::Eigen)
if(NOT "${urdfdom_LIBRARIES}" MATCHES ".*tinyxml.*")
list(APPEND urdfdom_LIBRARIES "tinyxml")
Expand All @@ -133,7 +133,7 @@ target_link_libraries(${PROJECT_NAME}-object ${urdfdom_LIBRARIES})
target_link_libraries(${PROJECT_NAME}-object jsoncpp::jsoncpp hdf5::hdf5_cpp hdf5::hdf5 hdf5::zlib) # Beware the order is critical !
if(WIN32)
# Adding this dependency on Windows is necessary since HDF5 >= 1.14.3.
# Hopefully this broken transitive dependency when build static libary
# Hopefully this broken transitive dependency when building static libary
# will be fixed. See: https://github.com/HDFGroup/hdf5/issues/3663
target_link_libraries(${PROJECT_NAME}-object shlwapi)
endif()
Expand All @@ -143,7 +143,7 @@ if(UNIX AND NOT APPLE)
target_link_libraries(${PROJECT_NAME}-object ${CMAKE_DL_LIBS} -lrt)
endif()

# Create both static and shared libraries from intermediary object
# Create both static and shared libraries from the intermediary object
add_library(${PROJECT_NAME} STATIC $<TARGET_OBJECTS:${PROJECT_NAME}-object>)
target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}-object)
add_library(${LIBRARY_NAME} SHARED $<TARGET_OBJECTS:${PROJECT_NAME}-object>)
Expand Down Expand Up @@ -171,7 +171,7 @@ if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif()

# Specialize jiminy core configuration file and install it
# Specialize Jiminy core configuration file and install it
set(JIMINY_CONFIG_IN "${CMAKE_SOURCE_DIR}/build_tools/cmake/jiminyConfig.cmake.in")
set(JIMINY_CONFIG_OUT "${CMAKE_BINARY_DIR}/cmake/jiminyConfig.cmake")
configure_file(${JIMINY_CONFIG_IN} ${JIMINY_CONFIG_OUT} @ONLY)
Expand Down
3 changes: 2 additions & 1 deletion core/examples/double_pendulum/double_pendulum.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@
#include <filesystem>

#include "jiminy/core/fwd.h"
#include "jiminy/core/hardware/fwd.h"
#include "jiminy/core/telemetry/fwd.h"
#include "jiminy/core/utilities/helpers.h"
#include "jiminy/core/io/file_device.h"
#include "jiminy/core/telemetry/telemetry_recorder.h"
#include "jiminy/core/hardware/abstract_sensor.h"
#include "jiminy/core/hardware/basic_motors.h"
#include "jiminy/core/control/controller_functor.h"
Expand Down
3 changes: 2 additions & 1 deletion core/examples/external_project/double_pendulum.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@
#include <filesystem>

#include "jiminy/core/fwd.h"
#include "jiminy/core/hardware/fwd.h"
#include "jiminy/core/telemetry/fwd.h"
#include "jiminy/core/utilities/helpers.h"
#include "jiminy/core/io/file_device.h"
#include "jiminy/core/telemetry/telemetry_recorder.h"
#include "jiminy/core/hardware/abstract_sensor.h"
#include "jiminy/core/hardware/basic_motors.h"
#include "jiminy/core/control/controller_functor.h"
Expand Down
18 changes: 9 additions & 9 deletions core/include/jiminy/core/constraints/abstract_constraint.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ namespace jiminy
DISABLE_COPY(AbstractConstraintBase)

public:
AbstractConstraintBase() = default;
explicit AbstractConstraintBase() = default;
virtual ~AbstractConstraintBase();

/// \brief Refresh the internal buffers and proxies.
Expand Down Expand Up @@ -77,25 +77,25 @@ namespace jiminy

public:
/// \brief Lambda multipliers.
Eigen::VectorXd lambda_;
Eigen::VectorXd lambda_{};

protected:
/// \brief Model on which the constraint operates.
std::weak_ptr<const Model> model_;
std::weak_ptr<const Model> model_{};
/// \brief Flag to indicate whether the constraint has been attached to a model.
bool isAttached_;
bool isAttached_{false};
/// \brief Flag to indicate whether the constraint is enabled.
///
/// \remarks Handling of this flag is done at Robot level.
bool isEnabled_;
bool isEnabled_{false};
/// \brief Position-related baumgarte stabilization gain.
double kp_;
double kp_{0.0};
/// \brief Velocity-related baumgarte stabilization gain.
double kd_;
double kd_{0.0};
/// \brief Jacobian of the constraint.
Eigen::MatrixXd jacobian_;
Eigen::MatrixXd jacobian_{};
/// \brief Drift of the constraint.
Eigen::VectorXd drift_;
Eigen::VectorXd drift_{};
};

template<class T>
Expand Down
Loading

0 comments on commit eb8e39e

Please sign in to comment.