[CMake] cmake ruby bindings (or perl, or python, or ...)

Brandon J. Van Every bvanevery at gmail.com
Mon May 15 18:55:45 EDT 2006


Lloyd Hilaiel wrote:
> (probably off topic)
>
> The more and more I work with cmake, the more it feels like there are two
> (or more) distinct tools rolled into one...
>
> the "front end" is a piece of software that interprets CMakeLists.txt files,
> and drives a "back end".  The back end is the stuff that actually generates
> compiler specific project files (makefiles, whatever).
>
> I'm wondering if anyone feels the same way?
>
> Specifically I would be interested in using/writing a ruby front end for
> writing my build files in.  This would give me powerful cross
> platform constructs for interacting with the file system (FILE()),
> list/set/hash manipulation, etc, and would give me a back end set of
> calls to drive the build file generation.  
As I do more and more CMake, I'm not yet convinced that there's a value 
add to wrapping it all up in, say, Chicken Scheme.  First that's a huge 
maintenance and coordination burden.  It is exceedingly unlikely to 
remain industrially robust.  Second, whenever I want to ask a question 
of the excellent CMake technical support offered here, nobody's gonna be 
able to help me.  Like it or not, perfect or imperfect language, it is 
the CMAKE language.  There is a lot of value in having everyone work on 
the same thing.  Especially since CMake needs to grow a whole lot and 
gain critical mass, I see the idea of creating front ends for all sorts 
of different languages as exceedingly misguided.

> The cost of course would be
> (for me as a user) having to have both ruby and cmake installed.
>   
Which, as a paradigm, is not terribly useful for people who are looking 
to avoid additional language dependencies.  One selling point of CMake 
over SCons is CMake doesn't ask you to install Python.  All you need is 
a C or C++ compiler, so it's a good tool for migrating to other platforms.

> The present front end seems like it will always be useful to keep
> cmake a tight self contained piece of software...  My (very under
> cooked) thoughts are that a code restructuring could take place that
> would expose hooks into a generation engine that could then be exposed
> to other languages (via SWIG, or manually, or whatever).  The existing
> "front end" would use that code.  
>
> Is anyone interested in this kinda thinking?  Is there any previous work
> in this direction?
>
>   
I'm not the slightest bit interested in hearing about major CMake 
changes that are going to disrupt a winning team.  Leave the internals 
to the CMake guys.  What impresses me the most about CMake, is that when 
I have a bug or feature request, they turn it around rapidly.  A bunch 
of gratuitous compartmentalization is gonna slow them down... unless 
they were already planning on doing that kind of separation anyways.


Cheers,
Brandon Van Every






More information about the CMake mailing list