From e55720f87473bc76a2940b37e20d59b1d24146e4 Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Thu, 28 Mar 2019 13:12:33 +0100
Subject: [PATCH] [wip/{py-,}multicontact-api] Initial import

---
 Makefile                             |  2 +
 multicontact-api/DESCR               |  1 +
 multicontact-api/Makefile            | 37 +++++++++++++++++++
 multicontact-api/PLIST               | 55 ++++++++++++++++++++++++++++
 multicontact-api/depend.mk           | 27 ++++++++++++++
 multicontact-api/distinfo            |  3 ++
 py-multicontact-api/DESCR            |  1 +
 py-multicontact-api/Makefile         | 40 ++++++++++++++++++++
 py-multicontact-api/PLIST            |  2 +
 py-multicontact-api/depend.mk        | 27 ++++++++++++++
 py-multicontact-api/distinfo         |  6 +++
 py-multicontact-api/patches/patch-aa | 12 ++++++
 py-multicontact-api/patches/patch-ab | 13 +++++++
 py-multicontact-api/patches/patch-ad | 40 ++++++++++++++++++++
 14 files changed, 266 insertions(+)
 create mode 100644 multicontact-api/DESCR
 create mode 100644 multicontact-api/Makefile
 create mode 100644 multicontact-api/PLIST
 create mode 100644 multicontact-api/depend.mk
 create mode 100644 multicontact-api/distinfo
 create mode 100644 py-multicontact-api/DESCR
 create mode 100644 py-multicontact-api/Makefile
 create mode 100644 py-multicontact-api/PLIST
 create mode 100644 py-multicontact-api/depend.mk
 create mode 100644 py-multicontact-api/distinfo
 create mode 100644 py-multicontact-api/patches/patch-aa
 create mode 100644 py-multicontact-api/patches/patch-ab
 create mode 100644 py-multicontact-api/patches/patch-ad

diff --git a/Makefile b/Makefile
index 54d36fbc..a6d205a0 100644
--- a/Makefile
+++ b/Makefile
@@ -64,6 +64,7 @@ SUBDIR+=	morse-ros
 SUBDIR+=	move3d-assets
 SUBDIR+=	move3d-studio
 SUBDIR+=	msgconnector
+SUBDIR+=	multicontact-api
 SUBDIR+=	mumps
 SUBDIR+=	octovis
 SUBDIR+=	ompl
@@ -97,6 +98,7 @@ SUBDIR+=	py-jsbsim
 SUBDIR+=	py-mavlink
 SUBDIR+=	py-morse
 SUBDIR+=	py-mraa
+SUBDIR+=	py-multicontact-api
 SUBDIR+=	py-parametric-curves
 SUBDIR+=	py-qpoases
 SUBDIR+=	py-qt-gepetto-pythonqt
