Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] make ikfastpy link to @LAPACK_LIBRARIES@ #771

Open
wants to merge 3 commits into
base: production
Choose a base branch
from
Open
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
7 changes: 6 additions & 1 deletion python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ endif()

file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../src/cppexamples/FindOpenRAVE.cmake" FindOpenRAVE)

# find LAPACK so that ikfastpy can link to it
find_package(LAPACK)

# python executables need renaming
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/openrave.py.in" "${CMAKE_CURRENT_BINARY_DIR}/openrave${OPENRAVE_BIN_SUFFIX}.py" IMMEDIATE @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/openrave-robot.py.in" "${CMAKE_CURRENT_BINARY_DIR}/openrave${OPENRAVE_BIN_SUFFIX}-robot.py" IMMEDIATE @ONLY)
Expand All @@ -28,7 +31,9 @@ install(FILES metaclass.py openravepy_ext.py misc.py pyANN.py DESTINATION ${OPEN
install(FILES openravepy.__init__.py DESTINATION ${OPENRAVEPY_VER_INSTALL_DIR} COMPONENT ${COMPONENT_PREFIX}python RENAME __init__.py)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/examples" DESTINATION ${OPENRAVEPY_VER_INSTALL_DIR} FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ COMPONENT ${COMPONENT_PREFIX}python PATTERN ".svn" EXCLUDE PATTERN ".pyc" EXCLUDE)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/interfaces" DESTINATION ${OPENRAVEPY_VER_INSTALL_DIR} FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ COMPONENT ${COMPONENT_PREFIX}python PATTERN ".svn" EXCLUDE PATTERN ".pyc" EXCLUDE)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/databases" DESTINATION ${OPENRAVEPY_VER_INSTALL_DIR} FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ COMPONENT ${COMPONENT_PREFIX}python PATTERN ".svn" EXCLUDE PATTERN ".pyc" EXCLUDE)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/databases" DESTINATION ${OPENRAVEPY_VER_INSTALL_DIR} FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ COMPONENT ${COMPONENT_PREFIX}python PATTERN ".svn" EXCLUDE PATTERN ".pyc" EXCLUDE PATTERN "inversekinematics.py.in" EXCLUDE)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/databases/inversekinematics.py.in" "${CMAKE_CURRENT_BINARY_DIR}/inversekinematics.py" IMMEDIATE @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/inversekinematics.py DESTINATION ${OPENRAVEPY_VER_INSTALL_DIR}/databases)

set(CPACK_COMPONENT_${COMPONENT_PREFIX_UPPER}PYTHON_DISPLAY_NAME "Python ${PYTHON_MAJORMINOR_VERSION} bindings" PARENT_SCOPE)
set(CPACK_COMPONENT_${COMPONENT_PREFIX_UPPER}PYTHON_DEPENDS ${COMPONENT_PREFIX}base python-numpy python-pkg-resources openrave-python-minimal PARENT_SCOPE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -956,18 +956,13 @@ def solveFullIK_TranslationZAxisAngleYNorm4D(*args,**kwargs):
# because some parts of ikfast require lapack, always try to link with it
try:
iswindows = sys.platform.startswith('win') or platform.system().lower() == 'windows'
libraries = None
if self.statistics.get('usinglapack',False) or not iswindows:
libraries = ['lapack']
compiler.link_shared_object(objectfiles,output_filename=output_filename, libraries=libraries)
libraryFiles = "@LAPACK_LIBRARIES@".split(';')
compiler.link_shared_object(objectfiles,output_filename=output_filename, extra_postargs=libraryFiles)
except distutils.errors.LinkError,e:
log.warn(e)
if libraries is not None and 'lapack' in libraries:
libraries.remove('lapack')
if len(libraries) == 0:
libraries = None
log.info('linking again with %r... (MSVC bug?)',libraries)
compiler.link_shared_object(objectfiles,output_filename=output_filename, libraries=libraries)
log.info('linking again without lapack... (MSVC bug?)')
compiler.link_shared_object(objectfiles,output_filename=output_filename)

if not self.setrobot():
return ValueError('failed to generate ik solver')
Expand Down