[CMake] Submitting patches to rely on external libraries for certain platforms

Matt Rogers mattr at kde.org
Wed Aug 9 20:54:04 EDT 2006


On Wednesday 09 August 2006 19:26, Brandon J. Van Every wrote:
> Matt Rogers wrote:
> > Hi,
> >
> > Would the CMake developers be interested in patches that allows people to
> > use their already installed libraries such as curl, expat, libtar, etc.
> > on certain platforms and fallback to the in-source libraries if they're
> > not installed?
>

You misunderstand. *sigh* Apparently, I suck at explaining myself today.. :(

> Anyone can already write this kind of code using FindXXX and FIND_*
> commands and then some conditionals.  It is not difficult CMake script
> code to write.  You seem to be saying it should / could be automagical.
> I'm not convinced that's beneficial, however.  When people include the
> entire source of a library in their own build tree, it's because they
> want control over how the thing is built.  For instance, the source code
> may have diverged from standard distributions, may be older, may be
> frozen, may be built with CMake instead of Autoconf and be integrated
> with CTest, etc.  When people don't want that level of control, they
> implement FindXXX and FIND_* commands.  I doubt you can provide patches
> that make FindXXX and FIND_* any better than they currently are, so this
> part of the problem never goes away.  It's code that people have to write.
>

No, I'm not saying that it should be automagical. I'm saying that when 
building CMake, I want to be allowed to use my own versions of curl, expat, 
libtar, etc. instead of the ones that are shipped as part of the CMake source 
code. This means that I would write the necessary Find*.cmake files and use 
the necessary commands in the build to do this. However, before I waste any 
time on another endeavour that will be rejected by the CMake developers, I 
wanted to ask if this would be something worthwhile to them.

> > Initially, I think this would be great for unix/linux based platforms
> > that generally come with these libraries already installed or very easily
> > available and then can be extended out into the windows world later (when
> > I have information on how to actually do it?
>
> Unix culture is that everyone uses preinstalled libraries.  That is not
> Windows culture.  Windows people expect everyone else to do it wrong,
> there is no central repository of libraries, DLL Hell is abundant, and
> cautious programmers keep and install all their own versions of stuff.
>

I don't know how bootstrapping CMake works on windows, which is which i 
initially proposed that it be unix/linux only. If we can make it work on 
windows, great, if not, well, then, it'll work for at least one, if not two, 
of the three supported platforms.
--
Matt


More information about the CMake mailing list