Skip to content
Merged
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 tutorial_1/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ RUN echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robot
RUN echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/wip/packages/debian/pub noble robotpkg" >> /etc/apt/sources.list.d/robotpkg.list

RUN apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -qqy \
libgraphviz-dev libqt5svg5-dev pyqt5-dev qtbase5-private-dev qttools5-dev \
libgraphviz-dev libqt5svg5-dev pyqt5-dev qtbase5-private-dev qttools5-dev npm \
robotpkg-py312-pinocchio robotpkg-qt5-qgv \
robotpkg-hpp-util+doc robotpkg-hpp-statistics+doc \
robotpkg-hpp-pinocchio+doc robotpkg-hpp-constraints+doc \
robotpkg-hpp-pinocchio+doc \
libboost-filesystem1.83-dev libboost-python1.83-dev \
libboost-thread1.83-dev python3-numpy liburdfdom-dev wget python3.12-venv \
python-is-python3 doxygen \
Expand Down
179 changes: 124 additions & 55 deletions tutorial_1/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,48 +28,59 @@ GIT_QUIET=--quiet
# Qt version should be either 4 or 5
QT_VERSION=5
INSTALL_DOCUMENTATION=ON
PYTHON_FLAGS=-DPYTHON_STANDARD_LAYOUT=ON
BUILD_JOBS=4

##################################
# {{{ Dependencies

HPP_EXTRA_FLAGS= -DBUILD_TESTING=${BUILD_TESTING}
# }}}
##################################
# {{{ Packages supporting HPP_VERSION

# Either a version tag (e.g. v4.3.0), stable or devel
HPP_VERSION=devel
HPP_EXTRA_FLAGS= -DBUILD_TESTING=${BUILD_TESTING} -DAUTO_UNINSTALL=OFF -DDOXYGEN_GENERATE_XML=YES

jrl-cmakemodules_branch=master
jrl-cmakemodules_repository=${JRL_REPO}

hpp-core_branch=devel
hpp-constraints_branch=${HPP_VERSION}
hpp-constraints_repository=${HPP_REPO}
hpp-constraints_extra_flags=${HPP_EXTRA_FLAGS}

hpp-core_branch=${HPP_VERSION}
hpp-core_repository=${HPP_REPO}
hpp-core_extra_flags=${HPP_EXTRA_FLAGS}

hpp-manipulation_branch=devel
hpp-python_branch=${HPP_VERSION}
hpp-python_repository=${HPP_REPO}
hpp-python_extra_flags=${HPP_EXTRA_FLAGS} -DPYTHON_STANDARD_LAYOUT=ON

hpp-doc_branch=${HPP_VERSION}
hpp-doc_repository=${HPP_REPO}

hpp-manipulation_branch=${HPP_VERSION}
hpp-manipulation_repository=${HPP_REPO}
hpp-manipulation_extra_flags=${HPP_EXTRA_FLAGS}
hpp-manipulation_extra_flags= ${HPP_EXTRA_FLAGS}

hpp-manipulation-urdf_branch=devel
hpp-manipulation-urdf_branch=${HPP_VERSION}
hpp-manipulation-urdf_repository=${HPP_REPO}
hpp-manipulation-urdf_extra_flags=${HPP_EXTRA_FLAGS}

hpp-python_branch=devel
hpp-python_repository=${HPP_REPO}
hpp-python_extra_flags=${HPP_EXTRA_FLAGS} ${PYTHON_FLAGS}

hpp-doc_branch=devel
hpp-doc_repository=${HPP_REPO}

hpp_tutorial_branch=devel
hpp_tutorial_branch=${HPP_VERSION}
hpp_tutorial_repository=${HPP_REPO}
hpp_tutorial_extra_flags=${HPP_EXTRA_FLAGS} ${PYTHON_FLAGS}
hpp_tutorial_extra_flags=${HPP_EXTRA_FLAGS} -DPYTHON_STANDARD_LAYOUT=ON

hpp-gepetto-viewer_branch=devel
hpp-gepetto-viewer_branch=${HPP_VERSION}
hpp-gepetto-viewer_repository=${HPP_REPO}
hpp-gepetto-viewer_extra_flags= ${PYTHON_FLAGS} -DUSE_HPP_PYTHON=ON -DINSTALL_DOCUMENTATION=OFF
hpp-gepetto-viewer_extra_flags= -DINSTALL_DOCUMENTATION=OFF -DUSE_HPP_PYTHON=ON \
-DPYTHON_STANDARD_LAYOUT=ON

hpp-plot_branch=devel
hpp-plot_branch=${HPP_VERSION}
hpp-plot_repository=${HPP_REPO}
hpp-plot_extra_flags= -DINSTALL_DOCUMENTATION=OFF
hpp-plot_extra_flags= -DINSTALL_DOCUMENTATION=OFF

hpp-exec_branch=devel
hpp-exec_branch=${HPP_VERSION}
hpp-exec_repository=${HPP_REPO}
hpp-exec_extra_flags=${PYTHON_FLAGS}

