[CMake] improve the CMake language?

Sanchez, Juan juan.sanchez at amd.com
Thu Nov 1 23:40:35 EDT 2007


Hello Bill,

add_library(foo SHARED foo.cxx)

won't work.

Parenthesis are not part of the standard syntax, and worth getting Tcl to understand them.

Tcl is a simple language, and is well understood.  It has already been ported to about every platform out there.  You don't need QT or wxWidgets, because the Tk extensions of it already work.

Many features in the CMake language don't really work the way people expect, or are not documented, or both.

If anyone would like to fork cmake with me, I'm game.

Features:

Tcl frontend featuring modern dynamic language constructs and consistent syntax.

C pre-processor based dependency scanner

Accurate and up to date documentation

Focus on getting build system that works, because all of the language constructs have already been written.

Developers who are not hostile to ideas concerning improvements to the language.

Regards,

Juan



-----Original Message-----
From: Bill Hoffman [mailto:bill.hoffman at kitware.com]
Sent: Thu 11/1/2007 9:18 PM
To: Sanchez, Juan
Cc: Bill Hoffman; Brandon Van Every; cmake at cmake.org
Subject: Re: [CMake] improve the CMake language?
 
Sanchez, Juan wrote:
> Tcl is a nice language for implementing declarative commands.  It can be 
> easily built on about every platform out there, and the language rules 
> are well known.  It is small, and very easy to compile a standalone Tcl 
> based interpreter with the CMake commands built in.  The user would not 
> need to have any language installed, you could package the source with 
> CMake or make it part of the cmake binary you distribute.  It is freely 
> distributable and has a BSD license.
> 
> add_library(foo SHARED foo.cxx)
> 
> could become
> add_library {foo SHARED foo.cxx}
> 
> or even
> add_library -name foo -type SHARED foo.cxx
> 

I can't help myself, I have to respond....  :)


Or it could be:

add_library(foo SHARED foo.cxx)

Hey, wait, that already works...  :)

The point is you don't need tcl, python, or ruby to add add a library. 
You need a simple language, and I want it to work with only a c++ 
compiler and its standard libraries.  So, when someone wants to build a 
c++ program with CMake on a new platform, they don't first have to port 
(tcl/python/ruby/XXX), the just need to have a c++ compiler, which they 
should have if they are building a c++ application.  It is sort of a 
prerequisite to have a c++ compiler to build a c++ application, so we 
know it will be there.

Sorry Juan, your suggestion is valid, and perhaps I should create a FAQ 
entry like: Why the CMake Language?  So, I can point to it when this 
comes up.

-Bill




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/cmake/attachments/20071101/8ca7c4e5/attachment.html


More information about the CMake mailing list