So tl;dr; I strongly recommend placing all cmake complexity into runnable scripts which generate .cmake files to be include()d to avoid boilerplate, and keep the CMakeLists.txt etc completely free of any custom macros or functions.
Niall, could you please show how an idiomatic CMakeLists.txt file should, in your opinion, look like, for a run-of-the-mill Boost library? Pick some existing library to illustrate the point, such as for example System, or SmartPtr, or even the simplest one, Assert. Or any other, if you prefer.
Sure, though I'm talking really vanilla cmake here. But I guess it will narrow the discussion by demonstrating idiomatic cmake 3. Too much cmake 2 still kicks around. I really wish cmake would kill off cmake2-isms, as in, refuse to use them. According to Jens' https://meetingcpp.com/tl_files/blog/bda/boostdepbargraph.png, System looks the most tractable. I'll see if I can find some hours to do it up, I can guarantee it won't be today nor tomorrow. Maybe tomorrow night after the kids are asleep. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/