[CMake] Passing options into COMMAND inside of add_custom_target() or add_custom_command()
Hello, I'm trying to pass multiple options from outside to a command in add_custom_target() or add_custom_command(). I am new to CMake and I don't know whether the observed behavior is bug or I do it in a wrong way. I am doing all this with CMake 3.0 on Windows within MSYS environment if it plays some role. A test demonstrating the issue follows (using 'ls' as the command and '-l -h' as the options): # CMakeLists.txt cmake_minimum_required(VERSION 3.0) project(test_project) set(MYTOOL ls) add_custom_target( x ALL COMMAND ${MYTOOL} ${MYTOOL_FLAGS} COMMENT test VERBATIM ) # End of CMakeLists.txt Using the CMakeLists.txt above, I get this: $ mkdir buildcd build $ cmake -G MSYS Makefiles -DMYTOOL_FLAGS=-l -h .. ... (unimportant output censored) $ make VERBOSE=1 ... (unimportant output censored) [100%] test ls -l -h ls: invalid option -- Try `ls --help' for more information. make[2]: *** [CMakeFiles/x] Error 2 make[2]: Leaving directory `/prj/pok/build' make[1]: *** [CMakeFiles/x.dir/all] Error 2 make[1]: Leaving directory `/prj/pok/build' make: *** [all] Error 2 As can be seen, CMake propagates the contents of ${MYTOOL_FLAGS} as a single option into 'ls', i.e. generated Makefile attempts to execute ls -l -h instead of ls -l -h Any ideas how to do this correctly? Thanks, Martin -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] Passing options into COMMAND inside of add_custom_target() or add_custom_command()
Am Samstag, 28. Juni 2014 um 12:06:56, schrieb Martin Mitáš m...@morous.org Hello, I'm trying to pass multiple options from outside to a command in add_custom_target() or add_custom_command(). I am new to CMake and I don't know whether the observed behavior is bug or I do it in a wrong way. I am doing all this with CMake 3.0 on Windows within MSYS environment if it plays some role. A test demonstrating the issue follows (using 'ls' as the command and '-l -h' as the options): # CMakeLists.txt === cmake_minimum_required(VERSION 3.0) project(test_project) set(MYTOOL ls) add_custom_target( x ALL COMMAND ${MYTOOL} ${MYTOOL_FLAGS} COMMENT test VERBATIM ) # End of CMakeLists.txt === Using the CMakeLists.txt above, I get this: $ mkdir buildcd build $ cmake -G MSYS Makefiles -DMYTOOL_FLAGS=-l -h .. ... (unimportant output censored) $ make VERBOSE=1 ... (unimportant output censored) [100%] test ls -l -h ls: invalid option -- So 'ls' got '-l -h' as one paramater. I would use 1.) -DMYTOOL_FLAGS=-lh or 2.) -DMYTOOL_FLAGS=-l;-h Try `ls --help' for more information. make[2]: *** [CMakeFiles/x] Error 2 make[2]: Leaving directory `/prj/pok/build' make[1]: *** [CMakeFiles/x.dir/all] Error 2 make[1]: Leaving directory `/prj/pok/build' make: *** [all] Error 2 As can be seen, CMake propagates the contents of ${MYTOOL_FLAGS} as a single option into 'ls', i.e. generated Makefile attempts to execute ls -l -h instead of ls -l -h Any ideas how to do this correctly? Thanks, Martin Kornel signature.asc Description: This is a digitally signed message part. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] Passing options into COMMAND inside of add_custom_target() or add_custom_command()
On 28. Juni 2014 18:00:52 MESZ, Kornel Benko kor...@lyx.org wrote: Am Samstag, 28. Juni 2014 um 12:06:56, schrieb Martin Mitáš m...@morous.org Hello, I'm trying to pass multiple options from outside to a command in add_custom_target() or add_custom_command(). I am new to CMake and I don't know whether the observed behavior is bug or I do it in a wrong way. I am doing all this with CMake 3.0 on Windows within MSYS environment if it plays some role. A test demonstrating the issue follows (using 'ls' as the command and '-l -h' as the options): # CMakeLists.txt cmake_minimum_required(VERSION 3.0) project(test_project) set(MYTOOL ls) add_custom_target( x ALL COMMAND ${MYTOOL} ${MYTOOL_FLAGS} COMMENT test VERBATIM ) # End of CMakeLists.txt Using the CMakeLists.txt above, I get this: $ mkdir buildcd build $ cmake -G MSYS Makefiles -DMYTOOL_FLAGS=-l -h .. ... (unimportant output censored) $ make VERBOSE=1 ... (unimportant output censored) [100%] test ls -l -h ls: invalid option -- So 'ls' got '-l -h' as one paramater. I would use 1.) -DMYTOOL_FLAGS=-lh or 2.) -DMYTOOL_FLAGS=-l;-h Or maybe escaping on the shell as -DMYTOOL_FLAGS=-l -h also works? Try `ls --help' for more information. make[2]: *** [CMakeFiles/x] Error 2 make[2]: Leaving directory `/prj/pok/build' make[1]: *** [CMakeFiles/x.dir/all] Error 2 make[1]: Leaving directory `/prj/pok/build' make: *** [all] Error 2 As can be seen, CMake propagates the contents of ${MYTOOL_FLAGS} as a single option into 'ls', i.e. generated Makefile attempts to execute ls -l -h instead of ls -l -h Any ideas how to do this correctly? Thanks, Martin Kornel -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] Passing options into COMMAND inside of add_custom_target() or add_custom_command()
Am Samstag, 28. Juni 2014 um 19:21:50, schrieb Hendrik Sattler p...@hendrik-sattler.de So 'ls' got '-l -h' as one paramater. I would use 1.) -DMYTOOL_FLAGS=-lh or 2.) -DMYTOOL_FLAGS=-l;-h Or maybe escaping on the shell as -DMYTOOL_FLAGS=-l -h also works? This is identical to -DMYTOOL_FLAGS=-l -h. The shell simply removes quotes. The command (in this case cmake) get this (as one) parameter '-DMYTOOL_FLAGS=-l -h' including the blank. So it should not work. Kornel signature.asc Description: This is a digitally signed message part. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake