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

imp_get_process_exit_code("setup_application EMageFit" status ${PROJECT_BINARY_DIR}
                          COMMAND ${PROJECT_SOURCE_DIR}/tools/build/setup_application.py
                          --name=EMageFit
                          --datapath=${IMP_DATAPATH}
                           --source=${PROJECT_SOURCE_DIR})
if(${status} EQUAL 0)
message("Application IMP.EMageFit ok")
include_directories(${ANN_INCLUDE_PATH}
        ${BOOST.FILESYSTEM_INCLUDE_PATH}
        ${BOOST.GRAPH_INCLUDE_PATH}
        ${BOOST.PROGRAMOPTIONS_INCLUDE_PATH}
        ${BOOST.RANDOM_INCLUDE_PATH}
        ${BOOST.REGEX_INCLUDE_PATH}
        ${BOOST.SYSTEM_INCLUDE_PATH}
        ${CGAL_INCLUDE_PATH}
        ${FFTW3_INCLUDE_PATH}
        ${GPERFTOOLS_INCLUDE_PATH}
        ${GSL_INCLUDE_PATH}
        ${HDF5_INCLUDE_PATH}
        ${LOG4CXX_INCLUDE_PATH}
        ${OPENCV21_INCLUDE_PATH}
        ${OPENCV22_INCLUDE_PATH}
        ${RMF_INCLUDE_PATH}
        ${TCMALLOC_HEAPCHECKER_INCLUDE_PATH}
        ${TCMALLOC_HEAPPROFILER_INCLUDE_PATH} )
link_directories(${ANN_LINK_PATH}
        ${BOOST.FILESYSTEM_LINK_PATH}
        ${BOOST.GRAPH_LINK_PATH}
        ${BOOST.PROGRAMOPTIONS_LINK_PATH}
        ${BOOST.RANDOM_LINK_PATH}
        ${BOOST.REGEX_LINK_PATH}
        ${BOOST.SYSTEM_LINK_PATH}
        ${CGAL_LINK_PATH}
        ${FFTW3_LINK_PATH}
        ${GPERFTOOLS_LINK_PATH}
        ${GSL_LINK_PATH}
        ${HDF5_LINK_PATH}
        ${LOG4CXX_LINK_PATH}
        ${OPENCV21_LINK_PATH}
        ${OPENCV22_LINK_PATH}
        ${RMF_LINK_PATH}
        ${TCMALLOC_HEAPCHECKER_LINK_PATH}
        ${TCMALLOC_HEAPPROFILER_LINK_PATH})

if(${IMP_SPLIT_PYTHON_TESTS})
imp_execute_process("get_python_tests EMageFit" ${PROJECT_BINARY_DIR}
                    COMMAND ${PROJECT_SOURCE_DIR}/tools/build/get_python_tests.py
                          --application=EMageFit
                          ${PROJECT_SOURCE_DIR})
endif()


add_custom_target("IMP.EMageFit" ALL DEPENDS ${bins})


set(pybins ${PROJECT_SOURCE_DIR}/applications/EMageFit/convert_spider_to_jpg.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/emagefit.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/emagefit_cluster.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/emagefit_dock.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/emagefit_score.py)
foreach (pybin ${pybins})
  install(PROGRAMS ${pybin} DESTINATION ${CMAKE_INSTALL_BINDIR})
endforeach(pybin)

set(pytests ${PROJECT_SOURCE_DIR}/applications/EMageFit/test/test_cluster_solutions.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/test/test_dock_related.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/test/test_domino_modeling.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/test/test_mc_modeling.py
${PROJECT_SOURCE_DIR}/applications/EMageFit/test/expensive_test_3sfd_example.py)
foreach (test ${pytests})
  GET_FILENAME_COMPONENT(name ${test} NAME_WE)
  if(EXISTS "${PROJECT_BINARY_DIR}/test/EMageFit/${name}.pytests")
    FILE(READ "${PROJECT_BINARY_DIR}/test/EMageFit/${name}.pytests" contents)
    STRING(REGEX REPLACE ";" "\\\\;" contents "${contents}")
    STRING(REGEX REPLACE "\n" ";" contents "${contents}")
    foreach(testline ${contents})
      string(REGEX REPLACE "([A-Za-z0-9_]+\\.[A-Za-z0-9_]+) (.*)" 
                           "\\1;\\2" split "${testline}")
      list(GET split 0 methname)
      list(GET split 1 docstring)
      add_test("EMageFit.${name}.${methname}" ${IMP_TEST_SETUP} python ${test} "${methname}")
      set_tests_properties("EMageFit.${name}.${methname}" PROPERTIES LABELS "IMP.EMageFit;test")
      set_tests_properties("EMageFit.${name}.${methname}" PROPERTIES MEASUREMENT "docstring=${docstring}")
    endforeach()
  else()
    add_test("EMageFit.${name}" ${IMP_TEST_SETUP} python ${test})
    set_tests_properties("EMageFit.${name}" PROPERTIES LABELS "IMP.EMageFit;test")
  endif()
endforeach(test)


elseif(${status} EQUAL 1)
message("Application EMageFit disabled")
else()
message(FATAL_ERROR "setup_application failed ${status}")
endif()
