# Comment line(s) preceding each configuration document the main
# intent behind that configuration, so that we can correctly judge
# whether to preserve that during maintenance decisions.
#
# Other configurations might coincidentally test such configurations
# (e.g. because they are the current default), but it is appropriate
# to intend to teach each feature (or a feature combination) exactly
# once, and for the intent to be reflected precisely in the
# configuration syntax, so that the configurations are stable even
# if the defaults change in future.

# Test on ARM v7
# Test ARM_NEON SIMD
gcc-4.8 simd=ARM_NEON release-with-assert

# Test on ARM v8
# Test ARM_NEON_ASIMD SIMD
gcc-5 simd=ARM_NEON_ASIMD release-with-assert

# Test the mdrun-only build
# Test newest gcc at time of release
# TODO In combination with gmx from another build, arrange to run regressiontests
gcc-7 mpi no-openmp fftpack mdrun-only

# Test MPMD PME with thread-MPI
# Test newest icc at time of release
# Test icc without SIMD in double precision in release mode
# TODO enable simd=avx_256 in this config, and change the above description once #2335 is resolved
icc-18 npme=1 nranks=2 no-openmp  double fftpack release simd=none

# Test CUDA build on a slave with no CUDA devices
gcc-4.9 gpu cuda-7.0 openmp release-with-assert

# Test non-default GMX_PREFER_STATIC_LIBS behavior
# TODO enable this
# msvc-2015 double no-threadmpi no-prefer-static-libs release-with-assert

# Test behaviour when dlopen is not present
# TODO enable this
# icc-18 no-dlopen no-threadmpi double mkl release-with-assert

# Test SSE4.1 SIMD
# Test single-rank GPU
# Test clang + OpenMP + CUDA
clang-4 simd=sse4.1 openmp nranks=1 gpu cuda-8.0 clang_cuda

# Test MPMD PME with library MPI
# Test clang + OpenMP
clang-5 openmp simd=avx_128_fma npme=1 nranks=2 mpi

# Test SSE2 SIMD
# Test CMAKE_BUILD_TYPE=Release
gcc-4.8 gpu npme=1 nranks=2 cuda-7.5 simd=sse2 release

# Test non-default use of mdrun -gpu_id
# Test GPU-sharing among 4 PP ranks
gcc-5 gpu nranks=4 gpu_id=1 cuda-8.0 release-with-assert

# Test oldest supported icc
# Test icc on Windows
# Test icc with SIMD in mixed precision in release mode
icc-16 msvc-2015 fftpack simd=avx2_256 release

# TODO
# Add SIMD + OpenMP + CUDA asan build
# Add OpenMP + CUDA + device sharing TSAN build
# Re-enable Phi build (FIXME: do we still care?)
# Test without TNG support
# Test without hwloc support
# Test with NVML support
# Test statically linked hwloc support (if/when it can work well)
# Test 3D DD (2D is partially covered in regressiontests)
# Test own-fftw build (from local copy of the file)
# Test mdrun -tunepme (e.g. with relaxed tolerances, for now)
# Consider testing of other CMake option paths
