# 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 the mdrun-only build
# TODO In combination with gmx from another build, arrange to run regressiontests
clang-3.7 double mpi no-openmp fftpack mdrun-only

# Test MPMD PME with thread-MPI
# TODO Add double to this configuration if/when we stablize the essentialdynamics tests
gcc-5 npme=1 nranks=2 no-openmp fftpack simd=avx_128_fma release

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

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

# Test SSE4.1 SIMD
# Test single-rank GPU
gcc-4.8 nranks=1 gpu cuda-7.5 simd=sse4.1

# Test MPMD PME with library MPI
# disable OpenMP because clang 3.4 does not support it anyway and it triggers a warning
clang-3.4 npme=1 nranks=2 mpi no-openmp

# Test non-default use of mdrun -gpu_id
# Test SSE2 SIMD
gcc-4.8 gpu npme=1 nranks=2 gpu_id=2 cuda-7.5 simd=sse2 release

# Test oldest supported icc on Windows
# Test newest supported icc on Windows
# TODO When merging to release-2018, reconsider which build
# options might best remain in pre-submit on the msvc config,
# and which are OK in post-submit
icc-16.0 msvc-2015 fftpack

# TODO
# Re-enable Phi build
# 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
# Consider adding our ARM dev boards as slaves to improve cross-platform portability testing.
