[CMake] Factoring out "third-party-dependent" commands and modules.

Bill Hoffman bill.hoffman at kitware.com
Fri Jul 24 09:36:33 EDT 2009


Alpha Omega wrote:
> Are there any plans to factor language and framework dependent
> commands out of cmake into plugins ? And modules into separate
> packages/repository ? To me, the fact that cmake source is infested
> with toolkit, ide, language names looks quite ugly. What will happen
> if cmake gains 90% popularity ? 60mb source archive with, and 10mb
> static executable, with stuff for every  language/framework etc ?
> 
> The distinction between kitware supported modules, and third-party
> ones is not quite pleasing either. That could lead to several versions
> of the same thing floating around (in third-party category), causing
> confusion for users . User doesn't know where to go for
> community-recognized module. I think repository and community review
> process is needed.


I am not sure exactly what you are asking...  Seems like two questions:

1. should cmake's language and IDE support be more of a plugin architecture.

2. should cmake's modules be better organized and easier to find 
external ones.

So, for 1, I don't think so.  We have plugin support for CMake, and it 
is hard to work.  The problem is that the plugin would be in C++ and 
that means it would have to be compiled by the same compiler that CMake 
was compiled with.  This proved to be very difficult and error prone. I 
think the core CMake functionality (IDE and makefile generation) will 
remain as part of the CMake executable.  I don't think it will grow that 
big.

For 2, I think there is plenty of room for improvement.  The Module 
directory is getting big and cluttered, and I am still not happy with 
how external contributions are handled.  I am open to suggestions... :)

All that said, there is a strong pull to ship it all in one big thing. 
This is because we want to make sure that when you go to build a CMake 
based project, you don't have to go hunting around for lots of 
dependencies,  you should install cmake, and then build.

-Bill


More information about the CMake mailing list