[CMake] CMake 2.4.2 dependency path qualifier bug
William A. Hoffman
billlist at nycap.rr.com
Thu May 18 15:05:09 EDT 2006
Is there a place I can download the chicken sources that show this problem?
I assume this worked in 2.4.1?
-Bill
At 02:55 PM 5/18/2006, Brandon J. Van Every wrote:
>CMake 2.4.2 is dropping directory path qualifiers, seemingly when a generated file depends on a generated file. I have
>
>- ${Chicken_BINARY_DIR}/csc.c, which needs
>- ${Chicken_BINARY_DIR}/csc.scm, which needs
>- ${Chicken_SOURCE_DIR}/csc.scm.in
>
>but the generated makefile drops the ${Chicken_BINARY_DIR}/csc.scm qualifier in the dependency. This causes something to erroneously look for ${Chicken_SOURCE_DIR}/csc.scm and the build fails. My code:
>
># csc.c needs its own custom rule because csc.scm is generated.
># Could make macros that distinguish generated vs. non-generated
># arguments, but there aren't many cases of that, so doesn't
># seem worth it.
>
>CONFIGURE_FILE(${Chicken_SOURCE_DIR}/csc.scm.in ${Chicken_BINARY_DIR}/csc.scm)
>ADD_CUSTOM_COMMAND(
> OUTPUT ${Chicken_BINARY_DIR}/csc.c
> MAIN_DEPENDENCY ${Chicken_BINARY_DIR}/csc.scm
> COMMAND ${VALID_CHICKEN} ${Chicken_BINARY_DIR}/csc.scm -output-file ${Chicken_BINARY_DIR}/csc.c ${CHICKEN_FLAGS}
>)
>
>and the output in csc.dir:
>
>csc.c: csc.scm
> @echo "Generating csc.c"
> E:/Program\ Files/Chicken/chicken-static.exe E:/devel/msys/chicken1/csc.scm -output-file E:/devel/msys/chicken1/csc.c -quiet -no-trace -optimize-level 2 -include-path E:/devel/src/chicken
>
>nsample.c: E:/devel/src/chicken/nsample.scm
> @echo "Generating nsample.c"
> E:/Program\ Files/Chicken/chicken-static.exe E:/devel/src/chicken/nsample.scm -output-file E:/devel/msys/chicken1/nsample.c nsample nsample -explicit-use -uses library -uses eval -quiet -no-trace -optimize-level 2 -include-path E:/devel/src/chicken
>
>batch-driver.c: E:/devel/src/chicken/batch-driver.scm
> @echo "Generating batch-driver.c"
> E:/Program\ Files/Chicken/chicken-static.exe E:/devel/src/chicken/batch-driver.scm -output-file E:/devel/msys/chicken1/batch-driver.c batch-driver batch-driver -quiet -no-trace -optimize-level 2 -include-path E:/devel/src/chicken
>
>[etc.]
>
>Note that all my other dependencies have fully qualified pathnames.
>Note further, none of their .scm sources are generated, i.e. they're all of the form ${Chicken_SOURCE_DIR}/*.scm. The error I get with csc.c:
>
>Generating csc.c
>make[2]: *** No rule to make target `E:/devel/src/chicken/csc.scm', needed by `CMakeFiles/csc.dir/depend.make.mark'. Stop.
>make[1]: *** [CMakeFiles/csc.dir/all] Error 2
>make: *** [all] Error 2
>
>
>
>Cheers,
>Brandon Van Every
>
>_______________________________________________
>CMake mailing list
>CMake at cmake.org
>http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list