CMake Error at /usr/local/share/cmake-3.30/Modules/FetchContent.cmake:1951 (message):

GROMACS version: 2024.3
GROMACS modification: No
Here post your question

I want to install the MPI and GPU version of gromacs 2024.3 on Ubuntu 22.04 system using the command: C=mpicc CXX=mpicxx cmake /home/dell/Downloads/gromacs/gromacs-2024.3 -DGMX_OPENMP=ON -DGMX_GPU=CUDA -DGMX_MPI=ON -DGMX_BUILD_OWN_FFTW=ON -DGMX_PREFER_STATIC_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGMX_BUILD_UNITTESTS=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs2024.3
The following error was found.
root@dell-OptiPlex-Tower-Plus-7010:/home/dell/Downloads/gromacs/build# C=mpicc CXX=mpicxx cmake /home/dell/Downloads/gromacs/gromacs-2024.3 -DGMX_OPENMP=ON -DGMX_GPU=CUDA -DGMX_MPI=ON -DGMX_BUILD_OWN_FFTW=ON -DGMX_PREFER_STATIC_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGMX_BUILD_UNITTESTS=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs2024.3
– The C compiler identification is GNU 11.4.0
– The CXX compiler identification is GNU 11.4.0
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working C compiler: /usr/bin/cc - skipped
– Detecting C compile features
– Detecting C compile features - done
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working CXX compiler: /usr/local/bin/mpicxx - skipped
– Detecting CXX compile features
– Detecting CXX compile features - done
– Found Python3: /usr/bin/python3.10 (found suitable version “3.10.12”, minimum required is “3.7”) found components: Interpreter Development Development.Module Development.Embed
– Selected GPU FFT library - cuFFT
– Found OpenMP_C: -fopenmp (found version “4.5”)
– Found OpenMP_CXX: -fopenmp (found version “4.5”)
– Found OpenMP: TRUE (found version “4.5”)
– Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
– Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
– Performing Test CFLAGS_EXCESS_PREC
– Performing Test CFLAGS_EXCESS_PREC - Success
– Performing Test CFLAGS_COPT
– Performing Test CFLAGS_COPT - Success
– Performing Test CFLAGS_NOINLINE
– Performing Test CFLAGS_NOINLINE - Success
– Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
– Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
– Performing Test CXXFLAGS_EXCESS_PREC
– Performing Test CXXFLAGS_EXCESS_PREC - Success
– Performing Test CXXFLAGS_COPT
– Performing Test CXXFLAGS_COPT - Success
– Performing Test CXXFLAGS_NOINLINE
– Performing Test CXXFLAGS_NOINLINE - Success
– Looking for include file unistd.h
– Looking for include file unistd.h - found
– Looking for include file pwd.h
– Looking for include file pwd.h - found
– Looking for include file dirent.h
– Looking for include file dirent.h - found
– Looking for include file time.h
– Looking for include file time.h - found
– Looking for include file sys/time.h
– Looking for include file sys/time.h - found
– Looking for include file io.h
– Looking for include file io.h - not found
– Looking for include file sched.h
– Looking for include file sched.h - found
– Looking for include file xmmintrin.h
– Looking for include file xmmintrin.h - found
– Looking for gettimeofday
– Looking for gettimeofday - found
– Looking for sysconf
– Looking for sysconf - found
– Looking for nice
– Looking for nice - found
– Looking for fsync
– Looking for fsync - found
– Looking for _fileno
– Looking for _fileno - not found
– Looking for fileno
– Looking for fileno - found
– Looking for _commit
– Looking for _commit - not found
– Looking for sigaction
– Looking for sigaction - found
– Performing Test HAVE_BUILTIN_CLZ
– Performing Test HAVE_BUILTIN_CLZ - Success
– Performing Test HAVE_BUILTIN_CLZLL
– Performing Test HAVE_BUILTIN_CLZLL - Success
– Looking for clock_gettime in rt
– Looking for clock_gettime in rt - found
– Looking for feenableexcept in m
– Looking for feenableexcept in m - found
– Looking for fedisableexcept in m
– Looking for fedisableexcept in m - found
– Checking for sched.h GNU affinity API
– Performing Test sched_affinity_compile
– Performing Test sched_affinity_compile - Success
– Looking for include file mm_malloc.h
– Looking for include file mm_malloc.h - found
– Looking for include file malloc.h
– Looking for include file malloc.h - found
– Checking for _mm_malloc()
– Checking for _mm_malloc() - supported
– Looking for posix_memalign
– Looking for posix_memalign - found
– Looking for memalign
– Looking for memalign - not found
– MPI is not compatible with thread-MPI. Disabling thread-MPI.
– Found MPI_CXX: /usr/local/bin/mpicxx (found version “3.1”)
– Found MPI: TRUE (found version “3.1”) found components: CXX
– GROMACS library will use OpenMPI 3.1.6
Searching for static libraries requested, so the GROMACS libraries will also be static (BUILD_SHARED_LIBS=OFF)
– Using default binary suffix: "mpi"
– Using default library suffix: "mpi"
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
– Found Threads: TRUE
– Looking for C++ include pthread.h
– Looking for C++ include pthread.h - found
– Performing Test TEST_ATOMICS
– Performing Test TEST_ATOMICS - Success
– Atomic operations found
– Performing Test PTHREAD_SETAFFINITY
– Performing Test PTHREAD_SETAFFINITY - Success
– Detecting best SIMD instructions for this CPU
– Checking for GCC x86 inline asm
– Checking for GCC x86 inline asm - supported
– Detected build CPU features - aes apic avx avx2 clfsh cmov cx8 cx16 f16c fma htt intel lahf mmx msr nonstop_tsc pcid pclmuldq pdcm pdpe1gb popcnt pse rdrnd rdtscp sha sse2 sse3 sse4.1 sse4.2 ssse3 tdt x2apic
– Detected build CPU brand - 13th Gen Intel(R) Core™ i9-13900K
– Detected best SIMD instructions for this CPU - AVX2_256
– Performing Test C_mavx2_mfma_FLAG_ACCEPTED
– Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Success
– Performing Test C_mavx2_mfma_COMPILE_WORKS
– Performing Test C_mavx2_mfma_COMPILE_WORKS - Success
– Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
– Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Success
– Performing Test CXX_mavx2_mfma_COMPILE_WORKS
– Performing Test CXX_mavx2_mfma_COMPILE_WORKS - Success
– Enabling 256-bit AVX2 SIMD instructions using CXX flags: -mavx2 -mfma
– Detecting flags to enable runtime detection of AVX-512 units on newer CPUs
– Performing Test C_march_skylake_avx512_FLAG_ACCEPTED
– Performing Test C_march_skylake_avx512_FLAG_ACCEPTED - Success
– Performing Test C_march_skylake_avx512_COMPILE_WORKS
– Performing Test C_march_skylake_avx512_COMPILE_WORKS - Success
– Performing Test CXX_march_skylake_avx512_FLAG_ACCEPTED
– Performing Test CXX_march_skylake_avx512_FLAG_ACCEPTED - Success
– Performing Test CXX_march_skylake_avx512_COMPILE_WORKS
– Performing Test CXX_march_skylake_avx512_COMPILE_WORKS - Success
– Detecting flags to enable runtime detection of AVX-512 units on newer CPUs - -march=skylake-avx512
– Performing Test Wno_unused_command_line_argument_FLAG_ACCEPTED
– Performing Test Wno_unused_command_line_argument_FLAG_ACCEPTED - Success
– Performing Test callconv___vectorcall
– Performing Test callconv___vectorcall - Failed
– Performing Test callconv___regcall
– Performing Test callconv___regcall - Failed
– Performing Test callconv
– Performing Test callconv - Success
– Found CUDA: /usr/local/cuda-12.1 (found suitable version “12.1”, minimum required is “12.1”)
– Adding work-around for issue compiling CUDA code with glibc 2.23 string.h
– Check for working NVCC/C++ compiler combination with nvcc ‘/usr/local/cuda-12.1/bin/nvcc’
– Check for working NVCC/C++ compiler combination - works
– Checking if nvcc accepts flags --generate-code=arch=compute_35,code=sm_35
– Checking if nvcc accepts flags --generate-code=arch=compute_35,code=sm_35 - No
– Checking if nvcc accepts flags --generate-code=arch=compute_37,code=sm_37
– Checking if nvcc accepts flags --generate-code=arch=compute_37,code=sm_37 - No
– Checking if nvcc accepts flags --generate-code=arch=compute_50,code=sm_50
– Checking if nvcc accepts flags --generate-code=arch=compute_50,code=sm_50 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_52,code=sm_52
– Checking if nvcc accepts flags --generate-code=arch=compute_52,code=sm_52 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_60,code=sm_60
– Checking if nvcc accepts flags --generate-code=arch=compute_60,code=sm_60 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_61,code=sm_61
– Checking if nvcc accepts flags --generate-code=arch=compute_61,code=sm_61 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_70,code=sm_70
– Checking if nvcc accepts flags --generate-code=arch=compute_70,code=sm_70 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_75,code=sm_75
– Checking if nvcc accepts flags --generate-code=arch=compute_75,code=sm_75 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_80,code=sm_80
– Checking if nvcc accepts flags --generate-code=arch=compute_80,code=sm_80 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_86,code=sm_86
– Checking if nvcc accepts flags --generate-code=arch=compute_86,code=sm_86 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_89,code=sm_89
– Checking if nvcc accepts flags --generate-code=arch=compute_89,code=sm_89 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_90,code=sm_90
– Checking if nvcc accepts flags --generate-code=arch=compute_90,code=sm_90 - Success
– Checking if nvcc accepts flags -Wno-deprecated-gpu-targets
– Checking if nvcc accepts flags -Wno-deprecated-gpu-targets - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_53,code=sm_53
– Checking if nvcc accepts flags --generate-code=arch=compute_53,code=sm_53 - Success
– Checking if nvcc accepts flags --generate-code=arch=compute_80,code=sm_80
– Checking if nvcc accepts flags --generate-code=arch=compute_80,code=sm_80 - Success
– Checking if nvcc accepts flags -use_fast_math
– Checking if nvcc accepts flags -use_fast_math - Success
– Checking if nvcc accepts flags -Xptxas;-warn-double-usage
– Checking if nvcc accepts flags -Xptxas;-warn-double-usage - Success
– Checking if nvcc accepts flags -Xptxas;-Werror
– Checking if nvcc accepts flags -Xptxas;-Werror - Success
– The CUDA compiler identification is NVIDIA 12.1.105
– Detecting CUDA compiler ABI info
– Detecting CUDA compiler ABI info - done
– Check for working CUDA compiler: /usr/local/cuda-12.1/bin/nvcc - skipped
– Detecting CUDA compile features
– Detecting CUDA compile features - done
– Checking for mpi-ext.h header
– Performing Test HAVE_MPI_EXT
– Performing Test HAVE_MPI_EXT - Success
– Performing Test MPI_SUPPORTS_CUDA_AWARE_DETECTION
– Performing Test MPI_SUPPORTS_CUDA_AWARE_DETECTION - Success
– Checking for MPI_SUPPORTS_CUDA_AWARE_DETECTION - yes
– Detected build CPU vendor - Intel
– Detected build CPU family - 6
– Detected build CPU model - 183
– Detected build CPU stepping - 1
– Checking for 64-bit off_t
– Checking for 64-bit off_t - present
– Checking for fseeko/ftello
– Checking for fseeko/ftello - present
– Checking for SIGUSR1
– Checking for SIGUSR1 - found
– Checking for pipe support
– Checking for system XDR support
– Checking for system XDR support - not present
– The GROMACS-managed build of FFTW 3 will configure with the following optimizations: --enable-sse2;–enable-avx;–enable-avx2
– Using external FFT library - FFTW3 build managed by GROMACS
– Looking for sgemm

