Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
eigenpy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Guilhem Saurel
eigenpy
Commits
b78ef66b
Commit
b78ef66b
authored
Aug 13, 2020
by
Guilhem Saurel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CMake] prepare for multi python setup
parent
335e052b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
34 additions
and
47 deletions
+34
-47
CMakeLists.txt
CMakeLists.txt
+21
-21
cmake
cmake
+1
-1
python/CMakeLists.txt
python/CMakeLists.txt
+5
-18
unittest/CMakeLists.txt
unittest/CMakeLists.txt
+7
-7
No files found.
CMakeLists.txt
View file @
b78ef66b
#
# Copyright (c) 2014-20
19
CNRS
# Copyright (c) 2014-20
20
CNRS
# Copyright (c) 2018-2020 INRIA
#
CMAKE_MINIMUM_REQUIRED
(
VERSION
2.6
)
CMAKE_MINIMUM_REQUIRED
(
VERSION
3.1
)
SET
(
PROJECT_NAME eigenpy
)
SET
(
PROJECT_DESCRIPTION
"Bindings between Numpy and Eigen using Boost.Python"
)
SET
(
PROJECT_URL
"http://github.com/stack-of-tasks/eigenpy"
)
SET
(
PROJECT_USE_CMAKE_EXPORT TRUE
)
SET
(
PROJECT_USE_KEYWORD_LINK_LIBRARIES TRUE
)
SET
(
PROJECT_CUSTOM_HEADER_EXTENSION
"hpp"
)
# Check if the submodule cmake have been initialized
...
...
@@ -35,16 +34,9 @@ STRING(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
# If needed, fix CMake policy for APPLE systems
APPLY_DEFAULT_APPLE_CONFIGURATION
()
IF
(
WIN32
)
SET
(
LINK copy_if_different
)
ELSE
(
WIN32
)
SET
(
LINK create_symlink
)
ENDIF
(
WIN32
)
# ----------------------------------------------------
# --- OPTIONS ---------------------------------------
# ----------------------------------------------------
OPTION
(
INSTALL_DOCUMENTATION
"Generate and install the documentation"
FALSE
)
OPTION
(
SUFFIX_SO_VERSION
"Suffix library name with its version"
OFF
)
IF
(
DEFINED BUILD_UNIT_TESTS
)
...
...
@@ -57,9 +49,13 @@ ENDIF(DEFINED BUILD_UNIT_TESTS)
FINDPYTHON
()
FIND_NUMPY
()
IF
(
WIN32
)
LINK_DIRECTORIES
(
${
PYTHON_LIBRARY_DIRS
}
)
ENDIF
(
WIN32
)
# TODO: do we really need any link to Python ?
#IF(WIN32)
#LINK_DIRECTORIES(${PYTHON_LIBRARY_DIRS})
#ENDIF(WIN32)
SET
(
PYWRAP
"
${
PROJECT_NAME
}
_pywrap"
)
SET
(
${
PYWRAP
}
_INSTALL_DIR
"
${
PYTHON_SITELIB
}
/
${
PROJECT_NAME
}
"
)
# ----------------------------------------------------
# --- DEPENDENCIES -----------------------------------
...
...
@@ -144,7 +140,7 @@ SET(${PROJECT_NAME}_SOLVERS_SOURCES
SET
(
${
PROJECT_NAME
}
_DECOMPOSITIONS_SOURCES
src/decompositions/decompositions.cpp
)
SET
(
${
PROJECT_NAME
}
_SOURCES
${${
PROJECT_NAME
}
_SOLVERS_SOURCES
}
${${
PROJECT_NAME
}
_DECOMPOSITIONS_SOURCES
}
...
...
@@ -168,15 +164,17 @@ SET(${PROJECT_NAME}_SOURCES
)
ADD_LIBRARY
(
${
PROJECT_NAME
}
SHARED
${${
PROJECT_NAME
}
_SOURCES
}
${${
PROJECT_NAME
}
_HEADERS
}
)
TARGET_INCLUDE_DIRECTORIES
(
${
PROJECT_NAME
}
SYSTEM PUBLIC
${
Boost_INCLUDE_DIRS
}
TARGET_INCLUDE_DIRECTORIES
(
${
PROJECT_NAME
}
SYSTEM PUBLIC
${
Boost_INCLUDE_DIRS
}
${
EIGEN3_INCLUDE_DIR
}
${
PYTHON_INCLUDE_DIR
S
}
${
PYTHON_INCLUDE_DIR
}
${
NUMPY_INCLUDE_DIRS
}
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_BINARY_DIR
}
/include>
#$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include> # TODO: do we really need that ?
$<INSTALL_INTERFACE:include>
)
SET_TARGET_PROPERTIES
(
${
PROJECT_NAME
}
PROPERTIES SUFFIX
${
PYTHON_EXT_SUFFIX
}
)
IF
(
SUFFIX_SO_VERSION
)
SET_TARGET_PROPERTIES
(
${
PROJECT_NAME
}
PROPERTIES SOVERSION
${
PROJECT_VERSION
}
)
ENDIF
(
SUFFIX_SO_VERSION
)
...
...
@@ -199,8 +197,10 @@ INSTALL(TARGETS ${PROJECT_NAME}
ADD_HEADER_GROUP
(
${
PROJECT_NAME
}
_HEADERS
)
ADD_SOURCE_GROUP
(
${
PROJECT_NAME
}
_SOURCES
)
# Install package for ROS
install
(
FILES package.xml DESTINATION share/eigenpy
)
IF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
# Install package for ROS
install
(
FILES package.xml DESTINATION
"share/
${
PROJECT_NAME
}
"
)
ENDIF
()
# ----------------------------------------------------
# --- PYTHON LIBRARY ---------------------------------
...
...
cmake
@
e542b72a
Compare
69cc5ff7
...
e542b72a
Subproject commit
69cc5ff7fff74a2594a633461885412ea98645ea
Subproject commit
e542b72a3435ea50654132c268d459f0a29fe3b6
python/CMakeLists.txt
View file @
b78ef66b
...
...
@@ -3,46 +3,33 @@
#
# --- LIBRARY --- #
SET
(
PYWRAP
${
PROJECT_NAME
}
_pywrap
)
SET
(
PYWRAP
${
PYWRAP
}
PARENT_SCOPE
)
MAKE_DIRECTORY
(
"
${${
PROJECT_NAME
}
_BINARY_DIR
}
/python/
${
PROJECT_NAME
}
"
)
ADD_CUSTOM_TARGET
(
python
)
SET_TARGET_PROPERTIES
(
python PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD True
)
ADD_LIBRARY
(
${
PYWRAP
}
SHARED main.cpp
)
ADD_DEPENDENCIES
(
python
${
PYWRAP
}
)
TARGET_LINK_LIBRARIES
(
${
PYWRAP
}
PUBLIC
${
PROJECT_NAME
}
)
TARGET_LINK_LIBRARIES
(
${
PYWRAP
}
PUBLIC
${
PROJECT_NAME
}
)
# BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS spews conversion warnings from int to long unsigned int.
# Unfortunately, using literals does not work in a macro. As such, this turns them off for the entire wrapper:
IF
(
NOT WIN32
)
TARGET_COMPILE_OPTIONS
(
${
PYWRAP
}
PRIVATE
"-Wno-conversion"
)
ENDIF
()
IF
(
EIGENPY_SITELIB_ROOT
)
SET
(
${
PYWRAP
}
_INSTALL_DIR
${
EIGENPY_SITELIB_ROOT
}
/
${
PYTHON_SITELIB
}
/
${
PROJECT_NAME
}
)
ELSE
()
SET
(
${
PYWRAP
}
_INSTALL_DIR
${
CMAKE_INSTALL_PREFIX
}
/
${
PYTHON_SITELIB
}
/
${
PROJECT_NAME
}
)
ENDIF
()
SET_TARGET_PROPERTIES
(
${
PYWRAP
}
PROPERTIES
PROPERTIES
PREFIX
""
SUFFIX
${
PYTHON_EXT_SUFFIX
}
OUTPUT_NAME
"
${
PROJECT_NAME
}
"
LIBRARY_OUTPUT_DIRECTORY
"
${
CMAKE_BINARY_DIR
}
/python/
${
PROJECT_NAME
}
"
LIBRARY_OUTPUT_DIRECTORY
"
${
PROJECT_NAME
}
"
)
INSTALL
(
TARGETS
${
PYWRAP
}
DESTINATION
${${
PYWRAP
}
_INSTALL_DIR
}
)
# --- INSTALL SCRIPTS
# --- INSTALL SCRIPTS
SET
(
PYTHON_FILES
__init__.py
)
FOREACH
(
python
${
PYTHON_FILES
}
)
INSTALL
(
FILES
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/eigenpy/
${
python
}
"
DESTINATION
${${
PYWRAP
}
_INSTALL_DIR
}
)
PYTHON_INSTALL_ON_SITE
(
"
${
PROJECT_NAME
}
"
"
${
python
}
"
)
ENDFOREACH
(
python
)
unittest/CMakeLists.txt
View file @
b78ef66b
...
...
@@ -41,23 +41,23 @@ ADD_PYTHON_UNIT_TEST("py-return-by-ref" "unittest/python/test_return_by_ref.py"
ADD_PYTHON_UNIT_TEST
(
"py-eigen-ref"
"unittest/python/test_eigen_ref.py"
"unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-user-type"
"unittest/python/test_user_type.py"
"unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-switch"
"unittest/python/test_switch.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-switch"
"unittest/python/test_switch.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-switch"
PROPERTIES DEPENDS
${
PYWRAP
}
)
ADD_PYTHON_UNIT_TEST
(
"py-dimensions"
"unittest/python/test_dimensions.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-dimensions"
"unittest/python/test_dimensions.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-dimensions"
PROPERTIES DEPENDS
${
PYWRAP
}
)
ADD_PYTHON_UNIT_TEST
(
"py-version"
"unittest/python/test_version.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-version"
"unittest/python/test_version.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-version"
PROPERTIES DEPENDS
${
PYWRAP
}
)
ADD_PYTHON_UNIT_TEST
(
"py-eigen-solver"
"unittest/python/test_eigen_solver.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-eigen-solver"
"unittest/python/test_eigen_solver.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-eigen-solver"
PROPERTIES DEPENDS
${
PYWRAP
}
)
ADD_PYTHON_UNIT_TEST
(
"py-self-adjoint-eigen-solver"
"unittest/python/test_self_adjoint_eigen_solver.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-self-adjoint-eigen-solver"
"unittest/python/test_self_adjoint_eigen_solver.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-self-adjoint-eigen-solver"
PROPERTIES DEPENDS
${
PYWRAP
}
)
ADD_PYTHON_UNIT_TEST
(
"py-LLT"
"unittest/python/test_LLT.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-LLT"
"unittest/python/test_LLT.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-LLT"
PROPERTIES DEPENDS
${
PYWRAP
}
)
ADD_PYTHON_UNIT_TEST
(
"py-LDLT"
"unittest/python/test_LDLT.py"
"python
/eigenpy
;unittest"
)
ADD_PYTHON_UNIT_TEST
(
"py-LDLT"
"unittest/python/test_LDLT.py"
"python;unittest"
)
SET_TESTS_PROPERTIES
(
"py-LDLT"
PROPERTIES DEPENDS
${
PYWRAP
}
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment