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

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}
        ${CHOLMOD_INCLUDE_PATH}
        ${EIGEN3_INCLUDE_PATH}
        ${GPERFTOOLS_INCLUDE_PATH}
        ${LOG4CXX_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}
        ${CHOLMOD_LINK_PATH}
        ${EIGEN3_LINK_PATH}
        ${GPERFTOOLS_LINK_PATH}
        ${LOG4CXX_LINK_PATH}
        ${TCMALLOC_HEAPCHECKER_LINK_PATH}
        ${TCMALLOC_HEAPPROFILER_LINK_PATH})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ISD_CXX_FLAGS}")


File(GLOB runtimepytests "${PROJECT_BINARY_DIR}/test/isd/test_*.py")

math(EXPR short_timeout "${IMP_TIMEOUT_FACTOR} * 5")
math(EXPR medium_timeout "${IMP_TIMEOUT_FACTOR} * 15")
math(EXPR expensive_timeout "${IMP_TIMEOUT_FACTOR} * 120")

# should make into function
foreach (test ${runtimepytests} ${PROJECT_SOURCE_DIR}/modules/isd/test/test_AmbiguousNOERestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_Covariance1DFunction.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_FNormal.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolation.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationNumerically.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationNumericallyNoMean.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationNumericallyNoSigma.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationRestraintNumerically.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationRestraintNumericallyNoMean.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationRestraintNumericallyNoSigma.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationRestraintSparse.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianProcessInterpolationSparse.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GaussianRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_GeneralizedGuinierPorodFunction.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_JeffreysRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_Linear1DFunction.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_LognormalRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MaintainScaleOrderConstraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MarginalHBondRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MarginalNOERestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MolecularDynamicsMover.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MolecularDynamicsNuisance.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MolecularDynamicsXYZ.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_NOERestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_Nuisance.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_NuisanceRangeModifier.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_Replica.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_RepulsiveDistancePairScore.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_Scale.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_SlidingPriorRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_Switching.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_TALOSRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_TBLReader.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_TuneRex.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_communication.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_vonMises.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_vonMisesKappaConjugateRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_vonMisesKappaJeffreysRestraint.py
${PROJECT_SOURCE_DIR}/modules/isd/test/test_vonMisesSufficient.py)
  GET_FILENAME_COMPONENT(name ${test} NAME)
  if(EXISTS "${PROJECT_BINARY_DIR}/test/isd/${name}tests")
    FILE(READ "${PROJECT_BINARY_DIR}/test/isd/${name}tests" 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("isd.${name}.${methname}" ${IMP_TEST_SETUP} python ${test} "${methname}")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES LABELS "IMP.isd;test;length_short")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES MEASUREMENT "docstring=${docstring}")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES TIMEOUT ${short_timeout})
    endforeach()
  else()
    add_test("isd.${name}" ${IMP_TEST_SETUP} python ${test})
    set_tests_properties("isd.${name}" PROPERTIES LABELS "IMP.isd;test;length_short")
    set_tests_properties("isd.${name}" PROPERTIES TIMEOUT ${short_timeout})
    set_tests_properties("isd.${name}" PROPERTIES COST 1)
  endif()
endforeach(test)

foreach (test )
  GET_FILENAME_COMPONENT(name ${test} NAME)
  if(EXISTS "${PROJECT_BINARY_DIR}/test/isd/${name}tests")
    FILE(READ "${PROJECT_BINARY_DIR}/test/isd/${name}tests" 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("isd.${name}.${methname}" ${IMP_TEST_SETUP} python ${test} "${methname}")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES LABELS "IMP.isd;test;length_medium")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES MEASUREMENT "docstring=${docstring}")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES TIMEOUT ${medium_timeout})
    endforeach()
  else()
    add_test("isd.${name}" ${IMP_TEST_SETUP} python ${test})
    set_tests_properties("isd.${name}" PROPERTIES LABELS "IMP.isd;test;length_medium")
    set_tests_properties("isd.${name}" PROPERTIES TIMEOUT ${medium_timeout})
    set_tests_properties("isd.${name}" PROPERTIES COST 2)
  endif()
endforeach(test)

