[CMake] digging in the dark corners of the command line argument interpreter

Axel Roebel Axel.Roebel at ircam.fr
Wed Dec 13 11:11:25 EST 2006


On Wednesday 13 December 2006 16:47, Alan W. Irwin wrote:
> On 2006-12-13 10:29+0100 Axel Roebel wrote:
> > Dear CMakers
> >
> > I run into a little problem with the command line flag -D.
> > I'll often use the command line flag -D to pass variables to cmake.
> > Because typing long names like
> >
> > -DTT_EXECUTABLE:PATH=tt
> >
> > is boring I was pretty happy to see that I could do
> >
> > -DTT_EXECUTABLE=tt
> >
> > as well. Before you start shortcutting I have to add
> > some salt to this nice soup because unfortunately
> > it turns out that this nearly always works besides
> > if in CMakeLists.txt I do a FIND_PROGRAM.  For example with
> >
> > MESSAGE("varstate: ${TT_EXECUTABLE}")
> > FIND_PROGRAM(TT_EXECUTABLE NAMES whatever)
> > MESSAGE("varstate: ${TT_EXECUTABLE}")
> >
> > what happens is
> >
> > $> cd /home/roebel/tmp/
> > $> cmake . -DTT_EXECUTABLE=whatever
> > varstate: whatever
> > varstate: /home/roebel/tmp/whatever
> >
> > which shows that FIND_PROGRAM replaced the content of variable
> > TT_EXECUTABLE by $PWD/${TT_EXECUTABLE} which is nonsense most of the
> > time.
> > After some more digging I found that with
> > -DTT_EXECUTABLE=whatever no cache variable is created
> > so the variable seems to be in kind of a zomby state.
> > However, it turns out that
> >
> > cmake . -DTT_EXECUTABLE:=whatever
> >
> > works correctly creating a string type cache variable.
> >
> > So the questions are,
> > 1. what is
> > -DTT_EXECUTABLE=whatever
> > supposed to do in contrast to
> >
> > -DTT_EXECUTABLE:=whatever
> > or the book version
> > -DTT_EXECUTABLE:STRING=whatever
> >
> > 2.
> > can I rely on -DTT_EXECUTABLE:=whatever to work or am I still abusing a
> > current weakness of the command line type check.
> >
> > Thanks for any illumination!
>
> All your examples above have the path first.  Just out of curiosity, what
> happens if you use the recommended style with the path on the end, i.e.,
>
> cmake [options] <path-to-source>
>

all the same !

>
> Alan
> __________________________
> Alan W. Irwin
>
> Astronomical research affiliation with Department of Physics and Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
>
> Programming affiliations with the FreeEOS equation-of-state implementation
> for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
> package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the
> Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project
> (lbproject.sf.net).
> __________________________
>
> Linux-powered Science
> __________________________
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake

-- 
Axel Roebel    
IRCAM Analysis/Synthesis Team
Phone: ++33-1-4478 4845 | Fax: ++33-1-4478 1540


More information about the CMake mailing list