# 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.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.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.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/container_swig.deps" swigdeps)

set(wrap_py "${CMAKE_BINARY_DIR}/lib/IMP/container/__init__.py")
set(wrap_py_orig "${CMAKE_BINARY_DIR}/src/container_swig/IMP.container.py")
set(source "${CMAKE_BINARY_DIR}/src/container_swig/wrap.cpp"
                          "${CMAKE_BINARY_DIR}/src/container_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=container"
            ${PATH_ARGS}
   DEPENDS ${swigdeps} ${IMP_CONTAINER_PYTHON_EXTRA_DEPENDENCIES}
   WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
   COMMENT "Running swig on container")

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


set_target_properties(IMP.container-python PROPERTIES PREFIX ""
                      OUTPUT_NAME _IMP_container)
set_property(TARGET "IMP.container-python" PROPERTY FOLDER "IMP.container")


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

target_link_libraries(IMP.container-python
    IMP.container-lib
    ${imp_container_libs}
    ${IMP_SWIG_LIBRARIES}
  )

set(IMP_container_PYTHON ${source} IMP.container-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}
                   CACHE INTERNAL "" FORCE)

INSTALL(TARGETS IMP.container-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/container
        RENAME __init__.py)
