From 9b40c817277fa1de6c2b2e7b796ad0157ace4c61 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Tue, 6 Aug 2019 17:11:49 +0200 Subject: Add all modules that do not depend on Simplex tree --- src/cython/CMakeLists.txt | 30 ++++++++++++++++-------------- src/cython/gudhi/__init__.py.in | 2 +- src/cython/setup.py.in | 39 +++++++++++++++++++++++++-------------- 3 files changed, 42 insertions(+), 29 deletions(-) (limited to 'src') 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',], ) -- cgit v1.2.3