The CMakeLists.txt is very poor. Just use find_package(Threads REQUIRED) and do target_link_libraries(... Threads::Threads), and use target_compile_features or target properties to set the C++ version. Right now the CMakeLists.txt requires the user to set that, at which point you might be better off with a Makefile...