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