From 18e2965f0b38ce18a81567ee0c95ef7a1aeb83db Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Sat, 28 Sep 2019 10:19:03 +0200
Subject: [PATCH] [CMake] use PYTHON_INSTALL_ON_SITE

PYTHON_INSTALL_ON_SITE does the PYTHON_BUILD and the INSTALL, but they
require to have the same arguments. Then, we have to put the CMakeLists
in a parent folder of the module, as `python`, or `bindings/python`.
---
 CMakeLists.txt                                                 | 2 +-
 {example_robot_data => python}/CMakeLists.txt                  | 3 +--
 {example_robot_data => python/example_robot_data}/__init__.py  | 0
 {example_robot_data => python/example_robot_data}/__main__.py  | 0
 .../example_robot_data}/robots_loader.py                       | 3 +--
 unittest/CMakeLists.txt                                        | 2 +-
 6 files changed, 4 insertions(+), 6 deletions(-)
 rename {example_robot_data => python}/CMakeLists.txt (65%)
 rename {example_robot_data => python/example_robot_data}/__init__.py (100%)
 rename {example_robot_data => python/example_robot_data}/__main__.py (100%)
 rename {example_robot_data => python/example_robot_data}/robots_loader.py (98%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5182f89..eadc906 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,7 +33,7 @@ IF(BUILD_PYTHON_INTERFACE)
   ADD_REQUIRED_DEPENDENCY("pinocchio >= 2.1.0")
   FINDPYTHON()
   STRING(REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME})
-  ADD_SUBDIRECTORY(${PY_NAME})
+  ADD_SUBDIRECTORY(python)
   ADD_SUBDIRECTORY(unittest)
 ENDIF(BUILD_PYTHON_INTERFACE)
 
diff --git a/example_robot_data/CMakeLists.txt b/python/CMakeLists.txt
similarity index 65%
rename from example_robot_data/CMakeLists.txt
rename to python/CMakeLists.txt
index 224966f..998d2c4 100644
--- a/example_robot_data/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -5,6 +5,5 @@ SET(${PROJECT_NAME}_PYTHON_FILES
   )
 
 FOREACH(python ${${PROJECT_NAME}_PYTHON_FILES})
-  PYTHON_BUILD(. ${python})
-  INSTALL(FILES ${python} DESTINATION ${PYTHON_SITELIB}/${PY_NAME})
+  PYTHON_INSTALL_ON_SITE(${PY_NAME} ${python})
 ENDFOREACH(python ${${PROJECT_NAME}_PYTHON_FILES})
diff --git a/example_robot_data/__init__.py b/python/example_robot_data/__init__.py
similarity index 100%
rename from example_robot_data/__init__.py
rename to python/example_robot_data/__init__.py
diff --git a/example_robot_data/__main__.py b/python/example_robot_data/__main__.py
similarity index 100%
rename from example_robot_data/__main__.py
rename to python/example_robot_data/__main__.py
diff --git a/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py
similarity index 98%
rename from example_robot_data/robots_loader.py
rename to python/example_robot_data/robots_loader.py
index 25c9761..506ef54 100644
--- a/example_robot_data/robots_loader.py
+++ b/python/example_robot_data/robots_loader.py
@@ -2,7 +2,6 @@ import sys
 from os.path import dirname, exists, join
 
 import numpy as np
-
 import pinocchio
 from pinocchio.robot_wrapper import RobotWrapper
 
@@ -15,7 +14,7 @@ def getModelPath(subpath, printmsg=False):
             if printmsg:
                 print("using %s as modelPath" % path)
             return path
-    for path in (dirname(dirname(dirname(__file__))), dirname(dirname(__file__))):
+    for path in (dirname(dirname(dirname(dirname(__file__)))), dirname(dirname(dirname(__file__)))):
         if exists(join(path, subpath.strip('/'))):
             if printmsg:
                 print("using %s as modelPath" % path)
diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
index b67ebf9..db6ef14 100644
--- a/unittest/CMakeLists.txt
+++ b/unittest/CMakeLists.txt
@@ -3,5 +3,5 @@ SET(${PROJECT_NAME}_PYTHON_TESTS
   )
 
 FOREACH(TEST ${${PROJECT_NAME}_PYTHON_TESTS})
-  ADD_PYTHON_UNIT_TEST("py-${TEST}" "unittest/test_${TEST}.py" .)
+  ADD_PYTHON_UNIT_TEST("py-${TEST}" "unittest/test_${TEST}.py" python)
 ENDFOREACH(TEST ${${PROJECT_NAME}_PYTHON_TESTS})
-- 
GitLab