[Cmake] Configuration problem in Dart/CMake

Ian Scott ian.m.scott at stud.man.ac.uk
Wed Sep 11 04:57:38 EDT 2002



> From: Miller, James V (Research) [mailto:millerjv at crd.ge.com]

> Now, back to the original question... I don't think we have
> quotes on any of the other variables that get expanded in
> Dart.conf.in.  Did either of the two changes to Configure.tcl
> fix the problem?


No,

And there is good reason to expect them not to.
The line in DartConfiguration.tcl contains 3 spaces

                 1          2                         3
ConfigureCommand: C:/Program Files/CMake/bin/cmake.exe
C:/workspace/seng/contsrc

The first space is after the Setting identifier. This is expected, and
ignored.
The second space is in the middle of the path to CMake between "Program" and
"Files"
The third space is between the path to the CMake Command and the path to the
Source Directory.

Once you get into Configure.tcl, there is simply no general way of
distinguishing between the second space (which needs to be guarded with a \)
and the third (and any subsequent) spaces.

However, the solution I described below (enclosing the command in quotes)
does appear to work, and also appears to be cross-platform.

Ian.

>
>
>
> > -----Original Message-----
> > From: Ian Scott [mailto:ian.m.scott at stud.man.ac.uk]
> > Sent: Tuesday, September 10, 2002 12:56 PM
> > To: Miller, James V (Research)
> > Cc: Dart Mailing List (E-mail); Cmake at Public. Kitware. Com (E-mail)
> > Subject: RE: [Cmake] Configuration problem in Dart/CMake
> >
> >
> >
> > Contrary to my first email, it seems that just putting quotes
> > around the
> > command filepath in DartConfiguration.tcl does work. I will
> > submit a fix to
> > Dart.conf.in and Utility.conf.in (are both really needed) so
> > that the quotes
> > always go in.
> >
> > Ian.
> >
> > > -----Original Message-----
> > > From: Miller, James V (Research) [mailto:millerjv at crd.ge.com]
> > > Sent: Tuesday, September 10, 2002 3:19 PM
> > > To: Ian Scott; Dart Mailing List (E-mail); Cmake at Public.
> > Kitware. Com
> > > (E-mail)
> > > Cc: Amitha Perera (E-mail)
> > > Subject: RE: [Cmake] Configuration problem in Dart/CMake
> > >
> > >
> > > Could you try these two changes to
> > > Dart/Source/Client/Configure.tcl, line 88
> > > (when your CMake entry in the cache is c:/Program
> > > Files/CMake/bin/cmake.exe)
> > >
> > > The current line is:
> > >
> > >   set ConfigureStatus [catch {eval exec
> > > $Dart(ConfigureCommand) >& $ConfigureLogFilename} ]
> > >
> > > Could you try
> > >
> > >   set ConfigureStatus [catch {exec $Dart(ConfigureCommand) >&
> > > $ConfigureLogFilename} ]
> > >
> > > and
> > >
> > >   set ConfigureStatus [catch {eval exec [list
> > > $Dart(ConfigureCommand)] >& $ConfigureLogFilename} ]
> > >
> > > One of these two changes should fix the problem.  My Tcl
> > > "eval" intuition is
> > > little rusty :) so I don't know which one will work...
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Ian Scott [mailto:ian.m.scott at stud.man.ac.uk]
> > > > Sent: Tuesday, September 10, 2002 5:50 AM
> > > > To: Dart Mailing List (E-mail); Cmake at Public. Kitware.
> > Com (E-mail)
> > > > Cc: Amitha Perera (E-mail)
> > > > Subject: [Cmake] Configuration problem in Dart/CMake
> > > >
> > > >
> > > > We have found a problem with CMake/Dart which explains why
> > > > Builds on windows
> > > > are more prone to temporary configuration problems on
> dashboards.
> > > >
> > > > If (as would be expected) you have installed CMake in
> > > > C:\Program Files\CMake
> > > > then the CMAKE variable CMAKE_COMMAND will be set to
> > > > C:/Program Files/CMake/bin/cmake.exe
> > > >
> > > > When dart uses a CONFIGURE_FILE command on a file containing
> > > > the following
> > > > line
> > > >
> > > > ConfigureCommand: @CMAKE_COMMAND@ @PROJECT_SOURCE_DIR@
> > > >
> > > > It produces the output
> > > >
> > > > ConfigureCommand: C:/Program Files/CMake/bin/cmake.exe
> > > > C:/workspace/seng/contsrc
> > > >
> > > > Dart uses this output to set itself up, and attempts to exec
> > > > $ConfigureCommand, producing ( and quietly swallowing) an
> > > > error Can't find
> > > > "C:\program"
> > > >
> > > > This problem can be fixed by moving CMake to somewhere
> > > > without a space in
> > > > the path.
> > > >
> > > > However, a proper fix would be useful. For example is it
> > > > possible to tell
> > > > the Configure command to replace any spaces inside a
> > > > particular macro with
> > > > "\ "? Another approach might include forcing cmake to
> use the 8.3
> > > > translation of the path name
> > > > C:/PROGRA~1/CMake/bin/cmake.exe
> > > > but I don't know how to do this either.
> > > >
> > > > Adding quotes to the outside of the command, i.e.
> > > > ConfigureCommand: "@CMAKE_COMMAND@" @PROJECT_SOURCE_DIR@
> > > > does not appear to work. The quotes get swallowed by tcl.
> > > >
> > > >
> > > > Ian.
> > > >
> > > >
> > > > _______________________________________________
> > > > Cmake mailing list
> > > > Cmake at public.kitware.com
> > > > http://public.kitware.com/mailman/listinfo/cmake
> > > >
> > >
> >
> >
>





More information about the CMake mailing list