View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000947CMakepublic2004-06-23 15:502004-07-12 11:09
ReporterPaul Oppenheim 
Assigned ToBill Hoffman 
PrioritylowSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000947: EXEC_PROGRAM - pathing error on cmake 2.0.1, OS X 10.3
DescriptionWhen trying to invoke an external makefile with the command:
EXEC_PROGRAM(make ${PROJECT_SOURCE_DIR}/Source/hi)

cmake executes:
-- Check for working C compiler: gcc
-- Check for working C compiler: gcc -- works
-- Check for working CXX compiler: c++
-- Check for working CXX compiler: c++ -- works
running cd "/Users/crescent/cmake-test-2004.06.23/cmake\ path/Source/hi" && make 2>&1
sh: line 1: cd: /Users/crescent/cmake-test-2004.06.23/cmake\ path/Source/hi: No such file or directory
-- Configuring done
-- Generating done


The quotes are what is killing it:
% cd "/Users/crescent/cmake-test-2004.06.23/cmake\ path/Source/hi"
tcsh: /Users/crescent/cmake-test-2004.06.23/cmake\ path/Source/hi: No such file or directory.
%
%
% cd /Users/crescent/cmake-test-2004.06.23/cmake\ path/Source/hi
%
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0001245)
Bill Hoffman (manager)
2004-07-05 08:53

What version of OS x are you using?
On the OS X machine here, all shells on
the machine work with either double quotes
or \ for spaces in the path. I have tried
bash, csh, sh, tcsh, and zsh.
"foo\ bar" does not work but either:
"foo bar" or foo\ bar works. Could this be something
in your .cshrc file?


kitware@krondor $ mkdir foo\ bar
kitware@krondor $ cd foo\ bar
kitware@krondor $ cd ~
kitware@krondor $ cd "foo\ bar" ~
cd: no such file or directory: foo\ bar
kitware@krondor $ cd "foo bar" ~
kitware@krondor $ tcsh
[krondor:~/foo bar] kitware% cd
[krondor:~] kitware% cd "foo bar"
[krondor:~/foo bar] kitware% cd
[krondor:~] kitware% cd foo\ bar
[krondor:~/foo bar] kitware% cd
[krondor:~] kitware% cd "foo\ bar"
tcsh: foo\ bar: No such file or directory.
(0001246)
Bill Hoffman (manager)
2004-07-05 08:55

This is tcsh:

[krondor:~/foo bar] kitware% cd
[krondor:~] kitware% cd "foo bar"
[krondor:~/foo bar] kitware%
(0001253)
Bill Hoffman (manager)
2004-07-09 14:43

I think this is fixed in cvs cmake.
Your test works fine:

[krondor:cmake-test-2004.06.23/cmake path/Build] kitware% ~/Nightly/My\ Testing/CMake-gcc/bin/cmake ..
-- Check for working C compiler: gcc -- works
-- Check for working CXX compiler: c++ -- works
running cd "/Users/kitware/Bill/cmake-test-2004.06.23/cmake path/Source/hi" && make 2>&1
c++ -O3 -Wall -I/usr/include -I./ -c hi.cpp
ar cr libhi.a hi.o
ranlib libhi.a
-- Configuring done
-- Generating done
[krondor:cmake-test-2004.06.23/cmake path/Build] kitware% make
cmake.depends is up-to-date
/Users/kitware/Bill/cmake-test-2004.06.23/cmake path/Build/Source: building default_target
Building executable /Users/kitware/Bill/cmake-test-2004.06.23/cmake\ path/Build/Source/hello...
(0001256)
Paul Oppenheim (reporter)
2004-07-12 11:09

Apologies:

I just noticed that the web board deleted the backslash escape characters. The whole point of this bug was that the path was already backslash-escaped, AND quoted. The UNIX cd command does not have problems with either one alone, but with both, it appears to the cd command that the name of the file actually has a backslash in it. I've had problems recently with ADD_CUSTOM_COMMAND as well, but in that case, there's more control over the quoting, naturally because that's exactly what that command is for.

Thanks for looking into this, cmake is a wonderful tool for the few of us developers who really need to build on all these platforms, and don't have the resources to coordinate all of the separate build files by hand.

 Issue History
Date Modified Username Field Change


Copyright © 2000 - 2018 MantisBT Team