2 set(GMXPREPROCESS_SOURCES
36 gctio.c ionize.c runner.c
37 do_gct.c repl_ex.c xutils.c
38 md.c mdrun.c genalg.c md_openmm.c)
40 add_library(gmxpreprocess ${GMXPREPROCESS_SOURCES})
41 target_link_libraries(gmxpreprocess md)
42 set_target_properties(gmxpreprocess PROPERTIES OUTPUT_NAME "gmxpreprocess${GMX_LIBS_SUFFIX}" SOVERSION ${SOVERSION} INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
46 add_subdirectory(gmx_gpu_utils)
47 include_directories(./gmx_gpu_utils ${OpenMM_INCLUDE_DIR})
48 link_directories(${OpenMM_LIBRARY_DIR})
49 # with this define no evn.var. is needed with OPENMM_PLUGIN_DIR
50 # if the same OpenMM installation is used for running and building
51 add_definitions( -DOPENMM_PLUGIN_DIR="${OpenMM_PLUGIN_DIR}" )
52 file(TO_CMAKE_PATH ${OpenMM_PLUGIN_DIR} _path)
53 add_library(openmm_api_wrapper STATIC openmm_wrapper.cpp)
54 target_link_libraries(openmm_api_wrapper gmx_gpu_utils ${OpenMM_LIBRARIES})
55 set(GMX_OPENMM_LIBRARIES openmm_api_wrapper gmx_gpu_utils ${OpenMM_LIBRARIES})
59 add_library(fahcore ${MDRUN_SOURCES})
62 list(APPEND GMX_EXTRA_LIBRARIES gmxpreprocess md)
64 add_executable(grompp grompp.c)
65 target_link_libraries(grompp ${GMX_EXTRA_LIBRARIES})
66 set_target_properties(grompp PROPERTIES OUTPUT_NAME "grompp${GMX_BINARY_SUFFIX}")
68 add_executable(tpbconv tpbconv.c)
69 target_link_libraries(tpbconv ${GMX_EXTRA_LIBRARIES})
70 set_target_properties(tpbconv PROPERTIES OUTPUT_NAME "tpbconv${GMX_BINARY_SUFFIX}")
72 add_executable(pdb2gmx pdb2gmx.c)
73 target_link_libraries(pdb2gmx ${GMX_EXTRA_LIBRARIES})
74 set_target_properties(pdb2gmx PROPERTIES OUTPUT_NAME "pdb2gmx${GMX_BINARY_SUFFIX}")
76 add_executable(g_protonate g_protonate.c)
77 target_link_libraries(g_protonate ${GMX_EXTRA_LIBRARIES})
78 set_target_properties(g_protonate PROPERTIES OUTPUT_NAME "g_protonate${GMX_BINARY_SUFFIX}")
80 add_executable(g_luck g_luck.c)
81 target_link_libraries(g_luck ${GMX_EXTRA_LIBRARIES})
82 set_target_properties(g_luck PROPERTIES OUTPUT_NAME "g_luck${GMX_BINARY_SUFFIX}")
84 add_executable(gmxdump gmxdump.c)
85 target_link_libraries(gmxdump ${GMX_EXTRA_LIBRARIES})
86 set_target_properties(gmxdump PROPERTIES OUTPUT_NAME "gmxdump${GMX_BINARY_SUFFIX}")
88 add_executable(g_x2top g_x2top.c)
89 target_link_libraries(g_x2top ${GMX_EXTRA_LIBRARIES})
90 set_target_properties(g_x2top PROPERTIES OUTPUT_NAME "g_x2top${GMX_BINARY_SUFFIX}")
92 add_executable(gmxcheck gmxcheck.c)
93 target_link_libraries(gmxcheck ${GMX_EXTRA_LIBRARIES})
94 set_target_properties(gmxcheck PROPERTIES OUTPUT_NAME "gmxcheck${GMX_BINARY_SUFFIX}")
96 add_executable(mdrun ${MDRUN_SOURCES})
97 target_link_libraries(mdrun ${GMX_EXTRA_LIBRARIES} ${GMX_OPENMM_LIBRARIES})
98 set_target_properties(mdrun PROPERTIES OUTPUT_NAME "mdrun${GMX_BINARY_SUFFIX}")
100 # this is to circumvent the following MSVC error:
101 # warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs
102 # fatal error LNK1169: one or more multiply defined symbols found
103 if(GMX_OPENMM AND MSVC)
104 set_target_properties(mdrun PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT")
108 install(TARGETS gmxpreprocess DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries)
109 install(TARGETS mdrun DESTINATION ${BIN_INSTALL_DIR} COMPONENT mdrun)
120 RUNTIME DESTINATION ${BIN_INSTALL_DIR})
122 # Create the custom install-mdrun target
123 if (BUILD_SHARED_LIBS)
124 # If shared libraries are used, we need to install the libraries in
125 # addition to the mdrun binary.
126 add_custom_target(install-mdrun
127 COMMAND ${CMAKE_COMMAND} -DCOMPONENT=libraries
128 -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
129 COMMAND ${CMAKE_COMMAND} -DCOMPONENT=mdrun
130 -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
131 COMMENT "Installing mdrun")
132 else (BUILD_SHARED_LIBS)
133 add_custom_target(install-mdrun
134 COMMAND ${CMAKE_COMMAND} -DCOMPONENT=mdrun
135 -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
136 COMMENT "Installing mdrun")
137 endif (BUILD_SHARED_LIBS)
138 add_dependencies(install-mdrun mdrun)
142 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgmxpreprocess.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libgmxpreprocess.pc @ONLY)
143 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgmxpreprocess.pc
144 DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
145 RENAME "libgmxpreprocess${GMX_LIBS_SUFFIX}.pc"
146 COMPONENT development)