Merge branch 'release-4-6'
[alexxy/gromacs.git] / src / programs / mdrun / CMakeLists.txt
1 include_directories(${CMAKE_SOURCE_DIR}/src/gromacs/gmxpreprocess)
2
3 set(MDRUN_SOURCES
4     do_gct.c    gctio.c         genalg.c    ionize.c
5     md.c        md_openmm.c     mdrun.c     membed.c
6     pme_switch.c  repl_ex.c   runner.c        xutils.c)
7
8 if(GMX_OPENMM) 
9     include_directories(./gmx_gpu_utils ${OpenMM_INCLUDE_DIR})
10     link_directories(${OpenMM_LIBRARY_DIR}) 
11     # with this define no evn.var. is needed with OPENMM_PLUGIN_DIR
12     # if the same OpenMM installation is used for running and building 
13     add_definitions( -DOPENMM_PLUGIN_DIR="${OpenMM_PLUGIN_DIR}" ) 
14     file(TO_CMAKE_PATH ${OpenMM_PLUGIN_DIR} _path)
15     add_library(openmm_api_wrapper STATIC openmm_wrapper.cpp)
16     target_link_libraries(openmm_api_wrapper gmx_gpu_utils ${OpenMM_LIBRARIES})
17     set(GMX_OPENMM_LIBRARIES openmm_api_wrapper gmx_gpu_utils ${OpenMM_LIBRARIES})   
18 endif(GMX_OPENMM)
19
20 if(GMX_FAHCORE)
21     add_library(fahcore ${MDRUN_SOURCES})
22 else(GMX_FAHCORE)
23     add_executable(mdrun ${MDRUN_SOURCES})
24     gmx_add_man_page(mdrun)
25     target_link_libraries(mdrun ${GMX_EXTRA_LIBRARIES} libgromacs ${GMX_OPENMM_LIBRARIES}
26         ${OpenMP_LINKER_FLAGS})
27     set_target_properties(mdrun PROPERTIES OUTPUT_NAME "mdrun${GMX_BINARY_SUFFIX}"
28         COMPILE_FLAGS "${OpenMP_C_FLAGS}")
29     install(TARGETS mdrun DESTINATION ${BIN_INSTALL_DIR} COMPONENT mdrun)
30
31     if(GMX_OPENMM AND MSVC)
32         set_target_properties(mdrun PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT")
33     endif()
34
35     # Create the custom install-mdrun target
36     if (BUILD_SHARED_LIBS)
37         # If shared libraries are used, we need to install the libraries in
38         # addition to the mdrun binary.
39         add_custom_target(install-mdrun
40             COMMAND ${CMAKE_COMMAND} -DCOMPONENT=libraries
41                     -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
42             COMMAND ${CMAKE_COMMAND} -DCOMPONENT=mdrun
43                     -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
44             COMMENT "Installing mdrun")
45     else (BUILD_SHARED_LIBS)
46         add_custom_target(install-mdrun
47             COMMAND ${CMAKE_COMMAND} -DCOMPONENT=mdrun
48                     -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
49             COMMENT "Installing mdrun")
50     endif (BUILD_SHARED_LIBS)
51     add_dependencies(install-mdrun mdrun)
52 endif(GMX_FAHCORE)