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

project(IMP.cnmultifit)

add_subdirectory(${CMAKE_SOURCE_DIR}/modules/cnmultifit/dependency)

imp_get_process_exit_code("Setting up module cnmultifit" status ${CMAKE_BINARY_DIR}
                          COMMAND ${CMAKE_SOURCE_DIR}/tools/build/setup_module.py
                          --name=cnmultifit
                          --datapath=${IMP_DATAPATH}
                          --defines=${IMP_CNMULTIFIT_CONFIG}:
                           --source=${CMAKE_SOURCE_DIR})
if(${status} EQUAL 0)
  imp_execute_process("setup_swig_wrappers cnmultifit" ${CMAKE_BINARY_DIR}
    COMMAND ${CMAKE_SOURCE_DIR}/tools/build/setup_swig_wrappers.py
    --module=cnmultifit
    --datapath=${IMP_DATAPATH}
    --source=${CMAKE_SOURCE_DIR})

  # for warning control
  add_definitions(-DIMPCNMULTIFIT_COMPILATION)

  if(IMP_DOXYGEN_FOUND)
    # documentation
    file(GLOB headers ${CMAKE_BINARY_DIR}/include/IMP/cnmultifit/*.h)
    file(GLOB docs ${CMAKE_SOURCE_DIR}/modules/cnmultifit/doc/*.dox
      ${CMAKE_SOURCE_DIR}/modules/cnmultifit/doc/*.md)
    file(GLOB examples ${CMAKE_BINARY_DIR}/doc/examples/cnmultifit/*.py
      ${CMAKE_BINARY_DIR}/doc/examples/cnmultifit/*.cpp)

    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/doxygen/cnmultifit/tags ${CMAKE_BINARY_DIR}/doxygen/cnmultifit/xml/index.xml
      COMMAND mkdir -p ${CMAKE_BINARY_DIR}/doc/html
      COMMAND ln -s -f ../../include
      COMMAND ln -s -f ../../doc/examples
      COMMAND ln -s -f ../../lib
      COMMAND ${IMP_DOXYGEN_EXECUTABLE} ../../doxygen/cnmultifit/Doxyfile 2>&1 /dev/null
      COMMAND ${CMAKE_SOURCE_DIR}/tools/build/doxygen_patch_tags.py --module=cnmultifit --file=../../doxygen/cnmultifit/tags
      COMMAND ${CMAKE_SOURCE_DIR}/tools/build/doxygen_show_warnings.py --warn=../../doxygen/cnmultifit/warnings.txt
      DEPENDS ${IMP_base_DOC}
${IMP_cgal_DOC}
${IMP_algebra_DOC}
${IMP_kernel_DOC}
${IMP_display_DOC}
${IMP_score_functor_DOC}
${IMP_statistics_DOC}
${IMP_core_DOC}
${IMP_container_DOC}
${IMP_atom_DOC}
${IMP_em_DOC}
${IMP_rmf_DOC}
${IMP_domino_DOC}
${IMP_multifit_DOC} ${headers} ${docs} ${examples} ${CMAKE_SOURCE_DIR}/modules/cnmultifit/README.md IMP.cnmultifit-python ${IMP_DOXYGEN_FETCH}
      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doxygen/cnmultifit/
      COMMENT "Running doxygen on cnmultifit")

    add_custom_target("IMP.cnmultifit-doc" ALL DEPENDS ${CMAKE_BINARY_DIR}/doxygen/cnmultifit/tags)
    set_property(TARGET "IMP.cnmultifit-doc" PROPERTY FOLDER "IMP.cnmultifit")
    set(IMP_cnmultifit_DOC "IMP.cnmultifit-doc" CACHE INTERNAL "" FORCE)

    list(APPEND IMP_DOC_DEPENDS "${IMP.cnmultifit-python}")
    list(REMOVE_DUPLICATES IMP_DOC_DEPENDS)
    set(IMP_DOC_DEPENDS ${IMP_DOC_DEPENDS} CACHE INTERNAL "" FORCE)
  else()
    set(IMP_cnmultifit_DOC "" CACHE INTERNAL "" FORCE)
  endif(IMP_DOXYGEN_FOUND)

  list(APPEND imp_cnmultifit_libs ${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_rmf_LIBRARY};${IMP_domino_LIBRARY};${IMP_multifit_LIBRARY})
  list(APPEND imp_cnmultifit_libs ${BOOST.PROGRAMOPTIONS_LIBRARIES};${BOOST.FILESYSTEM_LIBRARIES};${LIBTAU_LIBRARIES};${BOOST.SYSTEM_LIBRARIES};${GPERFTOOLS_LIBRARIES};${TCMALLOC_HEAPPROFILER_LIBRARIES};${TCMALLOC_HEAPCHECKER_LIBRARIES};${BOOST.RANDOM_LIBRARIES};${CGAL_LIBRARIES};${ANN_LIBRARIES};${BOOST.REGEX_LIBRARIES};${RMF_LIBRARIES};${BOOST.GRAPH_LIBRARIES};${HDF5_LIBRARIES};${FFTW3_LIBRARIES})
  list(REMOVE_DUPLICATES imp_cnmultifit_libs)

  add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/lib/IMP/cnmultifit/_version_check.py
                            ${CMAKE_BINARY_DIR}/src/cnmultifit_config.cpp
    COMMAND ${CMAKE_SOURCE_DIR}/tools/build/make_module_version.py --name=cnmultifit --datapath=${IMP_DATAPATH} --source=${CMAKE_SOURCE_DIR}
    DEPENDS IMP-version
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/
    COMMENT "Building module version info")

  add_custom_target("IMP.cnmultifit-version" ALL DEPENDS
                          ${CMAKE_BINARY_DIR}/lib/IMP/cnmultifit/_version_check.py
                          ${CMAKE_BINARY_DIR}/src/cnmultifit_config.cpp)
  set_property(TARGET "IMP.cnmultifit-version" PROPERTY FOLDER "IMP.cnmultifit")
  install(FILES "${CMAKE_BINARY_DIR}/lib/IMP/cnmultifit/_version_check.py" DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/IMP/cnmultifit/")

  add_subdirectory(${CMAKE_SOURCE_DIR}/modules/cnmultifit/src)
add_subdirectory(${CMAKE_SOURCE_DIR}/modules/cnmultifit/test)
add_subdirectory(${CMAKE_SOURCE_DIR}/modules/cnmultifit/examples)
add_subdirectory(${CMAKE_SOURCE_DIR}/modules/cnmultifit/benchmark)
add_subdirectory(${CMAKE_SOURCE_DIR}/modules/cnmultifit/bin)
  set(IMP_cnmultifit "IMP.cnmultifit" CACHE INTERNAL "" FORCE)
else()

  # make sure it is empty
  set(IMP_cnmultifit_DOC "" CACHE INTERNAL "" FORCE)
  set(IMP_cnmultifit_PYTHON "" CACHE INTERNAL "" FORCE)
  set(IMP_cnmultifit "" CACHE INTERNAL "" FORCE)

  if(${status} EQUAL 1)
    message("Module IMP.cnmultifit disabled")
  else()
    message(FATAL_ERROR "setup_module returned ${status}")
  endif()
  set(IMP_cnmultifit_LIBRARY CACHE INTERNAL "" FORCE)
endif()
