summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2019-08-06 17:11:49 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2019-08-06 17:11:49 +0200
commit9b40c817277fa1de6c2b2e7b796ad0157ace4c61 (patch)
tree974e77954a60b6e7beed0d74a22e769b3e3bf335
parent48dfd910463c33e0e331f84e151ac7fe1f93dbe2 (diff)
Add all modules that do not depend on Simplex tree
-rw-r--r--.gitignore9
-rw-r--r--src/cython/CMakeLists.txt30
-rw-r--r--src/cython/gudhi/__init__.py.in2
-rw-r--r--src/cython/setup.py.in39
4 files changed, 51 insertions, 29 deletions
diff --git a/.gitignore b/.gitignore
index 3c47ca9a..2b1817a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,15 @@ build/
# Generated by Cython
src/cython/gudhi/simplex_tree.cpp
+src/cython/gudhi/alpha_complex.cpp
+src/cython/gudhi/bottleneck_distance.cpp
+src/cython/gudhi/cubical_complex.cpp
+src/cython/gudhi/euclidean_strong_witness_complex.cpp
+src/cython/gudhi/off_reader.cpp
+src/cython/gudhi/periodic_cubical_complex.cpp
+src/cython/gudhi/reader_utils.cpp
+src/cython/gudhi/rips_complex.cpp
+src/cython/gudhi/subsampling.cpp
# Generated by tests
data/points/COIL_database/lucky_cat.off_dist
diff --git a/src/cython/CMakeLists.txt b/src/cython/CMakeLists.txt
index cd99f70b..12eec9d9 100644
--- a/src/cython/CMakeLists.txt
+++ b/src/cython/CMakeLists.txt
@@ -26,7 +26,7 @@ function( add_gudhi_py_test THE_TEST )
endfunction( add_gudhi_py_test )
# Set gudhi.__debug_info__
-# WARNING : to be done before gudhi.pyx.in configure_file
+# WARNING : to be done before setup.py.in configure_file
function( add_gudhi_debug_info DEBUG_INFO )
set(GUDHI_CYTHON_DEBUG_INFO "${GUDHI_CYTHON_DEBUG_INFO} \"${DEBUG_INFO}\\n\" \\\n" PARENT_SCOPE)
endfunction( add_gudhi_debug_info )
@@ -94,20 +94,24 @@ if(PYTHONINTERP_FOUND)
set(GUDHI_CYTHON_EXTRA_COMPILE_ARGS "${GUDHI_CYTHON_EXTRA_COMPILE_ARGS}'-DCGAL_EIGEN3_ENABLED', ")
endif (EIGEN3_FOUND)
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'off_reader', ")
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'simplex_tree', ")
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'rips_complex', ")
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'cubical_complex', ")
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'periodic_cubical_complex', ")
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'reader_utils', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'witness_complex', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'strong_witness_complex', ")
if (NOT CGAL_VERSION VERSION_LESS 4.11.0)
- set(GUDHI_CYTHON_BOTTLENECK_DISTANCE "include '${CMAKE_CURRENT_SOURCE_DIR}/cython/bottleneck_distance.pyx'")
- set(GUDHI_CYTHON_NERVE_GIC "include '${CMAKE_CURRENT_SOURCE_DIR}/cython/nerve_gic.pyx'")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'bottleneck_distance', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'nerve_gic', ")
endif ()
if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0)
- set(GUDHI_CYTHON_SUBSAMPLING "include '${CMAKE_CURRENT_SOURCE_DIR}/cython/subsampling.pyx'")
- set(GUDHI_CYTHON_TANGENTIAL_COMPLEX "include '${CMAKE_CURRENT_SOURCE_DIR}/cython/tangential_complex.pyx'")
- endif ()
- if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0)
- set(GUDHI_CYTHON_ALPHA_COMPLEX "include '${CMAKE_CURRENT_SOURCE_DIR}/cython/alpha_complex.pyx'")
- endif ()
- if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0)
- set(GUDHI_CYTHON_EUCLIDEAN_WITNESS_COMPLEX
- "include '${CMAKE_CURRENT_SOURCE_DIR}/cython/euclidean_witness_complex.pyx'\ninclude '${CMAKE_CURRENT_SOURCE_DIR}/cython/euclidean_strong_witness_complex.pyx'\n")
+ set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'subsampling', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'tangential_complex', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'alpha_complex', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'euclidean_witness_complex', ")
+ #set(GUDHI_CYTHON_MODULES_TO_COMPILE "${GUDHI_CYTHON_MODULES_TO_COMPILE}'euclidean_strong_witness_complex', ")
endif ()
if(CGAL_FOUND)
@@ -190,8 +194,6 @@ if(PYTHONINTERP_FOUND)
# Generate setup.py file to cythonize Gudhi - This file must be named setup.py by convention
configure_file(setup.py.in "${CMAKE_CURRENT_BINARY_DIR}/setup.py" @ONLY)
- # Generate gudhi.pyx - Gudhi cython file
- configure_file(gudhi.pyx.in "${CMAKE_CURRENT_BINARY_DIR}/gudhi.pyx" @ONLY)
# Generate gudhi/__init__.py
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/gudhi")
diff --git a/src/cython/gudhi/__init__.py.in b/src/cython/gudhi/__init__.py.in
index 60ad7865..b2d2d3d7 100644
--- a/src/cython/gudhi/__init__.py.in
+++ b/src/cython/gudhi/__init__.py.in
@@ -10,7 +10,7 @@ from importlib import import_module
- YYYY/MM Author: Description of the modification
"""
-__author__ = "Vincent Rouvreau"
+__author__ = "GUDHI Editorial Board"
__copyright__ = "Copyright (C) 2016 Inria"
__license__ = "https://gudhi.inria.fr/licensing/"
__version__ = "@GUDHI_VERSION@"
diff --git a/src/cython/setup.py.in b/src/cython/setup.py.in
index 3c37664f..fd4307e3 100644
--- a/src/cython/setup.py.in
+++ b/src/cython/setup.py.in
@@ -12,21 +12,33 @@ from numpy import get_include as numpy_get_include
- YYYY/MM Author: Description of the modification
"""
-__author__ = "GUDHI Editorial Board"
+__author__ = "Vincent Rouvreau"
__copyright__ = "Copyright (C) 2016 Inria"
__license__ = "MIT"
-simplex_tree = Extension(
- "gudhi.simplex_tree",
- sources = ['@CMAKE_CURRENT_SOURCE_DIR@/gudhi/simplex_tree.pyx',],
- language = 'c++',
- extra_compile_args=[@GUDHI_CYTHON_EXTRA_COMPILE_ARGS@],
- extra_link_args=[@GUDHI_CYTHON_EXTRA_LINK_ARGS@],
- libraries=[@GUDHI_CYTHON_LIBRARIES@],
- library_dirs=[@GUDHI_CYTHON_LIBRARY_DIRS@],
- include_dirs = [numpy_get_include(), '@CMAKE_CURRENT_SOURCE_DIR@/gudhi/', @GUDHI_CYTHON_INCLUDE_DIRS@],
- runtime_library_dirs=[@GUDHI_CYTHON_RUNTIME_LIBRARY_DIRS@],
-)
+modules = [@GUDHI_CYTHON_MODULES_TO_COMPILE@]
+
+source_dir='@CMAKE_CURRENT_SOURCE_DIR@/gudhi/'
+extra_compile_args=[@GUDHI_CYTHON_EXTRA_COMPILE_ARGS@]
+extra_link_args=[@GUDHI_CYTHON_EXTRA_LINK_ARGS@]
+libraries=[@GUDHI_CYTHON_LIBRARIES@]
+library_dirs=[@GUDHI_CYTHON_LIBRARY_DIRS@]
+include_dirs = [numpy_get_include(), '@CMAKE_CURRENT_SOURCE_DIR@/gudhi/', @GUDHI_CYTHON_INCLUDE_DIRS@]
+runtime_library_dirs=[@GUDHI_CYTHON_RUNTIME_LIBRARY_DIRS@]
+
+# Create ext_modules list from module list
+ext_modules = []
+for module in modules:
+ ext_modules.append(Extension(
+ 'gudhi.' + module,
+ sources = [source_dir + module + '.pyx',],
+ language = 'c++',
+ extra_compile_args=extra_compile_args,
+ extra_link_args=extra_link_args,
+ libraries=libraries,
+ library_dirs=library_dirs,
+ include_dirs=include_dirs,
+ runtime_library_dirs=runtime_library_dirs,))
setup(
name = 'gudhi',
@@ -35,8 +47,7 @@ setup(
author_email='gudhi-contact@lists.gforge.inria.fr',
version='@GUDHI_VERSION@',
url='http://gudhi.gforge.inria.fr/',
- ext_modules = cythonize(simplex_tree),
-# cmdclass={'build_ext': Cython.Build.build_ext},
+ ext_modules = cythonize(ext_modules),
install_requires = ['cython','numpy >= 1.9',],
setup_requires = ['numpy >= 1.9',],
)