# ======================= # # # # Python specmicp lib # # # # ======================= # # Build the cython interface # ========================== # Import the correct version of python option(PYTHON_VERSION_3 "Version of python for cython compilation" ON) if (PYTHON_VERSION_3) find_package(PythonLibs 3 REQUIRED) else() find_package(PythonLibs 2.7 REQUIRED) endif() include_directories(${PYTHON_INCLUDE_PATH}) # include cython only once python is configured include(UseCython) # main variables # =============== # directories # ----------- set(PY_SPECMICP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/specmicp) set(PY_SPECMICP_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/specmicp) set(PY_INCLUDES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/includes) # common includes # =============== add_custom_target(cython_includes SOURCES ${PY_INCLUDES_DIR}/memory.pxd ${PY_INCLUDES_DIR}/eigen_set.hpp ${PY_INCLUDES_DIR}/eigen.pxd ) # SpecMiCP module # =============== add_subdirectory(specmicp) # ========== # # # # TEST # # # # ========== # # Prelude # ======= # directories # ----------- set(TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../tests/cython) set(BINARY_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/tests) # variables to configure the scripts # ---------------------------------- set(python_module_path ${CMAKE_CURRENT_BINARY_DIR}) set(database_path ${CMAKE_CURRENT_BINARY_DIR}/../data/cemdata_specmicp.js) # macro to configure the scripts # ------------------------------- macro(configure_python_test test_name) configure_file(${TEST_DIR}/${test_name} ${BINARY_TEST_DIR}${CMAKE_FILES_DIRECTORY}/${test_name} @ONLY) file(COPY ${BINARY_TEST_DIR}${CMAKE_FILES_DIRECTORY}/${test_name} DESTINATION ${BINARY_TEST_DIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) endmacro(configure_python_test) # Scripts # ======= # database unittest configure_python_test(database.py) # test specmicp configure_python_test(test_specmicp.py)