It is very sad that cmake doesn't (AFAIK) support directory scoped target names.
It's unnecessary if you're using cmake right.
Conditional activation is not ideal either, because at some point someone probably wants to build all of boost and run all the tests together (e.g. release / integration tests).
In which case have cmake execute cmake as a custom build command to build the ctest database, and then run ctest separately.
Prefixing everything with boost_<lib>_<target> is probably the cleanest solution but annoying to type.
Not sure if there is a better solution
The cmake idiomatic solution is to export those cmake targets from each library which can be externally consumed, during which you can prefix them with a namespace. Stephen Kelly outlined all this on here many years ago. And he would certainly know. Search the boost-dev archives. Niall