Expand All @@ -81,9 +92,9 @@ toppra_repository=${TOPPRA_REPO}
toppra_branch=0.6.7
toppra_extra_flags= -DBUILD_TESTS=OFF -DPYTHON_BINDINGS=OFF

hpp-toppra_branch=${HPP_VERSION}
hpp-toppra_repository=${HPP_REPO}
hpp-toppra_branch=devel
hpp-toppra_extra_flags=
hpp-toppra_extra_flags= -DPYTHON_STANDARD_LAYOUT=ON

# }}}
##################################
Expand All @@ -108,19 +119,20 @@ python-venv:
##################################
# {{{ Dependencies declaration

jrl-cmakemodules.configure.dep: jrl-cmakemodules.checkout
hpp-doc.configure.dep: hpp-doc.checkout
hpp-core.configure.dep: hpp-core.checkout jrl-cmakemodules.install
jrl-cmakemodules.configure.dep: jrl-cmakemodules.checkout
hpp-constraints.configure.dep: hpp-constraints.checkout jrl-cmakemodules.install
hpp-core.configure.dep: hpp-core.checkout hpp-constraints.install
hpp-manipulation.configure.dep: hpp-manipulation.checkout hpp-core.install
hpp-manipulation-urdf.configure.dep: hpp-manipulation-urdf.checkout hpp-manipulation.install
hpp-python.configure.dep: hpp-python.checkout jrl-cmakemodules.install hpp-manipulation-urdf.install
hpp-plot.configure.dep: hpp-plot.checkout jrl-cmakemodules.install hpp-manipulation.install
hpp-python.configure.dep: hpp-python.checkout hpp-manipulation-urdf.install
hpp-plot.configure.dep: hpp-plot.checkout hpp-manipulation.install
hpp_tutorial.configure.dep: hpp_tutorial.checkout hpp-gepetto-viewer.install \
hpp-python.install
hpp-gepetto-viewer.configure.dep: hpp-gepetto-viewer.checkout python-venv hpp-python.install
toppra.configure.dep: toppra.checkout
hpp-toppra.configure.dep: hpp-toppra.checkout jrl-cmakemodules.install toppra.install
hpp-exec.configure.dep: hpp-exec.checkout jrl-cmakemodules.install
hpp-toppra.configure.dep: hpp-toppra.checkout toppra.install
hpp-exec.configure.dep: hpp-exec.checkout

# }}}
##################################
Expand Down Expand Up @@ -154,11 +166,18 @@ update:
${MAKE} "$$child_dir".update; \
done

test:
@for child_dir in $$(ls ${SRC_DIR}); do \
test -d "$$child_dir" || continue; \
test -d "$$child_dir/.git" || continue; \
${MAKE} "$$child_dir".test; \
done

%.checkout:
if [ -d $(@:.checkout=) ]; then \
if [ -d $(@:.checkout=)/.git ]; then \
echo "$(@:.checkout=) already checkout out."; \
else \
git clone ${GIT_QUIET} --recursive -b ${$(@:.checkout=)_branch} ${$(@:.checkout=)_repository}/$(@:.checkout=); \
git clone ${GIT_QUIET} -b ${$(@:.checkout=)_branch} ${$(@:.checkout=)_repository}/$(@:.checkout=); \
fi \

%.fetch:
Expand All @@ -181,41 +200,88 @@ update:
git fetch origin --tags;\
git checkout -q --detach;\
git branch -f ${$(@:.update=)_branch} origin/${$(@:.update=)_branch};\
git checkout -q ${$(@:.update=)_branch};\
git submodule update; \
git checkout -q ${$(@:.update=)_branch}; \
fi


%.configure.dep: %.checkout

%.configure: %.configure.dep
${MAKE} $(@:.configure=).configure_nodep

%.configure_nodep:%.checkout
mkdir -p ${SRC_DIR}/$(@:.configure_nodep=)/${BUILD_FOLDER}; \
cd ${SRC_DIR}/$(@:.configure_nodep=)/${BUILD_FOLDER}; \
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_HPP_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DENFORCE_MINIMAL_CXX_STANDARD=ON \
-DINSTALL_DOCUMENTATION=${INSTALL_DOCUMENTATION} \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
${CLANG_FLAGS} \
${$(@:.configure_nodep=)_extra_flags} ..
%.configure-py: %.configure-py.dep
${MAKE} $(@:.configure-py=).configure_nodep-py

%.install:%.configure
${MAKE} -C ${SRC_DIR}/$(@:.install=)/${BUILD_FOLDER} install
%.configure_nodep:%.checkout
cmake \
-DAUTO_UNINSTALL=OFF \
-DBUILD_PYTHON_INTERFACE=OFF \
-DCMAKE_INSTALL_PREFIX=${INSTALL_HPP_DIR} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DENFORCE_MINIMAL_CXX_STANDARD=ON \
-DINSTALL_DOCUMENTATION=${INSTALL_DOCUMENTATION} \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
${$(@:.configure_nodep=)_extra_flags} \
-B ${SRC_DIR}/$(@:.configure_nodep=)/${BUILD_FOLDER} \
-S ${SRC_DIR}/$(@:.configure_nodep=)

