I was pulling in your project via CMake's FetchContent module (as opposed to just copying the include file into my source tree). I ran into some issues:
There was no INTERFACE target to link against, so I would have to sort out the include directory myself.
The compiler options and definitions were set globally, potentially conflicting with my own project settings.
To address these, I created an interface target that just defines the include directory and specifies the C++17 requirement. I also made another INTERFACE target that defines the compiler options and definitions that the tests and benchmarks can share. This should keep these settings private such that they don't affect any outer project (should someone include your project as a git submodule or using CMake's FetchContent or ExternalProject modules).
I also updated the CI scripts, although I'm not sure if I have made all the necessary changes.
I was pulling in your project via CMake's FetchContent module (as opposed to just copying the include file into my source tree). I ran into some issues:
To address these, I created an interface target that just defines the include directory and specifies the C++17 requirement. I also made another INTERFACE target that defines the compiler options and definitions that the tests and benchmarks can share. This should keep these settings private such that they don't affect any outer project (should someone include your project as a git submodule or using CMake's FetchContent or ExternalProject modules).
I also updated the CI scripts, although I'm not sure if I have made all the necessary changes.