if( HAVE_PYTHON )

  configure_file( setup.py.in setup.py )
  configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../src/common/magics_api.h magics_api.h COPYONLY )
  configure_file( numpy.i numpy.i COPYONLY )
  configure_file( Magics_interface.cc Magics_interface.cc COPYONLY )
  configure_file( Magics.i.in Magics/Magics.i )

  # Copy python modules to build area
  # configure_file ensures the copy is triggered if the file changes
  configure_file( Magics/__init__.py Magics/__init__.py COPYONLY )
  configure_file( Magics/macro.py Magics/macro.py COPYONLY )
  configure_file( Magics/toolbox.py Magics/toolbox.py COPYONLY )
  configure_file( Magics/metgram.py Magics/metgram.py COPYONLY )

  set( _magics_swig "_Magics${CMAKE_SHARED_LIBRARY_SUFFIX}" )
  # Build the extension module for use in build tree with RPATH pointing to the build tree
  add_custom_command( OUTPUT ${_magics_swig}
    COMMAND ${PYTHON_EXECUTABLE} setup.py build_ext --inplace --rpath ${CMAKE_BINARY_DIR}/lib
    DEPENDS Magics_interface.cc Magics.i.in numpy.i setup.py.in MagPlus )
  add_custom_target(build_swig_wrapper ALL DEPENDS ${_magics_swig})

  # Build the extension module for use in install tree with RPATH pointing to install tree
  install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py build_ext --rpath ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")

  # Library installation directory override
  if( NOT INSTALL_LIB_DIR STREQUAL lib )
      execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "from __future__ import print_function; import sys; print(sys.version[:3], end='')"
               OUTPUT_VARIABLE PYVER )
      set( __install_lib "--install-lib=${MAGICS_FULL_INSTALL_LIB_DIR}/python${PYVER}/site-packages" )
  endif()

  # Call distutils for installation
  install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install ${__install_lib} --root \$ENV{DESTDIR}/ --prefix ${CMAKE_INSTALL_PREFIX} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")

endif()
