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}")
43 set_target_properties(md PROPERTIES OUTPUT_NAME "md${GMX_LIBS_SUFFIX}" SOVERSION ${SOVERSION} INSTALL_NAME_DIR "${LIB_INSTALL_DIR}")
47 add_subdirectory(gmx_gpu_utils)
48 include_directories(./gmx_gpu_utils ${OpenMM_INCLUDE_DIR})
49 link_directories(${OpenMM_LIBRARY_DIR})
50 # only define if this is a local build not a release
51 # we assume that the auto-generated version is not used &&
52 # version string does not contain "-dev" => it's a release build
53 if(NOT USE_VERSION_H AND NOT PROJECT_VERSION MATCHES ".*-dev.*")
54 add_definitions( -DOPENMM_PLUGIN_DIR="${OpenMM_PLUGIN_DIR}" )
56 add_definitions( -DOPENMM_PLUGIN_DIR="" )
58 add_library(openmm_api_wrapper openmm_wrapper.cpp)
59 target_link_libraries(openmm_api_wrapper gmx gmx_gpu_utils ${OpenMM_LIBRARIES})
60 # remove_definitions( -DOPENMM_PLUGIN_DIR="${OpenMM_PLUGIN_DIR}" ) # TODO where should this go?!
61 set(GMX_OPENMM_LIBRARIES openmm_api_wrapper gmx_gpu_utils ${OpenMM_LIBRARIES})
62 install(TARGETS openmm_api_wrapper DESTINATION ${LIB_INSTALL_DIR})
66 add_library(fahcore ${MDRUN_SOURCES})
69 list(APPEND GMX_EXTRA_LIBRARIES gmxpreprocess md)
71 add_executable(grompp grompp.c)
72 target_link_libraries(grompp ${GMX_EXTRA_LIBRARIES})
73 set_target_properties(grompp PROPERTIES OUTPUT_NAME "grompp${GMX_BINARY_SUFFIX}")
75 add_executable(tpbconv tpbconv.c)
76 target_link_libraries(tpbconv ${GMX_EXTRA_LIBRARIES})
77 set_target_properties(tpbconv PROPERTIES OUTPUT_NAME "tpbconv${GMX_BINARY_SUFFIX}")
79 add_executable(pdb2gmx pdb2gmx.c)
80 target_link_libraries(pdb2gmx ${GMX_EXTRA_LIBRARIES})
81 set_target_properties(pdb2gmx PROPERTIES OUTPUT_NAME "pdb2gmx${GMX_BINARY_SUFFIX}")
83 add_executable(g_protonate g_protonate.c)
84 target_link_libraries(g_protonate ${GMX_EXTRA_LIBRARIES})
85 set_target_properties(g_protonate PROPERTIES OUTPUT_NAME "g_protonate${GMX_BINARY_SUFFIX}")
87 add_executable(g_luck g_luck.c)
88 target_link_libraries(g_luck ${GMX_EXTRA_LIBRARIES})
89 set_target_properties(g_luck PROPERTIES OUTPUT_NAME "g_luck${GMX_BINARY_SUFFIX}")
91 add_executable(gmxdump gmxdump.c)
92 target_link_libraries(gmxdump ${GMX_EXTRA_LIBRARIES})
93 set_target_properties(gmxdump PROPERTIES OUTPUT_NAME "gmxdump${GMX_BINARY_SUFFIX}")
95 add_executable(g_x2top g_x2top.c)
96 target_link_libraries(g_x2top ${GMX_EXTRA_LIBRARIES})
97 set_target_properties(g_x2top PROPERTIES OUTPUT_NAME "g_x2top${GMX_BINARY_SUFFIX}")
99 add_executable(gmxcheck gmxcheck.c)
100 target_link_libraries(gmxcheck ${GMX_EXTRA_LIBRARIES})
101 set_target_properties(gmxcheck PROPERTIES OUTPUT_NAME "gmxcheck${GMX_BINARY_SUFFIX}")
103 add_executable(mdrun ${MDRUN_SOURCES})
104 target_link_libraries(mdrun ${GMX_EXTRA_LIBRARIES} ${GMX_OPENMM_LIBRARIES})
105 # set binary name to mdrun-gpu
107 set(_mdrun_exec_name "mdrun-gpu")
109 set(_mdrun_exec_name "mdrun${GMX_BINARY_SUFFIX}")
111 set_target_properties(mdrun PROPERTIES OUTPUT_NAME "${_mdrun_exec_name}")
113 # this is to circumvent the following MSVC error:
114 # warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs
115 # fatal error LNK1169: one or more multiply defined symbols found
116 if(GMX_OPENMM AND MSVC)
117 set_target_properties(mdrun PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT")
131 gmxpreprocess DESTINATION ${LIB_INSTALL_DIR}
132 RUNTIME DESTINATION ${BIN_INSTALL_DIR})
135 get_target_property(MDRUN_PATH mdrun LOCATION)
136 add_custom_target(install-mdrun
137 COMMAND ${CMAKE_COMMAND} -E copy "${MDRUN_PATH}"
138 "${CMAKE_INSTALL_PREFIX}/bin/${_mdrun_exec_name}"
140 COMMENT "Installing mdrun")
144 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgmxpreprocess.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libgmxpreprocess.pc @ONLY)
145 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgmxpreprocess.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
146 RENAME "libgmxpreprocess${GMX_LIBS_SUFFIX}.pc")