FIND_PACKAGE(PythonInstDir)
FIND_PACKAGE (SWIG REQUIRED)
INCLUDE (UseSWIG)

MESSAGE (STATUS "Building for python${PYTHON_VERSION_MAJOR}")

FIND_PACKAGE(PythonInstDir)

INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR})
INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
INCLUDE (UseSWIG)

if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    # using 64bit architecture
    SET(CMAKE_SWIG_FLAGS "-DSWIGWORDSIZE64")
endif ()

SET (CONFIG_NAME "conf")
SET_SOURCE_FILES_PROPERTIES (../swig/${CONFIG_NAME}.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE (${CONFIG_NAME} python ../swig/${CONFIG_NAME}.i)
SWIG_LINK_LIBRARIES (${CONFIG_NAME} libdnf)
SWIG_LINK_LIBRARIES (${CONFIG_NAME} ${PYTHON_LIBRARY})
INSTALL (TARGETS _${CONFIG_NAME} LIBRARY DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
INSTALL (FILES ${CMAKE_BINARY_DIR}/bindings/python/${CONFIG_NAME}.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

SET (REPO_NAME "repo")
SET_SOURCE_FILES_PROPERTIES (../swig/${REPO_NAME}.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE (${REPO_NAME} python ../swig/${REPO_NAME}.i)
SWIG_LINK_LIBRARIES (${REPO_NAME} libdnf)
SWIG_LINK_LIBRARIES (${REPO_NAME} ${PYTHON_LIBRARY})
INSTALL (TARGETS _${REPO_NAME} LIBRARY DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
INSTALL (FILES ${CMAKE_BINARY_DIR}/bindings/python/${REPO_NAME}.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

SET (SMARTCOLS_NAME "smartcols")
SET_SOURCE_FILES_PROPERTIES (../swig/${SMARTCOLS_NAME}.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE (${SMARTCOLS_NAME} python ../swig/${SMARTCOLS_NAME}.i)
SWIG_LINK_LIBRARIES (${SMARTCOLS_NAME} libdnf)
SWIG_LINK_LIBRARIES (${SMARTCOLS_NAME} ${PYTHON_LIBRARY})
INSTALL (TARGETS _${SMARTCOLS_NAME} DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
INSTALL (FILES ${CMAKE_BINARY_DIR}/bindings/python/${SMARTCOLS_NAME}.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

SET_SOURCE_FILES_PROPERTIES (../swig/utils.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE (utils python ../swig/utils.i)
SWIG_LINK_LIBRARIES (utils libdnf)
SWIG_LINK_LIBRARIES (utils ${PYTHON_LIBRARY})
SWIG_LINK_LIBRARIES (utils ${SQLite3_LIBRARIES})
INSTALL (TARGETS _utils DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
INSTALL (FILES ${CMAKE_BINARY_DIR}/bindings/python/utils.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

SET_SOURCE_FILES_PROPERTIES (../swig/transaction.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE (transaction python ../swig/transaction.i)
SWIG_LINK_LIBRARIES (transaction libdnf)
SWIG_LINK_LIBRARIES (transaction ${PYTHON_LIBRARY})
INSTALL (TARGETS _transaction DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
INSTALL (FILES ${CMAKE_BINARY_DIR}/bindings/python/transaction.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

SET (MODULE_NAME "module")
SET_SOURCE_FILES_PROPERTIES (../swig/${MODULE_NAME}.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE (${MODULE_NAME} python ../swig/${MODULE_NAME}.i)
SWIG_LINK_LIBRARIES (${MODULE_NAME} libdnf)
SWIG_LINK_LIBRARIES (${MODULE_NAME} ${PYTHON_LIBRARY})
INSTALL (TARGETS _${MODULE_NAME} LIBRARY DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
INSTALL (FILES ${CMAKE_BINARY_DIR}/bindings/python/${MODULE_NAME}.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)

configure_file(__init__.py ${CMAKE_CURRENT_BINARY_DIR}/__init__.py COPYONLY)
INSTALL (FILES __init__.py DESTINATION ${PYTHON_INSTALL_DIR}/libdnf)
