[vtkusers] CMake generating Makefiles: quoting problem
William A. Hoffman
billlist at nycap.rr.com
Tue Jan 28 09:05:40 EST 2003
CMake 1.6 (the recent release) no longer generates the echo statements, I would
recommend trying 1.6.
-Bill
At 05:03 PM 1/28/2003 +1100, Gavin Baker wrote:
>Hello,
>
>I am building VTK from cvs (refreshed today), under Debian GNU/Linux
>(woody), using CMake 1.4p4 (and my shell is bash 2.05b).
>
>There are two problems with the Makefile generated by CMake,
>specifically with the following section from
> VTK/Wrapping/Python/CMakeLists.txt starting on line 83:
>
> ADD_CUSTOM_COMMAND(SOURCE ${src}
> COMMAND ${PYTHON_EXECUTABLE}
> ARGS -c "\"import" "py_compile;py_compile.compile('${src}','${tgt}','${tgt}')\""
> TARGET vtkpython_pyc
> OUTPUTS ${tgt}
> )
>
>The problems are:
>
>1. CMake generates echo statements for each COMMAND/ARGS, with exactly
>the same contents as the shell command to be executed. But since the
>above generated command includes quotes, the quotes are not escaped
>for the echo line, even though that same line is correct for the
>actual command.
>
>The generated Makefile contains lines such as this:
>
>/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/QVTKRenderWidget.pyc: /home/gavinb/projects/vtk/VTK/Wrapping/Python/QVTKRenderWidget.py
> echo "/usr/bin/python2.2 -c "import py_compile;py_compile.compile('/home/gavinb/projects/vtk/VTK/Wrapping/Python/QVTKRenderWidget.py','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/QVTKRenderWidget.pyc','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/QVTKRenderWidget.pyc')" "
> /usr/bin/python2.2 -c "import py_compile;py_compile.compile('/home/gavinb/projects/vtk/VTK/Wrapping/Python/QVTKRenderWidget.py','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/QVTKRenderWidget.pyc','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/QVTKRenderWidget.pyc')"
>
>When make is run, the following error occurs:
>
>/bin/sh: -c: line 1: syntax error near unexpected token `'/home/gavinb/projects/vtk/VTK/Wrapping/Python/vtk/filtering.py','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/vtk/filtering.pyc','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/vtk/filtering.pyc''
>/bin/sh: -c: line 1: `echo "/usr/bin/python2.2 -c "import py_compile;py_compile.compile('/home/gavinb/projects/vtk/VTK/Wrapping/Python/vtk/filtering.py','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/vtk/filtering.pyc','/home/gavinb/projects/vtk/vtk-linux/Wrapping/Python/vtk/filtering.pyc')" "'
>
>I couldn't seem to find a combination of quotes and escaping that
>would result in a valid and correct command line and something that
>echo would accept at the same time.
>
>The quick fix is to comment out the echo statements. A proper fix
>would be to get CMake to escape quotes when passing the command line
>to echo.
>
>
>2. There is a semicolon separating the import statement with the
>compile call. This exists in CMakeLists.txt but is removed when the
>Makefile is generated. The solution is to escape the semicolon with a
>backslash, and it works fine.
>
>Related to point 2 above, the documentation for CMake does not explain
>the quoting or escaping rules. It would be useful to have a reference
>for that somewhere.
>
> :: Gavin
>
>--
>Gavin Baker Computer Vision Lab (CVMIL)
>http://www.cs.mu.oz.au/~gavinb University of Melbourne
>_______________________________________________
>This is the private VTK discussion list.
>Please keep messages on-topic. Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://public.kitware.com/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list