bindings/python/CMakeLists.txt
author Dmitriy Morozov <dmitriy@mrzv.org>
Wed, 03 Feb 2010 11:20:40 -0800
branchdev
changeset 194 6c2a98fb8990
parent 147 d39a20acb253
child 215 e94d521b72bb
permissions -rw-r--r--
Removed a buggy assertion in LSVineard::transpose_vertices() (j points at the end() when moving the last simplex of the filtration)

find_package                (PythonLibs)
link_libraries              (${PYTHON_LIBRARIES})
include_directories         (${PYTHON_INCLUDE_PATH})
link_libraries              (${Boost_PYTHON_LIBRARY})

# currently can't build bindings with counters support, eventually FIXME
remove_definitions          (-DCOUNTERS)
set                         (sources
                                                dionysus.cpp 
                                                filtration.cpp
                                                chain.cpp
                                                static-persistence.cpp
                                                simplex.cpp
                                                birthid.cpp
                                                zigzag-persistence.cpp
                                                cohomology-persistence.cpp
                                                rips.cpp
                                                distances.cpp
                            )
set                         (bindings_libraries ${libraries})

if                          (CGAL_FOUND)
    set                     (sources            ${sources}
                                                alphashapes3d.cpp
                                                alphashapes2d.cpp)
    add_definitions         (${CGAL_CXX_FLAGS_INIT})
    include_directories     (${CGAL_INCLUDE_DIRS})

    link_libraries          (${CGAL_LIBRARY})                                            
else                            (CGAL_FOUND)
    message(STATUS "CGAL not found, alphashape bindings will not be built")
    add_definitions         (-DNO_CGAL)
endif                       (CGAL_FOUND)

add_library                 (_dionysus SHARED   ${sources})
target_link_libraries       (_dionysus          ${libraries})


# Python files and the symlink
add_custom_target           (dionysus ALL
                             ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/dionysus ${CMAKE_CURRENT_BINARY_DIR}/dionysus
                             DEPENDS            dionysus/__init__.py
                                                dionysus/distances.py
                            )

get_target_property         (_dionysus_location _dionysus LOCATION)
add_custom_target           (dionysus-link ALL 
                             ${CMAKE_COMMAND} -E create_symlink ${_dionysus_location} ${CMAKE_CURRENT_BINARY_DIR}/dionysus/_dionysus.so
                             DEPENDS _dionysus)