Yes, what I am saying is that, in general, for someone developing a header only library, it is unreasonable to also require (or strongly suggest) to use a test framework that needs compilation or binaries.
This is my experience:
I developed a a Boost-like library (an array library to be specific) that is header only.
I started using Catch2 when it is was header only and all was fine.
Then Catch2 changed in a way that needed compilation.
Given the complexity, and since this was going to be a Boost library anyway, I changed to Boost.Test, which also needed compilation.
This worked well for a while, because Boost.Test comes precompiled in many systems and it is as nice as Catch2.
However this became a burden when I needed to test the library against mildly exotic systems: 32-bit systems, apple-M systems and Windows (MSVC, clang, gcc).
In these cases, preparing Boost.Test for these systems required compilation of Boost.Test (or in the case of Windows, downloading large binaries) which was too heavy in the CI.
Boost.Test can be used in header-only mode, but it is not designed for that, so compilation times were extremely large because I have a few dozens of cpp files in the test.
At the end of the day, recently, I ended up using Boost.LightweightTest (part of Boost.Core), which doesn’t have too many features but it is very lightweight and it has a proportional complexity (it is not an overkill) with the library I am trying to test.
I am not suggesting to use B.LWT specifically, I am trying to communicate the value of having the option of a lightweight, header-only framework for a small, header-only library, which I guess is going to be a common case for Beman.
For large projects, I guess it is justified to use compiled test frameworks, because the upfront cost is amortized by the complexity and compilation times of the large projects. Also they have more features, like test for thrown exceptions and nicer diagnostics.
I don’t know what is the best way to proceed, complex libraries will benefit with feature-rich frameworks, like GTest, but I have the impression, from experience, that for the majority it will add unnecessary complexity.
At the same time, proposing (as a template) two different test frameworks, one header-only and one compiled can be beneficial in this sense, but also can be confusing.
I just learned from a comment in this thread that doctest is (or can be used as) header-only, so it could be what we are looking for. (just keep an eye on compilation test if one has many individual cpp tests)
Regarding your comment: “People using header-only libraries I know usually paste the headers in their repository somewhere.”. I think what I am saying is independent of this use pattern. In any case header-only library can still benefit from using CMake (I do it this way, but if someone still wants to use it by copy the headers to a directory that is fine with me).