From: Szilard Pall Date: Tue, 5 Oct 2010 13:25:36 +0000 (+0200) Subject: improved option compatibility checking with OpenMM X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=339243c9e710a6302a8e4dacc76a8ced116625d9;p=alexxy%2Fgromacs.git improved option compatibility checking with OpenMM (cherry picked from commit eba3b450aba044c55aae5e49d5068d7fc05adbbb) --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 52f1138f01..ad899c9674 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,10 @@ option(USE_VERSION_H "Generate development version string/information" ON) mark_as_advanced(USE_VERSION_H) option(GMX_DEFAULT_SUFFIX "Use default suffixes for GROMACS binaries and libs (_d for double, _mpi for MPI; rerun cmake after changing to see relevant options)" ON) + +######################################################################## +# Set up binary and library suffixing +######################################################################## set(GMX_BINARY_SUFFIX "" CACHE STRING "Suffix for GROMACS binaries (default: _d for double, _mpi for MPI, _mpi_d for MPI and double).") set(GMX_LIBS_SUFFIX "" CACHE STRING "Suffix for GROMACS libs (default: _d for double, _mpi for MPI, _mpi_d for MPI and double).") @@ -137,7 +141,7 @@ endif(GMX_DEFAULT_SUFFIX) set(PKG_CFLAGS "") if(GMX_DOUBLE) - set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_DOUBLE") + set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_DOUBLE") endif(GMX_DOUBLE) if(GMX_SOFTWARE_INVSQRT) set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_SOFTWARE_INVSQRT") @@ -189,30 +193,36 @@ endif(GMX_MPI) if(GMX_OPENMM) cmake_minimum_required(VERSION 2.6.4) # we'll use the built-in fft to avoid unnecessary dependencies - message(STATUS "No external FFT libraries needed for the OpenMM build, using fftpack!") - set (GMX_FFT_LIBRARY "fftpack" CACHE STRING - "No external FFT libraries needed for the OpenMM build, using fftpack!" FORCE) + string(TOUPPER ${GMX_FFT_LIBRARY} GMX_FFT_LIBRARY) + if(NOT ${GMX_FFT_LIBRARY} STREQUAL "FFTPACK") + message(STATUS "No external FFT libraries needed for the OpenMM build, switching to fftpack!") + set(GMX_FFT_LIBRARY "fftpack" CACHE STRING + "No external FFT libraries needed for the OpenMM build, switching to fftpack!" FORCE) + endif() if(GMX_MPI) message(FATAL_ERROR "The OpenMM build is not compatible with MPI!") endif(GMX_MPI) if(GMX_THREADS) - message(STATUS "Threads not compatible with OpenMM build, disabled!") + message(STATUS "Threads are not compatible with OpenMM build, disabled!") set(GMX_THREADS OFF CACHE BOOL - "Threads not compatible with OpenMM build, disabled!" FORCE) + "Threads are not compatible with OpenMM build, disabled!" FORCE) endif(GMX_THREADS) if(GMX_SOFTWARE_INVSQRT) - set(GMX_SOFTWARE_INVSQRT OFF FORCE) + set(GMX_SOFTWARE_INVSQRT OFF CACHE STRING + "The OpenMM build does not need GROMACS software 1/sqrt!" FORCE) endif(GMX_SOFTWARE_INVSQRT) - if(NOT GMX_ACCELERATION MATCHES "^(none|None|NONE)") - message(WARNING "CPU-based acceleration turned off, OpenMM does not support/need any!") - unset(GMX_ACCELERATION CACHE) + string(TOUPPER ${GMX_ACCELERATION} GMX_ACCELERATION) + if(NOT GMX_ACCELERATION STREQUAL "NONE") + message(STATUS "Switching off CPU-based acceleration, the OpenMM build does not support/need any!") set(GMX_ACCELERATION "none" CACHE STRING - "CPU-based acceleration turned off, OpenMM does not support/need any!" FORCE) + "Switching off CPU-based acceleration, the OpenMM build does not support/need any!" FORCE) endif() if(GMX_FAHCORE) message(FATAL_ERROR "The OpenMM build does not support FAH build!") endif(GMX_FAHCORE) - set(GMX_DOUBLE OFF FORCE ) + if(GMX_DOUBLE) + message(FATAL_ERROR "The OpenMM-build does not support double precision calculations!") + endif() # mark as advanced the unused variables mark_as_advanced(FORCE GMX_ACCELERATION GMX_MPI GMX_FFT_LIBRARY GMX_QMMM_PROGRAM GMX_THREADS GMX_DOUBLE)