Simplify compiling GPU code for tests
commit8e96ac776d36b5d11447f7787583426ec8cbb7bf
authorMark Abraham <mark.j.abraham@gmail.com>
Wed, 4 Mar 2020 17:44:34 +0000 (4 18:44 +0100)
committerPaul Bauer <paul.bauer.q@gmail.com>
Fri, 6 Mar 2020 18:16:46 +0000 (6 19:16 +0100)
tree2496637dcf85cfa71f6f73aa2609b7008774ff72
parente3343ecf2d7f3c9db0a5ba070109021bb6859a7b
Simplify compiling GPU code for tests

Documented and extended gmx_add_gtest_executable to let us annotate
which source files may need special treatment for GPU
compilation. Those details are all now hidden in the function rather
than complicating the CMakeLists.txt files in multiple places. There's
a lot of incidental lines changed to make sure people can use the
rearrangement well, but the benefit is illustrated in the following
files:

gpu_utils/test/CMakeLists.txt
mdlib/test/CMakeLists.txt

Accordingly, various test code no longer compiles into
libgromacs. Removed some completely unnecessary compilation of CUDA
code for tests.

Compiling test .cu files that also need MPI libraries is not currently
supported. Thus, removed am unnecessary header dependency in
mdlib/tests on MPI libraries that was not needed (and awkward for nvcc
compilation).

Found and fixed a bug where
src/gromacs/gpu_utils/tests/typecasts_runner.cpp wasn't compiled when
it was intended to be.

Change-Id: I9ba624094092a9951fa63f3264c9d99d7ba0cbd1
47 files changed:
src/api/cpp/tests/CMakeLists.txt
src/api/cpp/workflow/tests/CMakeLists.txt
src/gromacs/analysisdata/tests/CMakeLists.txt
src/gromacs/applied_forces/tests/CMakeLists.txt
src/gromacs/awh/tests/CMakeLists.txt
src/gromacs/commandline/tests/CMakeLists.txt
src/gromacs/compat/tests/CMakeLists.txt
src/gromacs/coordinateio/tests/CMakeLists.txt
src/gromacs/correlationfunctions/tests/CMakeLists.txt
src/gromacs/domdec/tests/CMakeLists.txt
src/gromacs/energyanalysis/tests/CMakeLists.txt
src/gromacs/ewald/tests/CMakeLists.txt
src/gromacs/fft/tests/CMakeLists.txt
src/gromacs/fileio/tests/CMakeLists.txt
src/gromacs/gmxana/tests/CMakeLists.txt
src/gromacs/gmxlib/tests/CMakeLists.txt
src/gromacs/gmxpreprocess/tests/CMakeLists.txt
src/gromacs/gpu_utils/tests/CMakeLists.txt [copied from src/gromacs/compat/tests/CMakeLists.txt with 67% similarity]
src/gromacs/gpu_utils/tests/typecasts_runner.cpp
src/gromacs/hardware/tests/CMakeLists.txt
src/gromacs/listed_forces/tests/CMakeLists.txt
src/gromacs/math/tests/CMakeLists.txt
src/gromacs/mdlib/tests/CMakeLists.txt [copied from src/gromacs/awh/tests/CMakeLists.txt with 70% similarity]
src/gromacs/mdlib/tests/constrtestdata.cpp
src/gromacs/mdlib/tests/constrtestdata.h
src/gromacs/mdlib/tests/constrtestrunners.cpp
src/gromacs/mdlib/tests/leapfrogtestrunners.cu
src/gromacs/mdrunutility/tests/CMakeLists.txt
src/gromacs/mdspan/tests/CMakeLists.txt
src/gromacs/onlinehelp/tests/CMakeLists.txt
src/gromacs/options/tests/CMakeLists.txt
src/gromacs/pbcutil/tests/CMakeLists.txt
src/gromacs/pulling/tests/CMakeLists.txt
src/gromacs/random/tests/CMakeLists.txt
src/gromacs/restraint/tests/CMakeLists.txt
src/gromacs/selection/tests/CMakeLists.txt
src/gromacs/simd/tests/CMakeLists.txt [copied from src/gromacs/awh/tests/CMakeLists.txt with 73% similarity]
src/gromacs/tables/tests/CMakeLists.txt
src/gromacs/taskassignment/tests/CMakeLists.txt
src/gromacs/tools/tests/CMakeLists.txt
src/gromacs/topology/tests/CMakeLists.txt
src/gromacs/trajectoryanalysis/tests/CMakeLists.txt
src/gromacs/utility/CMakeLists.txt
src/gromacs/utility/tests/CMakeLists.txt [copied from src/gromacs/compat/tests/CMakeLists.txt with 68% similarity]
src/programs/mdrun/tests/CMakeLists.txt
src/testutils/TestMacros.cmake
src/testutils/tests/CMakeLists.txt