cmake support for user-defined binary prefixes, custom mdrun-gpu target, and make...
authorSzilard Pall <pszilard@cbr.su.se>
Thu, 24 Jun 2010 19:23:22 +0000 (21:23 +0200)
committerSzilard Pall <pszilard@cbr.su.se>
Thu, 24 Jun 2010 19:23:22 +0000 (21:23 +0200)
CMakeLists.txt
src/gmxlib/CMakeLists.txt
src/kernel/CMakeLists.txt
src/ngmx/CMakeLists.txt
src/tools/CMakeLists.txt

index 1cf30686223ab149b52113aae1d520d5516a2586..e73260d731dc85ff3a587c19ee0117a31af68e1e 100644 (file)
@@ -46,6 +46,9 @@ option(GMX_X86_64_ASM "Add SSE assembly files for X86_64" OFF)
 option(USE_VERSION_H "Generate development version string/information" ON)
 option(GMX_DISABLE_GCC41_CHECK "Disable check for (buggy) gcc 4.1.x" OFF)
 
+set(GMX_BINARY_SUFFIX "" CACHE STRING "Suffix for GROMACS binaries.")
+
+
 #######################################################################
 # Check for options incompatible with OpenMM build                    #
 #######################################################################
@@ -63,7 +66,7 @@ if(GMX_OPENMM)
     if(GMX_SOFTWARE_INVSQRT)
         set(GMX_SOFTWARE_INVSQRT OFF)
     endif(GMX_SOFTWARE_INVSQRT)
-    if(NOT GMX_ACCELERATION MATCHES "none")    
+    if(NOT GMX_ACCELERATION MATCHES "none|None|NONE" OR NOT ${GMX_ACCELERATION} STREQUAL "")
         message(WARNING "The OpenMM build does not support other acceleration modes!")
         set(GMX_ACCELERATION "none")
     endif()
index 62d543b7a6173767b0b61e6296c34d30028a556e..bfc5c4665ccb1592e1cff1138e96d15473ac1772 100644 (file)
@@ -105,6 +105,7 @@ endif(GMX_FAHCORE)
 add_library(gmx ${GMXLIB_SOURCES} ${BLAS_SOURCES} ${LAPACK_SOURCES} ${GMX_MORESSE_SOURCES} ${GMX_SSE2_SOURCES} ${THREAD_MPI_SRC})
 target_link_libraries(gmx ${GMX_EXTRA_LIBRARIES}  ${THREAD_LIB})
 add_dependencies(gmx gmx_version) 
+set_target_properties(gmx PROPERTIES OUTPUT_NAME "gmx${GMX_BINARY_SUFFIX}")
 
 install(TARGETS gmx DESTINATION ${LIB_INSTALL_DIR})
 
