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> 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>
> 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>
>> 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
>> >>
>> >> 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
>>
>
>
> --
>
> 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
>
-- 

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

Reply via email to