FIND_PACKAGE(PythonInterp REQUIRED) # build FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/py-kdtree.hpp.tmpl DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/py-kdtree.i.tmpl DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) ADD_CUSTOM_COMMAND(OUTPUT py-kdtree.hpp py-kdtree.i COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/python-bindings/gen-swig-hpp.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS gen-swig-hpp.py py-kdtree.hpp.tmpl py-kdtree.i.tmpl ) ADD_CUSTOM_COMMAND(OUTPUT _kdtree.so kdtree.py COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/python-bindings/setup.py build_ext --include-dir=${CMAKE_SOURCE_DIR} build DEPENDS py-kdtree.hpp py-kdtree.i setup.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) ADD_CUSTOM_TARGET(python-kdtree ALL DEPENDS _kdtree.so kdtree.py) # install INSTALL(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -DSETUP_PY=${CMAKE_CURRENT_SOURCE_DIR}/setup.py -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DPREFIX=${CMAKE_INSTALL_PREFIX} -DWDIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/setup_py_with_destdir.cmake)" DEPENDS python-kdtree ) # tests ADD_TEST(NAME python-kdtree WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py test ) SET_TESTS_PROPERTIES(python-kdtree PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}")