– Looking for sgemm
- not found
– Looking for sgemm

– Looking for sgemm
- found
– Found BLAS: /usr/lib/x86_64-linux-gnu/libblas.a
– Looking for cheev

– Looking for cheev
- not found
– Looking for cheev

– Looking for cheev
- not found
– Could NOT find LAPACK (missing: LAPACK_LIBRARIES)
– Using GROMACS built-in LAPACK.
– Could not convert sample image, ImageMagick convert can not be used. A possible way to fix it can be found here: Fixing Imagick's “not authorized” exception | Alex Vanderbist
– Found Python: /usr/bin/python3.10 (found version “3.10.12”) found components: Interpreter
– Performing Test HAVE_NO_DEPRECATED_COPY
– Performing Test HAVE_NO_DEPRECATED_COPY - Success
– Performing Test CXXFLAGS_WARN_NOUNDEF
– Performing Test CXXFLAGS_WARN_NOUNDEF - Success
– Performing Test HAS_WARNING_EVERYTHING
– Performing Test HAS_WARNING_EVERYTHING - Failed
CMake Error at /usr/local/share/cmake-3.30/Modules/FetchContent.cmake:1951 (message):
Calling FetchContent_Populate(muparser) is deprecated, call
FetchContent_MakeAvailable(muparser) instead. Policy CMP0169 can be set to
OLD to allow FetchContent_Populate(muparser) to be called directly for now,
but the ability to call it with declared details will be removed completely
in a future version.
Call Stack (most recent call first):
cmake/gmxManageMuparser.cmake:59 (FetchContent_Populate)
src/gromacs/CMakeLists.txt:74 (gmx_manage_muparser)

– Configuring incomplete, errors occurred!

Hi!

Try adding cmake_policy(SET CMP0169 OLD) to the top of /home/dell/Downloads/gromacs/gromacs-2024.3/CMakeLists.txt file (next to the existing cmake_policy lines.

Note: There is something unusual with your build environment: this message should be a warning, not an error. But, hopefully, explicitly asking for the old behavior will fix things.

Ok. Thank you very much for your kind advice.

This should be fixed in GROMACS 2024.4, but you can try the branch from Avoid warnings with deprecated CMake FetchContent calls (!4632) · Merge requests · GROMACS / GROMACS · GitLab in the meantime!