
On Sep 21, 2010, at 4:41 PM, Artyom wrote:
On Sep 21, 2010, at 2:06 PM, Vladimir Prus wrote:
One mode is where you have a feature test as a .cpp file which tries to use "important" functions from a library, and then declare a Boost.Build metatarget that builds that .cpp and links to a library.
What is important part. I noticed that in many cases when you try to do "better" checks and include part of code and test full compilability you find yourself with failed test for 101 other reasons.
So, unless you really have very strict specification of what you need, just test of library can be linked or the header can be included. Or even just exists.
I can't even begin to describe how much I *hate* existence checks. They are the most common reason why *every* autoconf-based package I've ever needed to cross-compile has failed to correctly do so out of the box. I know that autoconf support for cross-compilation has improved significantly, but the people writing the configure.in's still have to use that support properly. My impression (from reading documentation, I've not actually used cmake yet) is that the cmake approach avoids at least some of that trap by making it a build error to have such a question be asked and not find an explicit answer in the cross-target configuration. Please, whatever solution is ultimately adopted, try to keep cross-compilation in mind during the decision process.