On Monday, October 31, 2011 02:39:16 pm Pierre-Francois Laquerre wrote: > Short version: shouldn't the macros in Modules/Qt4Macros.cmake call > ADD_CUSTOM_COMMAND with VERBATIM?
Yes, it looks like it should. Can you add a bug in the bug tracker? Thanks, Clint > > Long version: > > I'm trying to build > https://github.com/pflaquerre/torch/tree/build-under-path-with-parentheses > with cmake 2.8.5. It works fine when building in, say, /tmp/test/, but > > not in /tmp/test(foo): > > cd "/tmp/test(foo)/build.rel/qtlua/qlua" && /usr/lib64/qt4/bin/rcc -name > > qlua -o /tmp/test(foo)/build.rel/qtlua/qlua/qrc_qlua.cxx > > /tmp/test(foo)/qtlua/qlua/qlua.qrc /bin/sh: -c: line 0: syntax error > > near unexpected token `(' > > /bin/sh: -c: line 0: `cd "/tmp/test(foo)/build.rel/qtlua/qlua" && > > /usr/lib64/qt4/bin/rcc -name qlua -o > > /tmp/test(foo)/build.rel/qtlua/qlua/qrc_qlua.cxx > > /tmp/test(foo)/qtlua/qlua/qlua.qrc' make[2]: *** > > [qtlua/qlua/qrc_qlua.cxx] Error 1 > > make[2]: Leaving directory `/tmp/test(foo)/build.rel' > > make[1]: *** [qtlua/qlua/CMakeFiles/libqlua.dir/all] Error 2 > > make[1]: Leaving directory `/tmp/test(foo)/build.rel' > > make: *** [all] Error 2 > > The issue is obviously the lack of quotes around the paths, but I'm > not sure what is causing it. One of the offending cmake files is > https://github.com/pflaquerre/torch/blob/build-under-path-with-parentheses/ > qtlua/qlua/CMakeLists.txt, which calls MACRO_QT4_AUTOGEN from > https://github.com/pflaquerre/torch/blob/build-under-path-with-parentheses/ > qtlua/cmake/MacroQt4AutoGen.cmake, which in turn calls the cmake macros > QT4_WRAP_UI, QT4_ADD_RESOURCES, QT4_WRAP_CPP and QT4_GENERATE_MOC. > However, it doesn't seem like those cmake files are doing anything wrong > as far as quoting goes. I had a look at the latest Modules/Qt4Macros.cmake > on github and noticed that there are a few places where ADD_CUSTOM_COMMAND > is not called with VERBATIM. For instance, QT4_CREATE_MOC_COMMAND only > uses VERBATIM on > > WIN32: > > MACRO (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options) > > > > # For Windows, create a parameters file to work around command line > >length limit IF (WIN32) > > # Pass the parameters in a file. Set the working directory to > > # be that containing the parameters file and reference it by > > # just the file name. This is necessary because the moc tool on > > # MinGW builds does not seem to handle spaces in the path to the > > # file given with the @ syntax. > > GET_FILENAME_COMPONENT(_moc_outfile_name "${outfile}" NAME) > > GET_FILENAME_COMPONENT(_moc_outfile_dir "${outfile}" PATH) > > IF(_moc_outfile_dir) > > SET(_moc_working_dir WORKING_DIRECTORY ${_moc_outfile_dir}) > > ENDIF(_moc_outfile_dir) > > SET (_moc_parameters_file ${outfile}_parameters) > > SET (_moc_parameters ${moc_flags} ${moc_options} -o "${outfile}" > >"${infile}") STRING (REPLACE ";" "\n" _moc_parameters > >"${_moc_parameters}") FILE (WRITE ${_moc_parameters_file} > >"${_moc_parameters}") > > ADD_CUSTOM_COMMAND(OUTPUT ${outfile} > > COMMAND ${QT_MOC_EXECUTABLE} > >@${_moc_outfile_name}_parameters DEPENDS ${infile} > > ${_moc_working_dir} > > VERBATIM) > > ELSE (WIN32) > > ADD_CUSTOM_COMMAND(OUTPUT ${outfile} > > COMMAND ${QT_MOC_EXECUTABLE} > > ARGS ${moc_flags} ${moc_options} -o ${outfile} > >${infile} DEPENDS ${infile}) > > ENDIF (WIN32) > > > > ENDMACRO (QT4_CREATE_MOC_COMMAND) > > Is this on purpose? Adding VERBATIM to the ADD_CUSTOM_COMMAND calls in > that file solved the quoting issue and allowed me to build without any > problems. Is that project just misusing cmake, or is it really a > problem with Qt4Macros.cmake? > > Regards, > > Pierre-Francois > -- > > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake -- Clinton Stimpson Elemental Technologies, Inc Computational Simulation Software, LLC www.csimsoft.com -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
