summaryrefslogtreecommitdiff
path: root/src/python/setup.py.in
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2019-12-26 10:22:47 +0100
committerMarc Glisse <marc.glisse@inria.fr>2019-12-26 10:22:47 +0100
commitc2e22942c35e894d5c1ddc429eb32687c61538c8 (patch)
treeaaf991edcadf848a78122fcaa8c94fbf6d54933e /src/python/setup.py.in
parent15f222eecf3b427c59f09ec3bec17983377d96a2 (diff)
Basic binding for wasserstein_distance
Diffstat (limited to 'src/python/setup.py.in')
-rw-r--r--src/python/setup.py.in26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/python/setup.py.in b/src/python/setup.py.in
index 3f1d4424..f7ffd146 100644
--- a/src/python/setup.py.in
+++ b/src/python/setup.py.in
@@ -26,6 +26,19 @@ library_dirs=[@GUDHI_PYTHON_LIBRARY_DIRS@]
include_dirs = [numpy_get_include(), '@CMAKE_CURRENT_SOURCE_DIR@/gudhi/', @GUDHI_PYTHON_INCLUDE_DIRS@]
runtime_library_dirs=[@GUDHI_PYTHON_RUNTIME_LIBRARY_DIRS@]
+class get_pybind_include(object):
+ """Helper class to determine the pybind11 include path
+ The purpose of this class is to postpone importing pybind11
+ until it is actually installed, so that the ``get_include()``
+ method can be invoked. """
+
+ def __init__(self, user=False):
+ self.user = user
+
+ def __str__(self):
+ import pybind11
+ return pybind11.get_include(self.user)
+
# Create ext_modules list from module list
ext_modules = []
for module in modules:
@@ -39,6 +52,15 @@ for module in modules:
library_dirs=library_dirs,
include_dirs=include_dirs,
runtime_library_dirs=runtime_library_dirs,))
+ext_modules.append(Extension(
+ 'gudhi.hera',
+ sources = [source_dir + 'hera.cc'],
+ language = 'c++',
+ extra_compile_args=extra_compile_args + ['-fvisibility=hidden'], # FIXME
+ include_dirs = include_dirs +
+ ['@CMAKE_SOURCE_DIR@/ext/hera/geom_matching/wasserstein/include',
+ get_pybind_include(False), get_pybind_include(True)]
+ ))
setup(
name = 'gudhi',
@@ -48,6 +70,6 @@ setup(
version='@GUDHI_VERSION@',
url='http://gudhi.gforge.inria.fr/',
ext_modules = cythonize(ext_modules),
- install_requires = ['cython','numpy >= 1.9',],
- setup_requires = ['numpy >= 1.9',],
+ install_requires = ['cython','numpy >= 1.9','pybind11',],
+ setup_requires = ['numpy >= 1.9','pybind11',],
)