[Dart] RE: [Cmake] Configuration problem in Dart/CMake

Ken Martin ken.martin at kitware.com
Wed Sep 11 09:19:01 EDT 2002


Hello,

Having spent about a week trying to get Dart to accept spaces/network
paths in the past, to me the short answer is "it doesn't". Parts of
Dart can handle spaces, but many parts cannot. I tried putting
everything in a path with spaces (including Dart itself, purify, etc)
and Dart will die in at least a few places. I fixed some of them but
finally gave up since I'm not a Tcl expert.

Now Dart isn't the only thing that has problems with spaces.
autoconf/configure will die die die if you give it a perfectly legal
UNIX path with spaces. In CMake we finally gave up on the cygwin
bootstrap build of CMake with spaces because we use autoconf for that
and it simply doesn't handle it. We had a lot of difficulty getting
cmake and ctest to handle spaces and I'm still not sure we have it
right.

In the long run I think Dart should handle spaces since they are
commonly used, but it mat be a bit of work.

Thanks
Ken

> -----Original Message-----
> From: dart-admin at public.kitware.com
> [mailto:dart-admin at public.kitware.com]On Behalf Of Ian Scott
> Sent: Wednesday, September 11, 2002 4:58 AM
> To: 'Miller, James V (Research)'
> Cc: Dart Mailing List (E-mail); Cmake at Public. Kitware. Com (E-mail)
> Subject: [Dart] RE: [Cmake] Configuration problem in Dart/CMake
>
>
>
>
>
> > 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
> > > > >
> > > >
> > >
> > >
> >
>
>
> _______________________________________________
> Dart mailing list
> Dart at public.kitware.com
> http://public.kitware.com/mailman/listinfo/dart
>




More information about the CMake mailing list