foreach (test ${PROJECT_SOURCE_DIR}/modules/isd/test/expensive_test_HybridMonteCarlo.py
${PROJECT_SOURCE_DIR}/modules/isd/test/expensive_test_shared_functions.py)
  GET_FILENAME_COMPONENT(name ${test} NAME)
  if(EXISTS "${PROJECT_BINARY_DIR}/test/isd/${name}tests")
    FILE(READ "${PROJECT_BINARY_DIR}/test/isd/${name}tests" 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("isd.${name}.${methname}" ${IMP_TEST_SETUP} python ${test} "${methname}")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES LABELS "IMP.isd;test;length_expensive")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES MEASUREMENT "docstring=${docstring}")
      set_tests_properties("isd.${name}.${methname}" PROPERTIES TIMEOUT ${expensive_timeout})
    endforeach()
  else()
    add_test("isd.${name}" ${IMP_TEST_SETUP} python ${test})
    set_tests_properties("isd.${name}" PROPERTIES LABELS "IMP.isd;test;length_expensive")
    set_tests_properties("isd.${name}" PROPERTIES TIMEOUT ${expensive_timeout})
    set_tests_properties("isd.${name}" PROPERTIES COST 3)
  endif()
endforeach(test)

set(cpp_tests ${PROJECT_SOURCE_DIR}/modules/isd/test/test_ConjugateGradientEigen.cpp
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MultivariateFNormalSufficient.cpp
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MultivariateFNormalSufficientCG.cpp
${PROJECT_SOURCE_DIR}/modules/isd/test/test_MultivariateFNormalSufficientSparse.cpp)

foreach (test ${cpp_tests})
   GET_FILENAME_COMPONENT(name ${test} NAME)
   GET_FILENAME_COMPONENT(name_we ${test} NAME_WE)
   add_executable("isd.${name}" ${test})
   target_link_libraries("isd.${name}"     imp_isd
    ${IMP_BASE_LIBRARY}
${IMP_CGAL_LIBRARY}
${IMP_ALGEBRA_LIBRARY}
${IMP_KERNEL_LIBRARY}
${IMP_DISPLAY_LIBRARY}
${IMP_SCORE_FUNCTOR_LIBRARY}
${IMP_STATISTICS_LIBRARY}
${IMP_CORE_LIBRARY}
${IMP_CONTAINER_LIBRARY}
${IMP_ATOM_LIBRARY}
${IMP_EM_LIBRARY}
${IMP_SAXS_LIBRARY}
    ${EIGEN3_LIBRARIES}
${CHOLMOD_LIBRARIES}
${BOOST.FILESYSTEM_LIBRARIES}
${BOOST.PROGRAMOPTIONS_LIBRARIES}
${BOOST.SYSTEM_LIBRARIES}
${GPERFTOOLS_LIBRARIES}
${TCMALLOC_HEAPPROFILER_LIBRARIES}
${TCMALLOC_HEAPCHECKER_LIBRARIES}
${LOG4CXX_LIBRARIES}
${BOOST.RANDOM_LIBRARIES}
${CGAL_LIBRARIES}
${ANN_LIBRARIES}
${BOOST.REGEX_LIBRARIES})
   set_target_properties("isd.${name}" PROPERTIES
                         RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/test/isd/"
                         OUTPUT_NAME ${name_we})
   add_test("isd.${name}" ${IMP_TEST_SETUP}
            "${PROJECT_BINARY_DIR}/test/isd/${name_we}${CMAKE_EXECUTABLE_SUFFIX}")
   set_tests_properties("isd.${name}" PROPERTIES LABELS "IMP.isd;test;length_short")
   set_tests_properties("isd.${name}" PROPERTIES TIMEOUT ${short_timeout})
   set_tests_properties("isd.${name}" PROPERTIES COST 1)
   set(executables ${executables} "isd.${name}")
endforeach(test)


set(mdcpp_tests )

