On 7/27/17 1:24 AM, Edward Diener via Boost wrote:
In bjam I can make a "rule" which passes "usage requirements".
You do not have to make a rule since the builtin "project" rule already does this for you.
Right - but in anything more than a trivial case, I always had to make my own rule - then I have to start learning a whole bunch of stuff I never wanted to know. Then it sucks gobs of time. Then ... This is not so much a critcism of bjam - all systems - CMake included, have similar problems.
So CMake has no way built-in command to say "here are the usage requirements for every target in this directory" other than to have to write a "function" each time ? That seems a bit poor.
Well there is a long list of built in functions just as in bjam there is a long list of built in "rules". As I've said, the systems are actually more alike than different. This fact is obscured by the very irregular syntax and unorthogonal design used by all such systems. This is forced in turn by the fact that the "build" problem is itself ad-hoc with designers adding features and facilities and requirements willy-nilly and trying to patch all this up with a "build" system. IDEs sort of "fix" this problem - for one release then they change it for the next one. The whole thing is continuing agony. I can't fix this, and tool providers have failed to do so. I have my own theory for why this is so, but it's too off topic. Bottom line: a) All of these systems work well in trivial toy problems b) None of these systems "work" well in real world cases c) All of these systems can be made to "work" for each case d) All of the require investment of effort to realize c) above One thing about CMake which is unique and actually a genius idea. Rather than try to actually build the project, build the make, or ide files that build the project. This extra level of indirection has made CMake more useful to me overall than bjam - in spite of having it's own short comings. Among the things I've never understood about bjam/boost build is why no one ever was tempted to add the options to create ide/make projects. This would have added to bjam the one thing that CMake has but boost build doesn't. I'm guessing that doing this would be a lot of unrewarded work. Doesn't matter now.
No I don't go to CPPCon but if you can get programmers to create better documentation by your talk there I am all for it.
I'm sort of pessimistic: a) I don't think that most developers think there is a problem. That is that the documentation they create is just fine. b) If there is a problem, it's that the users aren't smart enough c) Hence, I think that most developers will read the abstract and conclude that the subject is trivial and doesn't hold any value for them. The funny thing is that this conflicts with users experience - even when the users are library developers themselves!!! But I'm a sucker for lost causes. Robert Ramey