index 1178921abc75cc674019a651b03f5aad8b53b5db..0ab4aec8168f866025d454c3e9220b67e3f64454 100644 (file)
@@ -39,6 +39,7 @@ set(MDRUN_SOURCES
 
 add_library(gmxpreprocess ${GMXPREPROCESS_SOURCES})
 target_link_libraries(gmxpreprocess md)
+set_target_properties(gmxpreprocess PROPERTIES OUTPUT_NAME "gmxpreprocess${GMX_BINARY_SUFFIX}")
 
 if(GMX_OPENMM) 
     add_subdirectory(gmx_gpu_utils)
@@ -55,7 +56,6 @@ if(GMX_OPENMM)
     add_library(openmm_api_wrapper openmm_wrapper.cpp)
 #    remove_definitions( -DOPENMM_PLUGIN_DIR="${OpenMM_PLUGIN_DIR}" )  # TODO where should this go?!
     set(GMX_OPENMM_LIBRARIES openmm_api_wrapper gmx_gpu_utils OpenMM)   
-    install(TARGETS openmm_api_wrapper DESTINATION ${LIB_INSTALL_DIR})   
 endif(GMX_OPENMM)
 
 if(GMX_FAHCORE)
@@ -66,30 +66,46 @@ list(APPEND GMX_EXTRA_LIBRARIES gmxpreprocess md)
 
 add_executable(grompp grompp.c)
 target_link_libraries(grompp ${GMX_EXTRA_LIBRARIES})
+set_target_properties(grompp PROPERTIES OUTPUT_NAME "grompp${GMX_BINARY_SUFFIX}")
 
 add_executable(tpbconv tpbconv.c)
 target_link_libraries(tpbconv ${GMX_EXTRA_LIBRARIES})
+set_target_properties(tpbconv PROPERTIES OUTPUT_NAME "tpbconv${GMX_BINARY_SUFFIX}")
 
 add_executable(pdb2gmx pdb2gmx.c)
 target_link_libraries(pdb2gmx ${GMX_EXTRA_LIBRARIES})
+set_target_properties(pdb2gmx PROPERTIES OUTPUT_NAME "pdb2gmx${GMX_BINARY_SUFFIX}")
 
 add_executable(g_protonate g_protonate.c)
 target_link_libraries(g_protonate ${GMX_EXTRA_LIBRARIES})
+set_target_properties(g_protonate PROPERTIES OUTPUT_NAME "g_protonate${GMX_BINARY_SUFFIX}")
 
 add_executable(g_luck g_luck.c)
 target_link_libraries(g_luck ${GMX_EXTRA_LIBRARIES})
+set_target_properties(g_luck PROPERTIES OUTPUT_NAME "g_luck${GMX_BINARY_SUFFIX}")
 
 add_executable(gmxdump gmxdump.c)
 target_link_libraries(gmxdump ${GMX_EXTRA_LIBRARIES})
+set_target_properties(gmxdump PROPERTIES OUTPUT_NAME "gmxdump${GMX_BINARY_SUFFIX}")
 
 add_executable(g_x2top g_x2top.c)
 target_link_libraries(g_x2top ${GMX_EXTRA_LIBRARIES})
+set_target_properties(g_x2top PROPERTIES OUTPUT_NAME "g_x2top${GMX_BINARY_SUFFIX}")
 
 add_executable(gmxcheck gmxcheck.c)
 target_link_libraries(gmxcheck ${GMX_EXTRA_LIBRARIES})
+set_target_properties(gmxcheck PROPERTIES OUTPUT_NAME "gmxcheck${GMX_BINARY_SUFFIX}")
 
 add_executable(mdrun ${MDRUN_SOURCES})
 target_link_libraries(mdrun ${GMX_EXTRA_LIBRARIES} ${GMX_OPENMM_LIBRARIES})
+# set binary name to mdrun-gpu
+if(GMX_OPENMM)
+    set(_mdrun_exec_name "mdrun-gpu")    
+else()
+    set(_mdrun_exec_name "mdrun${GMX_BINARY_SUFFIX}")
+endif()
+set_target_properties(mdrun PROPERTIES OUTPUT_NAME "${_mdrun_exec_name}")
+
 # this is to circumvent the following MSVC error: 
 # warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs
 # fatal error LNK1169: one or more multiply defined symbols found
@@ -97,6 +113,7 @@ if(GMX_OPENMM AND MSVC)
     set_target_properties(mdrun PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT")
 endif()
 
+
 install(TARGETS 
         grompp
         tpbconv
@@ -110,5 +127,13 @@ install(TARGETS
        gmxpreprocess DESTINATION ${LIB_INSTALL_DIR}
         RUNTIME DESTINATION ${BIN_INSTALL_DIR})
 
+
+get_target_property(MDRUN_PATH mdrun LOCATION)
+add_custom_target(install-mdrun
+        COMMAND ${CMAKE_COMMAND} -E copy "${MDRUN_PATH}" 
+            "${CMAKE_INSTALL_PREFIX}/bin/${_mdrun_exec_name}"
+        DEPENDS mdrun
+        COMMENT "Installing mdrun")
+
 endif(GMX_FAHCORE)
 
index 93164ca1c4c4be1de6d70441604f0a25026df210..a6fbb6d8df548c2b919af7fd76f5720c01fc6df0 100644 (file)
@@ -20,7 +20,8 @@ set(NGMX_PROGRAMS
 
 foreach(PROG ${NGMX_PROGRAMS})
         add_executable(${PROG} ${PROG}.c ${NGMX_COMMON_SOURCE})
-        target_link_libraries(${PROG} gmx ${GMX_EXTRA_LIBRARIES} ${X11_LIBRARIES})
+        target_link_libraries(${PROG} gmx ${GMX_EXTRA_LIBRARIES} ${X11_LIBRARIES})        
+        set_target_properties(${PROG} PROPERTIES OUTPUT_NAME "${PROG}${GMX_BINARY_SUFFIX}")
 endforeach(PROG) 
 
 
index 5fc666c784f790738fc62398bccd481cdc12a4aa..fbe24534bad5f64054da4d8be66ac19544e3f0e4 100644 (file)
@@ -31,7 +31,7 @@ add_library(gmxana
             addconf.c       calcpot.c       edittop.c       gmx_bar.c)
 
 target_link_libraries(gmxana md ${GMX_EXTRA_LIBRARIES})
-
+set_target_properties(gmxana PROPERTIES OUTPUT_NAME "gmxana${GMX_BINARY_SUFFIX}")
 
 # List of programs with single corresponding .c source file,
 # used to create build rules automatically.
@@ -56,6 +56,7 @@ set(GMX_TOOLS_PROGRAMS
 foreach(TOOL ${GMX_TOOLS_PROGRAMS})
     add_executable(${TOOL} ${TOOL}.c)
     target_link_libraries(${TOOL} gmxana)
+    set_target_properties(${TOOL} PROPERTIES OUTPUT_NAME "${TOOL}${GMX_BINARY_SUFFIX}")
 endforeach(TOOL ${GMX_TOOLS_PROGRAMS})