<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>RE: [CMake] improve the CMake language?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hello Bill,<BR>
<BR>
add_library(foo SHARED foo.cxx)<BR>
<BR>
won't work.<BR>
<BR>
Parenthesis are not part of the standard syntax, and worth getting Tcl to understand them.<BR>
<BR>
Tcl is a simple language, and is well understood.&nbsp; It has already been ported to about every platform out there.&nbsp; You don't need QT or wxWidgets, because the Tk extensions of it already work.<BR>
<BR>
Many features in the CMake language don't really work the way people expect, or are not documented, or both.<BR>
<BR>
If anyone would like to fork cmake with me, I'm game.<BR>
<BR>
Features:<BR>
<BR>
Tcl frontend featuring modern dynamic language constructs and consistent syntax.<BR>
<BR>
C pre-processor based dependency scanner<BR>
<BR>
Accurate and up to date documentation<BR>
<BR>
Focus on getting build system that works, because all of the language constructs have already been written.<BR>
<BR>
Developers who are not hostile to ideas concerning improvements to the language.<BR>
<BR>
Regards,<BR>
<BR>
Juan<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: Bill Hoffman [<A HREF="mailto:bill.hoffman@kitware.com">mailto:bill.hoffman@kitware.com</A>]<BR>
Sent: Thu 11/1/2007 9:18 PM<BR>
To: Sanchez, Juan<BR>
Cc: Bill Hoffman; Brandon Van Every; cmake@cmake.org<BR>
Subject: Re: [CMake] improve the CMake language?<BR>
<BR>
Sanchez, Juan wrote:<BR>
&gt; Tcl is a nice language for implementing declarative commands.&nbsp; It can be<BR>
&gt; easily built on about every platform out there, and the language rules<BR>
&gt; are well known.&nbsp; It is small, and very easy to compile a standalone Tcl<BR>
&gt; based interpreter with the CMake commands built in.&nbsp; The user would not<BR>
&gt; need to have any language installed, you could package the source with<BR>
&gt; CMake or make it part of the cmake binary you distribute.&nbsp; It is freely<BR>
&gt; distributable and has a BSD license.<BR>
&gt;<BR>
&gt; add_library(foo SHARED foo.cxx)<BR>
&gt;<BR>
&gt; could become<BR>
&gt; add_library {foo SHARED foo.cxx}<BR>
&gt;<BR>
&gt; or even<BR>
&gt; add_library -name foo -type SHARED foo.cxx<BR>
&gt;<BR>
<BR>
I can't help myself, I have to respond....&nbsp; :)<BR>
<BR>
<BR>
Or it could be:<BR>
<BR>
add_library(foo SHARED foo.cxx)<BR>
<BR>
Hey, wait, that already works...&nbsp; :)<BR>
<BR>
The point is you don't need tcl, python, or ruby to add add a library.<BR>
You need a simple language, and I want it to work with only a c++<BR>
compiler and its standard libraries.&nbsp; So, when someone wants to build a<BR>
c++ program with CMake on a new platform, they don't first have to port<BR>
(tcl/python/ruby/XXX), the just need to have a c++ compiler, which they<BR>
should have if they are building a c++ application.&nbsp; It is sort of a<BR>
prerequisite to have a c++ compiler to build a c++ application, so we<BR>
know it will be there.<BR>
<BR>
Sorry Juan, your suggestion is valid, and perhaps I should create a FAQ<BR>
entry like: Why the CMake Language?&nbsp; So, I can point to it when this<BR>
comes up.<BR>
<BR>
-Bill<BR>
<BR>
<BR>
<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>