# -*- mode: cmake; conding: utf-8; cmake-tab-width: 4; indent-tabs-mode: nil; -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
if ( NOT DEFINED ENABLE_SWIG_PYTHON2 OR ENABLE_SWIG_PYTHON2 )
  if (NOT PYTHON2_VERSION)
    set(PYTHON2_VERSION 2)
  endif (NOT PYTHON2_VERSION)

  #======================================================================
  # Find python and key modules
  #======================================================================

  cx_python(
      VERSION ${PYTHON2_VERSION}
      PREFIX PYTHON2 )
  cx_python_module(
      MODULE numpy REQUIRED
      PREFIX PYTHON2 )

  if (PYTHON2LIBS_FOUND)

      include( ${CMAKE_SOURCE_DIR}/python/test/testsuite.cmake )

      if (PYTHON2LIBS_FOUND AND PYTHON2_NUMPY_INCLUDE_PATH)
          
          set( ENABLE_SWIG_PYTHON2 "yes"
              CACHE INTERNAL "Enable building of SWIG bindings for Python" )

      endif(PYTHON2LIBS_FOUND AND PYTHON2_NUMPY_INCLUDE_PATH)

      include_directories(
          BEFORE
          ${CMAKE_CURRENT_SOURCE_DIR}
          ${PROJECT_SOURCE_DIR}/python/module
          ${PROJECT_BINARY_DIR}/python/module
          ${PROJECT_SOURCE_DIR}/common/module
          ${PROJECT_BINARY_DIR}/common/module
          ${PROJECT_BINARY_DIR}/src/client
          ${PYTHON2_NUMPY_INCLUDE_PATH}
          ${PYTHON2_INCLUDE_PATH}
          )

      set(INTERFACE_FILE "${PROJECT_SOURCE_DIR}/python/module/nds_python.i")


      cx_swig_python_module(
          PREFIX         PYTHON2
          INTERFACE_FILE ${INTERFACE_FILE}
          MODULE         nds2
          LINK_LIBRARIES nds::cxx
          )
      set( NDS_PYTHON_VERSION_MAJOR ${PYTHON2_VERSION_MAJOR} )
      set( NDS_PYTHON_VERSION_MINOR ${PYTHON2_VERSION_MINOR} )

      #======================================================================
      # Configuration file rules
      #======================================================================
      configure_file( ${PROJECT_SOURCE_DIR}/python/module/nds2-client-python.cfg.in
          ${CMAKE_CURRENT_BINARY_DIR}/nds2-client-py${PYTHON2_VERSION_MAJOR}${PYTHON2_VERSION_MINOR}.cfg
          @ONLY )
      #======================================================================
      # Installation Rules
      #======================================================================
      if ( NOT WIN32 )
          install(
              FILES ${CMAKE_CURRENT_BINARY_DIR}/nds2-client-py${PYTHON2_VERSION_MAJOR}${PYTHON2_VERSION_MINOR}.cfg
              DESTINATION "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${PROJECT_BASENAME}"
              COMPONENT Python2
              )

      endif( NOT WIN32 )

      #======================================================================
      # Do unit tests to verify the interface
      #======================================================================
      do_python_tests(
          NAMESPACE         python2
          PREFIX            PYTHON2
          PYTHON_MODULE_DIR ${CMAKE_CURRENT_BINARY_DIR}
          TEST_SOURCE_DIR   ${CMAKE_SOURCE_DIR}/python/test
          )
  endif( )

  #======================================================================
  # Provide additional information regarding components
  #======================================================================

  cpack_add_component(Python2
      DISPLAY_NAME "Python 2.x extensions"
      DESCRIPTION
        "Pieces needed to use the nds2 client from Python 2.x"
      GROUP Runtime)
endif ( )
