[CMake] [BUG] cmake-2.8.0, Unix Makefiles generator creates incorrect module dependency for Fortran 95 if there is an embedded blank in the directory name
Brad King
brad.king at kitware.com
Mon Jan 4 10:28:09 EST 2010
Alan W. Irwin wrote:
> Hi Brad and Alin:
>
> Here is an example of the bug:
>
> cat CMakeFiles/x02f95.dir/depend.make
> # CMAKE generated file: DO NOT EDIT!
> # Generated by "Unix Makefiles" Generator, CMake Version 2.8
>
>
> f95/CMakeFiles/x02f95.dir/x02f.f90.o: "/home/software/plplot
> svn/installcmake/lib/fortran/modules/plplot/plplot.mod"
>
> The double quotes are not the correct way with GNU make to handle embedded
> blanks in a file dependency. Therefore, the following error message is
> generated when running the "make x02f95" command:
>
> make[3]: *** No rule to make target "/home/software/plplot', needed by
> f95/CMakeFiles/x02f95.dir/x02f.f90.o'. Stop.
>
> The fix is to drop the quotes around the
> f95/CMakeFiles/x02f95.dir/x02f.f90.o dependency and use an escaped blank
> instead.
Yes, all other Makefile dependencies are written like this. It's a typo
in "cmDependsFortran.cxx" which uses SHELL escapes instead of MAKEFILE
escapes. There is actually a test for this that runs with a space in
the path, but it passes because the module path in the test appears
below the build tree and is thus converted to a space-free relative
path.
The commit below fixes the problem and enhances our test to cover the
case.
-Brad
Fix escapes in Fortran depend.make entries
/cvsroot/CMake/CMake/Source/cmDependsFortran.cxx,v <-- Source/cmDependsFortran.cxx
new revision: 1.51; previous revision: 1.50
/cvsroot/CMake/CMake/Tests/Fortran/CMakeLists.txt,v <-- Tests/Fortran/CMakeLists.txt
new revision: 1.37; previous revision: 1.36
/cvsroot/CMake/CMake/Tests/Fortran/Executable/CMakeLists.txt,v <-- Tests/Fortran/Executable/CMakeLists.txt
new revision: 1.3; previous revision: 1.2
More information about the CMake
mailing list