%.configure_nodep-py:%.checkout
cmake \
-DAUTO_UNINSTALL=OFF \
-DBUILD_PYTHON_INTERFACE=ON \
-DBUILD_STANDALONE_PYTHON_INTERFACE=ON \
-DCMAKE_INSTALL_PREFIX=${INSTALL_HPP_DIR} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DENFORCE_MINIMAL_CXX_STANDARD=ON \
-DINSTALL_DOCUMENTATION=${INSTALL_DOCUMENTATION} \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
${$(@:.configure_nodep-py=)_extra_flags} \
-B ${SRC_DIR}/$(@:.configure_nodep-py=)/${BUILD_FOLDER}-py \
-S ${SRC_DIR}/$(@:.configure_nodep-py=)


%.build:%.configure
cmake --build ${SRC_DIR}/$(@:.build=)/${BUILD_FOLDER} -j $(or $($(@:.build=)_jobs),${BUILD_JOBS})

%.build-py:%.configure-py
cmake --build ${SRC_DIR}/$(@:.build-py=)/${BUILD_FOLDER}-py -j $(or $($(@:.build-py=)_jobs),${BUILD_JOBS})

%.test:%.build
cmake --build ${SRC_DIR}/$(@:.test=)/${BUILD_FOLDER} -t test

%.test-py:%.build-py
cmake --build ${SRC_DIR}/$(@:.test-py=)/${BUILD_FOLDER}-py -t test

%.install:%.build
cmake --build ${SRC_DIR}/$(@:.install=)/${BUILD_FOLDER} -t install

%.install-py:%.build-py
cmake --build ${SRC_DIR}/$(@:.install-py=)/${BUILD_FOLDER}-py -t install

%.install_nodep:%.configure_nodep
${MAKE} -C ${SRC_DIR}/$(@:.install_nodep=)/${BUILD_FOLDER} install
cmake --build ${SRC_DIR}/$(@:.install_nodep=)/${BUILD_FOLDER} -t install

%.install_nodep-py:%.configure_nodep-py
cmake --build ${SRC_DIR}/$(@:.install_nodep-py=)/${BUILD_FOLDER}-py -t install

%.uninstall:
${MAKE} -C ${SRC_DIR}/$(@:.uninstall=)/${BUILD_FOLDER} uninstall
cmake --build ${SRC_DIR}/$(@:.uninstall=)/${BUILD_FOLDER} -t uninstall

%.uninstall-py:
cmake --build ${SRC_DIR}/$(@:.uninstall-py=)/${BUILD_FOLDER}-py -t uninstall

%.clean:
${MAKE} -C ${SRC_DIR}/$(@:.clean=)/${BUILD_FOLDER} clean
cmake --build ${SRC_DIR}/$(@:.clean=)/${BUILD_FOLDER} -t clean

%.clean-py:
cmake --build ${SRC_DIR}/$(@:.clean-py=)/${BUILD_FOLDER}-py -t clean

%.very-clean:
rm -rf ${SRC_DIR}/$(@:.very-clean=)/${BUILD_FOLDER}/*

%.very-clean-py:
rm -rf ${SRC_DIR}/$(@:.very-clean-py=)/${BUILD_FOLDER}-py/*

%.status:
@cd ${SRC_DIR}/$(@:.status=); \
echo \
Expand All @@ -232,16 +298,19 @@ update:
toppra.configure_nodep:toppra.checkout
mkdir -p ${SRC_DIR}/$(@:.configure_nodep=)/cpp/${BUILD_FOLDER}; \
cd ${SRC_DIR}/$(@:.configure_nodep=)/cpp/${BUILD_FOLDER}; \
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_HPP_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BU\
ILD_TYPE=${BUILD_TYPE} \
-DENFORCE_MINIMAL_CXX_STANDARD=ON \
-DINSTALL_DOCUMENTATION=${INSTALL_DOCUMENTATION} \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
${CLANG_FLAGS} \
${$(@:.configure_nodep=)_extra_flags} ..
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_HPP_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DENFORCE_MINIMAL_CXX_STANDARD=ON \
-DINSTALL_DOCUMENTATION=${INSTALL_DOCUMENTATION} \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
${CLANG_FLAGS} \
${$(@:.configure_nodep=)_extra_flags} ..

toppra.install:toppra.configure
${MAKE} -C ${SRC_DIR}/$(@:.install=)/cpp/${BUILD_FOLDER} install

toppra.install_nodep:toppra.configure_nodep
${MAKE} -C ${SRC_DIR}/$(@:.install_nodep=)/cpp/${BUILD_FOLDER} install

# }}}

# vim: foldmethod=marker foldlevel=0