On Fri 2008-11-07 11:28, Andreas Pakulat wrote: > If you run into such problems then open bugreports. Many of the > FindXXX.cmake modules have been contributed and most people out there don't > have a cluster of different types of machines with different installations > of the software at hand. Its quite easy to overlook something and "get it > wrong", so if you find errors you need to report them and work with the > CMake people on fixing them - or fix them locally in your installation.
Thanks Andreas. I'm bringing it up here because it isn't so much specific to particular modules as it is errors in almost all modules. This started with me learning enough CMake to write my own modules by looking at some of the modules distributed with CMake. Confused that I couldn't find the logic dealing with certain issues, I made some test cases and found that every module I found would fail in predictable, obvious, and unacceptable ways. Moreover making these modules correct requires some primitives so that even the simplest FindXXX module doesn't have to be 100 lines. I've only been using CMake for a few weeks, but I offered some suggestions on possible primitives here http://www.cmake.org/pipermail/cmake/2008-November/025112.html I had hoped that by raising the issue of widespread brokenness, there would be some response from CMake developers about ways to fix it. It seems like I'm still at the stage of convincing people that there is a real problem. This is why I'm concerned that `cross-platform' may actually mean `Ubuntu/Windows/Mac' in practice. BTW, Kitware has a build farm and I had assumed that they would have some non-vanilla machines so that at least the modules distributed with CMake would be reasonably robust. To have the build system find these bugs, I suggest two configurations which I assume are not present. First, a machine with only static libs (almost every non-standalone package is broken in this environment). Second, a machine where packages are installed in PREFIX=/usr and PREFIX=/opt/package-name, where the user requests the version in /opt/package-name. Lots of modules provide no reliable way to pick the version in /opt/package-name short of manually providing full path to every library in the package (including recursive dependencies). Jed
pgpVkPP1zv6T9.pgp
Description: PGP signature
_______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake