# Autogenerated file, run tools/build/setup_cmake.py to regenerate

add_definitions(-DIMP_SWIG_WRAPPER)

include_directories(${ANN_INCLUDE_PATH}
        ${BOOST.FILESYSTEM_INCLUDE_PATH}
        ${BOOST.PROGRAMOPTIONS_INCLUDE_PATH}
        ${BOOST.RANDOM_INCLUDE_PATH}
        ${BOOST.REGEX_INCLUDE_PATH}
        ${BOOST.SYSTEM_INCLUDE_PATH}
        ${CGAL_INCLUDE_PATH}
        ${GPERFTOOLS_INCLUDE_PATH}
        ${TCMALLOC_HEAPCHECKER_INCLUDE_PATH}
        ${TCMALLOC_HEAPPROFILER_INCLUDE_PATH})
link_directories(${ANN_LINK_PATH}
        ${BOOST.FILESYSTEM_LINK_PATH}
        ${BOOST.PROGRAMOPTIONS_LINK_PATH}
        ${BOOST.RANDOM_LINK_PATH}
        ${BOOST.REGEX_LINK_PATH}
        ${BOOST.SYSTEM_LINK_PATH}
        ${CGAL_LINK_PATH}
        ${GPERFTOOLS_LINK_PATH}
        ${TCMALLOC_HEAPCHECKER_LINK_PATH}
        ${TCMALLOC_HEAPPROFILER_LINK_PATH})

GET_DIRECTORY_PROPERTY(includes INCLUDE_DIRECTORIES)

# SWIG doesn't need Python.h in its own include path
include_directories(${PYTHON_INCLUDE_DIRS})

# this is needed for some reason that I don't understand
set(swig_path ${ANN_SWIG_PATH}
        ${BOOST.FILESYSTEM_SWIG_PATH}
        ${BOOST.PROGRAMOPTIONS_SWIG_PATH}
        ${BOOST.RANDOM_SWIG_PATH}
        ${BOOST.REGEX_SWIG_PATH}
        ${BOOST.SYSTEM_SWIG_PATH}
        ${CGAL_SWIG_PATH}
        ${GPERFTOOLS_SWIG_PATH}
        ${TCMALLOC_HEAPCHECKER_SWIG_PATH}
        ${TCMALLOC_HEAPPROFILER_SWIG_PATH})
list(APPEND swig_path ${IMP_SWIG_PATH})

file(STRINGS "${CMAKE_BINARY_DIR}/src/rotamer_swig.deps" swigdeps)

set(wrap_py "${CMAKE_BINARY_DIR}/lib/IMP/rotamer/__init__.py")
set(wrap_py_orig "${CMAKE_BINARY_DIR}/src/rotamer_swig/IMP.rotamer.py")
set(source "${CMAKE_BINARY_DIR}/src/rotamer_swig/wrap.cpp"
                          "${CMAKE_BINARY_DIR}/src/rotamer_swig/wrap.h")

set(PATH_ARGS )
foreach(path ${includes})
  list(APPEND PATH_ARGS "--includepath=${path}")
endforeach(path)
foreach(path ${swig_path})
  list(APPEND PATH_ARGS "--swigpath=${path}")
endforeach(path)
add_custom_command(OUTPUT ${source} ${wrap_py} ${wrap_py_orig}
   COMMAND  python
            "${CMAKE_SOURCE_DIR}/tools/build/make_swig_wrapper.py"
            "--swig=${SWIG_EXECUTABLE}"
            "--module=rotamer"
            ${PATH_ARGS}
   DEPENDS ${swigdeps} ${IMP_ROTAMER_PYTHON_EXTRA_DEPENDENCIES}
   WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
   COMMENT "Running swig on rotamer")

add_library(IMP.rotamer-python MODULE ${source})
# Apple linkers complain by default if there are undefined symbols
if(APPLE)
  set_target_properties(IMP.rotamer-python PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
endif(APPLE)


set_target_properties(IMP.rotamer-python PROPERTIES PREFIX ""
                      OUTPUT_NAME _IMP_rotamer)
set_property(TARGET "IMP.rotamer-python" PROPERTY FOLDER "IMP.rotamer")


if(WIN32 AND NOT CYGWIN)
  set_target_properties(IMP.rotamer-python PROPERTIES SUFFIX ".pyd")
endif()

target_link_libraries(IMP.rotamer-python
    IMP.rotamer-lib
    ${imp_rotamer_libs}
    ${IMP_SWIG_LIBRARIES}
  )

set(IMP_rotamer_PYTHON ${source} IMP.rotamer-python ${wrap_py} ${IMP_base_PYTHON}
${IMP_cgal_PYTHON}
${IMP_algebra_PYTHON}
${IMP_kernel_PYTHON}
${IMP_display_PYTHON}
${IMP_score_functor_PYTHON}
${IMP_core_PYTHON}
${IMP_container_PYTHON}
${IMP_atom_PYTHON}
                   CACHE INTERNAL "" FORCE)

INSTALL(TARGETS IMP.rotamer-python DESTINATION ${CMAKE_INSTALL_PYTHONDIR})
# Install the original wrapper, since wrap_py is a symlink and install does
# not dereference symlinks
INSTALL(FILES ${wrap_py_orig}
        DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/IMP/rotamer
        RENAME __init__.py)
