diff --git a/python/example_robot_data/path.py.in b/python/example_robot_data/path.py.in index c1b0976152319a2a6d7b3ef8b8afc5452ba38e55..efb9ccb4ef4cf6980c3ad38976481c09e3bdf6c8 100644 --- a/python/example_robot_data/path.py.in +++ b/python/example_robot_data/path.py.in @@ -1 +1,2 @@ EXAMPLE_ROBOT_DATA_MODEL_DIR = "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/robots" +EXAMPLE_ROBOT_DATA_SOURCE_DIR = "${PROJECT_SOURCE_DIR}/robots" diff --git a/python/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py index 1df545ac25cb42c0854b75427267e11b48e257b7..b0efd6020571ef389f626fed171da58bbb19df2a 100644 --- a/python/example_robot_data/robots_loader.py +++ b/python/example_robot_data/robots_loader.py @@ -3,7 +3,6 @@ import warnings from os.path import dirname, exists, join import numpy as np - import pinocchio as pin from pinocchio.robot_wrapper import RobotWrapper @@ -11,13 +10,16 @@ pin.switchToNumpyArray() def getModelPath(subpath, printmsg=False): + source = dirname(dirname(dirname(__file__))) # top level source directory paths = [ - join(dirname(dirname(dirname(dirname(__file__)))), 'robots'), - join(dirname(dirname(dirname(__file__))), 'robots') + join(dirname(dirname(dirname(source))), 'robots'), # function called from "make release" in build/ dir + join(dirname(source), 'robots'), # function called from a build/ dir inside top level source + join(source, 'robots') # function called from top level source dir ] try: - from .path import EXAMPLE_ROBOT_DATA_MODEL_DIR - paths.append(EXAMPLE_ROBOT_DATA_MODEL_DIR) + from .path import EXAMPLE_ROBOT_DATA_MODEL_DIR, EXAMPLE_ROBOT_DATA_SOURCE_DIR + paths.append(EXAMPLE_ROBOT_DATA_MODEL_DIR) # function called from installed project + paths.append(EXAMPLE_ROBOT_DATA_SOURCE_DIR) # function called from off-tree build dir except ImportError: pass paths += [join(p, '../../../share/example-robot-data/robots') for p in sys.path]