|
|
|
|
|
by pnako
2352 days ago
|
|
CMake is the defacto standard for a reason. It's a great tool. However, it definitely has a steep learning curve. It took me many hours to get it, because the documentation is, I would not say 'bad' (it's actually really good) but it's really a reference more than a tutorial. So you'll have to hunt for good tutorials on the web, and just like C++ there is an old way to write CMake and a modern way :) I can't recommend a particular tutorial but make sure they talk about 'modern CMake'. I used SCons a long time ago. It worked but it was extremely slow. Ninja is not designed to be written by hand, it's a back-end to be used by CMake, etc. Yes, sanitizers are now included in GCC and Clang (it's the same code base, initially developed by Google). Support varies by platform but on Linux/amd64 all of them are available. UBSan, LSan are easy to use and have little impact on performance. ASan and TSan are more expensive but they work well; not unlike Valgrind but still faster. MSan is a pain to configure because all the code must be instrumented (that includes dynamic libraries you use). Not that easy in practice. |
|