Not for me it doesn't: $ make VERBOSE=yes /usr/bin/cmake -H/home/glenn/src/cmake-test -B/home/glenn/src/cmake-test/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/glenn/src/cmake-test/build/CMakeFiles /home/glenn/src/cmake-test/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: Entering directory `/home/glenn/src/cmake-test/build' make -f CMakeFiles/do-foo.dir/build.make CMakeFiles/do-foo.dir/depend make[2]: Entering directory `/home/glenn/src/cmake-test/build' cd /home/glenn/src/cmake-test/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/glenn/src/cmake-test /home/glenn/src/cmake-test /home/glenn/src/cmake-test/build /home/glenn/src/cmake-test/build /home/glenn/src/cmake-test/build/CMakeFiles/do-foo.dir/DependInfo.cmake --color= make[2]: Leaving directory `/home/glenn/src/cmake-test/build' make -f CMakeFiles/do-foo.dir/build.make CMakeFiles/do-foo.dir/build make[2]: Entering directory `/home/glenn/src/cmake-test/build' /usr/bin/cmake -E cmake_progress_report /home/glenn/src/cmake-test/build/CMakeFiles 1
[100%] Generating foo generate-foo || echo \"no big deal\" make[2]: Leaving directory `/home/glenn/src/cmake-test/build' /usr/bin/cmake -E cmake_progress_report /home/glenn/src/cmake-test/build/CMakeFiles 1 [100%] Built target do-foo make[1]: Leaving directory `/home/glenn/src/cmake-test/build' /usr/bin/cmake -E cmake_progress_start /home/glenn/src/cmake-test/build/CMakeFiles 0 I'm seeing the || outside of the double quotes. This is on Kubuntu 14.10 with cmake 2.8.12.2. -- Glenn On 29 July 2014 20:57, Bill Newcomb <bnewc...@nvidia.com> wrote: > On linux, at least, this results in there being double quotes around the > ||, which causes it to not be interpreted by the shell. > > B. > > > On 07/29/2014 12:25 PM, Glenn Coombs wrote: > >> I think this works like you want: >> >> cmake_minimum_required(VERSION 2.6) >> >> set(DO_RELAX 1) >> if(DO_RELAX) >> set(OR_RELAX || echo \"no big deal\") >> else() >> set(OR_RELAX) >> endif() >> >> add_custom_command(OUTPUT foo COMMAND generate-foo ${OR_RELAX} VERBATIM) >> add_custom_target(do-foo ALL DEPENDS foo) >> >> >> -- >> Glenn >> >> >> On 29 July 2014 19:19, J Decker <d3c...@gmail.com >> <mailto:d3c...@gmail.com>> wrote: >> >> can try removing the quotes and subst space for semicolon? >> >> >> On Tue, Jul 29, 2014 at 11:13 AM, Bill Newcomb <bnewc...@nvidia.com >> <mailto:bnewc...@nvidia.com>> wrote: >> >> That doesn't work either: >> >> foo: >> $(CMAKE_COMMAND) -E cmake_progress_report >> /home/bnewcomb/tmp/cmake-tests/custom-or/CMakeFiles >> $(CMAKE_PROGRESS_1) >> @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) >> --blue --bold "Generating foo" >> generate-foo "|| echo \"no big deal\"" >> >> The whole string gets passed as the first argument to >> generate-foo. >> >> B. >> >> On 07/25/2014 09:43 AM, Iosif Neitzke wrote: >> > "If VERBATIM is given then all arguments to the commands will >> be >> > escaped properly for the build tool so that the invoked command >> > receives each argument unchanged. Note that one level of >> escapes is >> > still used by the CMake language processor before >> add_custom_command >> > even sees the arguments. Use of VERBATIM is recommended as it >> enables >> > correct behavior. When VERBATIM is not given the behavior is >> platform >> > specific because there is no protection of tool-specific >> special >> > characters." >> > >> > >> http://www.cmake.org/cmake/help/v3.0/command/add_custom_ >> command.html >> > >> > On Fri, Jul 25, 2014 at 11:20 AM, Bill Newcomb >> <bnewc...@nvidia.com <mailto:bnewc...@nvidia.com>> wrote: >> >> I want to add stuff to a custom command based on some >> definition: >> >> >> >> cmake_minimum_required(VERSION 2.6) >> >> >> >> set(DO_RELAX 1) >> >> if(DO_RELAX) >> >> set(OR_RELAX "|| echo \"no big deal\"") >> >> else() >> >> set(OR_RELAX "") >> >> endif() >> >> >> >> add_custom_command(OUTPUT foo COMMAND generate-foo >> ${OR_RELAX}) >> >> add_custom_target(do-foo ALL DEPENDS foo) >> >> >> >> >> >> However, this produces the following rule in the generated >> makefile: >> >> >> >> foo: >> >> $(CMAKE_COMMAND) -E cmake_progress_report >> /home/bnewcomb/tmp/cmake-tests/custom-or/CMakeFiles >> $(CMAKE_PROGRESS_1) >> >> @$(CMAKE_COMMAND) -E cmake_echo_color >> --switch=$(COLOR) --blue --bold "Generating foo" >> >> generate-foo ||\ echo\ "no\ big\ deal" >> >> >> >> Is there some way I can get cmake to not escape all of the >> >> spaces in the value of OR_RELAX? >> >> >> >> Thanks, >> >> B. >> >> >> >> >> ------------------------------------------------------------ >> ----------------------- >> >> This email message is for the sole use of the intended >> recipient(s) and may contain >> >> confidential information. Any unauthorized review, use, >> disclosure or distribution >> >> is prohibited. If you are not the intended recipient, >> please contact the sender by >> >> reply email and destroy all copies of the original message. >> >> >> ------------------------------------------------------------ >> ----------------------- >> >> -- >> >> >> >> Powered by www.kitware.com <http://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 >> -- >> >> Powered by www.kitware.com <http://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 >> >> >> >> -- >> >> Powered by www.kitware.com <http://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 >> >> >>
-- 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