As far as I understand, the problem with `make test` is that it doesn't build the tests. To build them, one does `make all test`, which (a) requires tests to be built as part of the "all" target - which we don't want - and (b) doesn't work with -jN. And `make all && ctest` has the problem of test executable build errors not being part of the ctest output.
To clarify, this understanding of mine comes from https://stackoverflow.com/questions/733475/cmake-ctest-make-test-doesnt-buil...
So the custom "check" target that just invokes `ctest` and depends on all test executables is a workaround for the above.
https://gitlab.kitware.com/cmake/community/wikis/doc/tutorials/EmulateMakeCh... What I still don't get however is that, by the look of it, this `make check` emulation will fail when one of the test executables fails to compile, thereby aborting the whole test procedure, which is not what we want.