diff --git a/multicontact-api/DESCR b/multicontact-api/DESCR
new file mode 100644
index 00000000..b79a33d5
--- /dev/null
+++ b/multicontact-api/DESCR
@@ -0,0 +1 @@
+Multi-contact locomotion for multi-body systems
diff --git a/multicontact-api/Makefile b/multicontact-api/Makefile
new file mode 100644
index 00000000..c5a1bce4
--- /dev/null
+++ b/multicontact-api/Makefile
@@ -0,0 +1,37 @@
+# robotpkg Makefile for:	wip/multicontact-api
+# Created:			Guilhem Saurel on Thu, 28 Mar 2019
+#
+
+ORG=			loco-3d
+NAME=			multicontact-api
+VERSION=		1.0.0
+
+DISTNAME=		${NAME}-${VERSION}
+
+MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
+MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}/${ORG}/${NAME}.git
+CHECKOUT_VCS_OPTS+=	--recursive
+
+CATEGORIES=		wip
+COMMENT=		Multi-contact locomotion for multi-body systems
+LICENSE=		2-clause-bsd
+MAINTAINER=		gepetto-soft@laas.fr
+
+CMAKE_ARGS+=		-DBUILD_PYTHON_INTERFACE=OFF
+
+DYNAMIC_PLIST_DIRS+=	share/doc/${NAME}
+
+include ../../graphics/assimp/depend.mk
+include ../../graphics/urdfdom/depend.mk
+include ../../mapping/octomap/depend.mk
+include ../../math/eigen3/depend.mk
+include ../../math/pinocchio/depend.mk
+include ../../path/hpp-fcl/depend.mk
+include ../../devel/boost-headers/depend.mk
+include ../../devel/boost-libs/depend.mk
+include ../../pkgtools/pkg-config/depend.mk
+include ../../mk/sysdep/cmake.mk
+include ../../mk/language/c.mk
+include ../../mk/language/c++.mk
+
+include ../../mk/robotpkg.mk
diff --git a/multicontact-api/PLIST b/multicontact-api/PLIST
new file mode 100644
index 00000000..f43a29a6
--- /dev/null
+++ b/multicontact-api/PLIST
@@ -0,0 +1,55 @@
+@comment Thu Mar 28 12:44:18 CET 2019
+include/multicontact-api/bindings/python/container/array.hpp
+include/multicontact-api/bindings/python/container/reference-wrapper.hpp
+include/multicontact-api/bindings/python/container/visitor.hpp
+include/multicontact-api/bindings/python/fwd.hpp
+include/multicontact-api/bindings/python/geometry/ellipsoid.hpp
+include/multicontact-api/bindings/python/geometry/expose-geometry.hpp
+include/multicontact-api/bindings/python/geometry/linear-cone.hpp
+include/multicontact-api/bindings/python/geometry/second-order-cone.hpp
+include/multicontact-api/bindings/python/scenario/contact-model-planar.hpp
+include/multicontact-api/bindings/python/scenario/contact-patch.hpp
+include/multicontact-api/bindings/python/scenario/contact-phase-humanoid.hpp
+include/multicontact-api/bindings/python/scenario/contact-phase.hpp
+include/multicontact-api/bindings/python/scenario/contact-sequence.hpp
+include/multicontact-api/bindings/python/scenario/enums.hpp
+include/multicontact-api/bindings/python/scenario/expose-scenario.hpp
+include/multicontact-api/bindings/python/scenario/ms-interval.hpp
+include/multicontact-api/bindings/python/serialization/archive.hpp
+include/multicontact-api/bindings/python/trajectories/cubic-hermite-spline.hpp
+include/multicontact-api/bindings/python/trajectories/expose-trajectories.hpp
+include/multicontact-api/bindings/python/utils/base.hpp
+include/multicontact-api/bindings/python/utils/printable.hpp
+include/multicontact-api/config.hh
+include/multicontact-api/container/ref.hpp
+include/multicontact-api/deprecated.hh
+include/multicontact-api/geometry/ellipsoid.hpp
+include/multicontact-api/geometry/fwd.hpp
+include/multicontact-api/geometry/linear-cone.hpp
+include/multicontact-api/geometry/second-order-cone.hpp
+include/multicontact-api/math/cumsum.hpp
+include/multicontact-api/math/factorial.hpp
+include/multicontact-api/math/nrand.hpp
+include/multicontact-api/math/search.hpp
+include/multicontact-api/scenario/constraint-gmm.hpp
+include/multicontact-api/scenario/constraint-soc.hpp
+include/multicontact-api/scenario/constraint.hpp
+include/multicontact-api/scenario/contact-constraint-planar.hpp
+include/multicontact-api/scenario/contact-constraint.hpp
+include/multicontact-api/scenario/contact-model-planar.hpp
+include/multicontact-api/scenario/contact-patch.hpp
+include/multicontact-api/scenario/contact-phase-humanoid.hpp
+include/multicontact-api/scenario/contact-phase.hpp
+include/multicontact-api/scenario/contact-sequence.hpp
+include/multicontact-api/scenario/fwd.hpp
+include/multicontact-api/scenario/ms-interval.hpp
+include/multicontact-api/serialization/aligned-vector.hpp
+include/multicontact-api/serialization/archive.hpp
+include/multicontact-api/serialization/eigen-matrix.hpp
+include/multicontact-api/serialization/fwd.hpp
+include/multicontact-api/serialization/spatial.hpp
+include/multicontact-api/serialization/xml.hpp
+include/multicontact-api/trajectories/cubic-hermite-spline.hpp
+include/multicontact-api/trajectories/fwd.hpp
+include/multicontact-api/warning.hh
+lib/pkgconfig/multicontact-api.pc
diff --git a/multicontact-api/depend.mk b/multicontact-api/depend.mk
new file mode 100644
index 00000000..af870c47
--- /dev/null
+++ b/multicontact-api/depend.mk
@@ -0,0 +1,27 @@
+# robotpkg depend.mk for:	wip/multicontact-api
+# Created:			Guilhem Saurel on Thu, 28 Mar 2019
+#
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH}+
+MULTICONTACT_API_DEPEND_MK:=	${MULTICONTACT_API_DEPEND_MK}+
+
+ifeq (+,$(DEPEND_DEPTH))
+DEPEND_PKG+=		multicontact-api
+endif
+
+ifeq (+,$(MULTICONTACT_API_DEPEND_MK)) # ------------------------------------------
+
+PREFER.multicontact-api?=	robotpkg
+
+SYSTEM_SEARCH.multicontact-api=\
+  'include/multicontact-api/config.hh:/MULTICONTACT_API_VERSION/s/[^0-9.]//gp'	\
+  'lib/pkgconfig/multicontact-api.pc:/Version/s/[^0-9.]//gp'
+
+DEPEND_USE+=				multicontact-api
+
+DEPEND_ABI.multicontact-api?=		multicontact-api>=1.0.0
+DEPEND_DIR.multicontact-api?=		../../wip/multicontact-api
+
+endif # MULTICONTACT_API_DEPEND_MK ------------------------------------------------
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH:+=}
diff --git a/multicontact-api/distinfo b/multicontact-api/distinfo
new file mode 100644
index 00000000..9d7ae75f
--- /dev/null
+++ b/multicontact-api/distinfo
@@ -0,0 +1,3 @@
+SHA1 (multicontact-api-1.0.0.tar.gz) = 7fc82d0254fb455e8e43bba2c2b5e0564e09c4a9
+RMD160 (multicontact-api-1.0.0.tar.gz) = 16ed74cd47437dc6bb5495334c12e555c4e12110
+Size (multicontact-api-1.0.0.tar.gz) = 803513 bytes
diff --git a/py-multicontact-api/DESCR b/py-multicontact-api/DESCR
new file mode 100644
index 00000000..b79a33d5
--- /dev/null
+++ b/py-multicontact-api/DESCR
@@ -0,0 +1 @@
+Multi-contact locomotion for multi-body systems
diff --git a/py-multicontact-api/Makefile b/py-multicontact-api/Makefile
new file mode 100644
index 00000000..a0a2d729
--- /dev/null
+++ b/py-multicontact-api/Makefile
@@ -0,0 +1,40 @@
+# robotpkg Makefile for:	wip/py-multicontact-api
+# Created:			Guilhem Saurel on Thu, 28 Mar 2019
+#
+
+ORG=			loco-3d
+NAME=			multicontact-api
+VERSION=		1.0.0
+
+DISTNAME=		${NAME}-${VERSION}
+PKGNAME=		${PKGTAG.python-}${DISTNAME}
+
+MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
+MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}/${ORG}/${NAME}.git
+CHECKOUT_VCS_OPTS+=	--recursive
+
+CATEGORIES=		wip
+COMMENT=		Multi-contact locomotion for multi-body systems
+LICENSE=		2-clause-bsd
+MAINTAINER=		gepetto-soft@laas.fr
+
+CMAKE_ARGS+=		-DINSTALL_DOCUMENTATION=OFF
+
+include ../../wip/${NAME}/depend.mk
+include ../../math/py-eigenpy/depend.mk
+include ../../math/py-pinocchio/depend.mk
+
+include ../../graphics/assimp/depend.mk
+include ../../graphics/urdfdom/depend.mk
+include ../../mapping/octomap/depend.mk
+include ../../math/eigen3/depend.mk
+include ../../math/pinocchio/depend.mk
+include ../../path/hpp-fcl/depend.mk
+include ../../devel/boost-headers/depend.mk
+include ../../devel/boost-libs/depend.mk
+include ../../pkgtools/pkg-config/depend.mk
+include ../../mk/sysdep/cmake.mk
+include ../../mk/language/c.mk
+include ../../mk/language/c++.mk
+
+include ../../mk/robotpkg.mk
diff --git a/py-multicontact-api/PLIST b/py-multicontact-api/PLIST
new file mode 100644
index 00000000..da7959d7
--- /dev/null
+++ b/py-multicontact-api/PLIST
@@ -0,0 +1,2 @@
+@comment Thu Mar 28 13:03:49 CET 2019
+${PYTHON_SITELIB}/multicontact_api/libmulticontact_api.so
diff --git a/py-multicontact-api/depend.mk b/py-multicontact-api/depend.mk
new file mode 100644
index 00000000..2c782c62
--- /dev/null
+++ b/py-multicontact-api/depend.mk
@@ -0,0 +1,27 @@
+# robotpkg depend.mk for:	wip/py-multicontact-api
+# Created:			Guilhem Saurel on Thu, 28 Mar 2019
+#
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH}+
+PY_MULTICONTACT_API_DEPEND_MK:=	${PY_MULTICONTACT_API_DEPEND_MK}+
+
+ifeq (+,$(DEPEND_DEPTH))
+DEPEND_PKG+=		py-multicontact-api
+endif
+
+ifeq (+,$(PY_MULTICONTACT_API_DEPEND_MK)) # ------------------------------------------
+
+PREFER.py-multicontact-api?=	robotpkg
+
+SYSTEM_SEARCH.py-multicontact-api=\
+  'include/multicontact-api/config.hh:/MULTICONTACT_API_VERSION/s/[^0-9.]//gp'	\
+  'lib/pkgconfig/multicontact-api.pc:/Version/s/[^0-9.]//gp'
+
+DEPEND_USE+=				py-multicontact-api
+
+DEPEND_ABI.py-multicontact-api?=		py-multicontact-api>=1.0.0
+DEPEND_DIR.py-multicontact-api?=		../../wip/py-multicontact-api
+
+endif # PY_MULTICONTACT_API_DEPEND_MK ------------------------------------------------
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH:+=}
diff --git a/py-multicontact-api/distinfo b/py-multicontact-api/distinfo
new file mode 100644
index 00000000..eac0ef5d
--- /dev/null
+++ b/py-multicontact-api/distinfo
@@ -0,0 +1,6 @@
+SHA1 (multicontact-api-1.0.0.tar.gz) = 7fc82d0254fb455e8e43bba2c2b5e0564e09c4a9
+RMD160 (multicontact-api-1.0.0.tar.gz) = 16ed74cd47437dc6bb5495334c12e555c4e12110
+Size (multicontact-api-1.0.0.tar.gz) = 803513 bytes
+SHA1 (patch-aa) = 1e49750ab8963bb849218f3028d26713052791f0
+SHA1 (patch-ab) = 83aeb011c56e1d2a9d4da3efae6d2904b207cf06
+SHA1 (patch-ad) = 9731f90f2c33abec026a1d34cfaa653316b84427
diff --git a/py-multicontact-api/patches/patch-aa b/py-multicontact-api/patches/patch-aa
new file mode 100644
index 00000000..8085c94d
--- /dev/null
+++ b/py-multicontact-api/patches/patch-aa
@@ -0,0 +1,12 @@
+don't install headers, already installed by main package
+
+--- CMakeLists.txt.orig	2019-03-28 11:52:49.000000000 +0100
++++ CMakeLists.txt	2019-03-28 12:54:27.982041064 +0100
+@@ -40,7 +40,6 @@
+ SEARCH_FOR_BOOST()
+ INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
+ 
+-ADD_SUBDIRECTORY(include/${CUSTOM_HEADER_DIR})
+ ADD_SUBDIRECTORY(bindings)
+ ADD_SUBDIRECTORY(unittest)
+ 
diff --git a/py-multicontact-api/patches/patch-ab b/py-multicontact-api/patches/patch-ab
new file mode 100644
index 00000000..5e1c7cb2
--- /dev/null
+++ b/py-multicontact-api/patches/patch-ab
@@ -0,0 +1,13 @@
+Don't install the .pc file, which is already installed by main package
+
+--- cmake/base.cmake.orig	2018-07-11 10:41:37.000000000 +0200
++++ cmake/base.cmake	2018-12-13 14:15:46.772836002 +0100
+@@ -226,7 +226,7 @@
+ #   finalize the project setup.
+ #
+ MACRO(SETUP_PROJECT_FINALIZE)
+-  _SETUP_PROJECT_PKG_CONFIG_FINALIZE()
++  #_SETUP_PROJECT_PKG_CONFIG_FINALIZE()
+   _SETUP_PROJECT_DOCUMENTATION_FINALIZE()
+   _SETUP_PROJECT_HEADER_FINAlIZE()
+   _SETUP_DEBIAN()
diff --git a/py-multicontact-api/patches/patch-ad b/py-multicontact-api/patches/patch-ad
new file mode 100644
index 00000000..83ef8fe0
--- /dev/null
+++ b/py-multicontact-api/patches/patch-ad
@@ -0,0 +1,40 @@
+Don't install main headers
+
+--- cmake/header.cmake~	2017-10-26 15:25:19.000000000 +0200
++++ cmake/header.cmake	2018-04-26 18:37:42.582417765 +0200
+@@ -92,11 +92,6 @@
+     ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/deprecated.${PROJECT_CUSTOM_HEADER_EXTENSION}
+     @ONLY
+     )
+-  INSTALL(FILES
+-    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/deprecated.${PROJECT_CUSTOM_HEADER_EXTENSION}
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
+-    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+-    )
+   # Generate warning.hh header.
+   CONFIGURE_FILE(
+     ${PROJECT_SOURCE_DIR}/cmake/warning.hh.cmake
+@@ -104,11 +99,6 @@
+     @ONLY
+     )
+ 
+-  INSTALL(FILES
+-    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/warning.${PROJECT_CUSTOM_HEADER_EXTENSION}
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
+-    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+-    )
+ 
+ 
+   # Generate config.h header.
+@@ -150,11 +140,6 @@
+     @ONLY
+     )
+   # Install it.
+-  INSTALL(FILES
+-    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/${FILENAME}
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
+-    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+-    )
+ ENDFUNCTION(GENERATE_CONFIGURATION_HEADER)
+ 
+ 
-- 
GitLab