foreach (test ${mdcpp_tests})
   GET_FILENAME_COMPONENT(name ${test} NAME)
   GET_FILENAME_COMPONENT(name_we ${test} NAME_WE)
   add_executable("isd.${name}" ${test})
   target_link_libraries("isd.${name}"     imp_isd
    ${IMP_BASE_LIBRARY}
${IMP_CGAL_LIBRARY}
${IMP_ALGEBRA_LIBRARY}
${IMP_KERNEL_LIBRARY}
${IMP_DISPLAY_LIBRARY}
${IMP_SCORE_FUNCTOR_LIBRARY}
${IMP_STATISTICS_LIBRARY}
${IMP_CORE_LIBRARY}
${IMP_CONTAINER_LIBRARY}
${IMP_ATOM_LIBRARY}
${IMP_EM_LIBRARY}
${IMP_SAXS_LIBRARY}
    ${EIGEN3_LIBRARIES}
${CHOLMOD_LIBRARIES}
${BOOST.FILESYSTEM_LIBRARIES}
${BOOST.PROGRAMOPTIONS_LIBRARIES}
${BOOST.SYSTEM_LIBRARIES}
${GPERFTOOLS_LIBRARIES}
${TCMALLOC_HEAPPROFILER_LIBRARIES}
${TCMALLOC_HEAPCHECKER_LIBRARIES}
${LOG4CXX_LIBRARIES}
${BOOST.RANDOM_LIBRARIES}
${CGAL_LIBRARIES}
${ANN_LIBRARIES}
${BOOST.REGEX_LIBRARIES})
   set_target_properties("isd.${name}" PROPERTIES
                         RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/test/isd/"
                         OUTPUT_NAME ${name_we})
   add_test("isd.${name}" ${IMP_TEST_SETUP}
            "${PROJECT_BINARY_DIR}/test/isd/${name_we}${CMAKE_EXECUTABLE_SUFFIX}")
   set_tests_properties("isd.${name}" PROPERTIES LABELS "IMP.isd;test;length_medium")
   set_tests_properties("isd.${name}" PROPERTIES TIMEOUT ${medium_timeout})
   set_tests_properties("isd.${name}" PROPERTIES COST 1)
   set(executables ${executables} "isd.${name}")
endforeach(test)

set(excpp_tests )

foreach (test ${excpp_tests})
   GET_FILENAME_COMPONENT(name ${test} NAME)
   GET_FILENAME_COMPONENT(name_we ${test} NAME_WE)
   add_executable("isd.${name}" ${test})
   target_link_libraries("isd.${name}"     imp_isd
    ${IMP_BASE_LIBRARY}
${IMP_CGAL_LIBRARY}
${IMP_ALGEBRA_LIBRARY}
${IMP_KERNEL_LIBRARY}
${IMP_DISPLAY_LIBRARY}
${IMP_SCORE_FUNCTOR_LIBRARY}
${IMP_STATISTICS_LIBRARY}
${IMP_CORE_LIBRARY}
${IMP_CONTAINER_LIBRARY}
${IMP_ATOM_LIBRARY}
${IMP_EM_LIBRARY}
${IMP_SAXS_LIBRARY}
    ${EIGEN3_LIBRARIES}
${CHOLMOD_LIBRARIES}
${BOOST.FILESYSTEM_LIBRARIES}
${BOOST.PROGRAMOPTIONS_LIBRARIES}
${BOOST.SYSTEM_LIBRARIES}
${GPERFTOOLS_LIBRARIES}
${TCMALLOC_HEAPPROFILER_LIBRARIES}
${TCMALLOC_HEAPCHECKER_LIBRARIES}
${LOG4CXX_LIBRARIES}
${BOOST.RANDOM_LIBRARIES}
${CGAL_LIBRARIES}
${ANN_LIBRARIES}
${BOOST.REGEX_LIBRARIES})
   set_target_properties("isd.${name}" PROPERTIES
                         RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/test/isd/"
                         OUTPUT_NAME ${name_we})
   add_test("isd.${name}" ${IMP_TEST_SETUP}
            "${PROJECT_BINARY_DIR}/test/isd/${name_we}${CMAKE_EXECUTABLE_SUFFIX}")
   set_tests_properties("isd.${name}" PROPERTIES LABELS "IMP.isd;test;length_expensive")
   set_tests_properties("isd.${name}" PROPERTIES TIMEOUT ${expensive_timeout})
   set_tests_properties("isd.${name}" PROPERTIES COST 1)
   set(executables ${executables} "isd.${name}")
endforeach(test)

add_custom_target("imp_isd_tests" ALL DEPENDS ${executables})
