[CMake] Spaces in conditional output of generator expressions

Marc CHEVRIER marc.chevrier at gmail.com
Sun Jun 3 14:23:41 EDT 2018


Using "SHELL:": add_compile_options("$<$<COMP
ILE_LANGUAGE:Fortran>:SHELL:-assume realloc_lhs>")
By using "SHELL:", you ensure that the two parts of the option will be
remain together.

Documentation is here:
https://cmake.org/cmake/help/git-master/command/target_compile_options.html


Le dim. 3 juin 2018 à 18:40, Hendrik Sattler <post at hendrik-sattler.de> a
écrit :

>
>
> Am 3. Juni 2018 16:33:12 MESZ schrieb Marc CHEVRIER <
> marc.chevrier at gmail.com>:
> >In fact, the right way to manage « composite » options is to use «
> >SHELL: »
> >prefix (introduced in up-coming version 3.12).
>
> Can you modify the example to show its use?
> Why is it called shell? IMHO a build to its not required to use any kind
> of shell.
>
> >Le dim. 3 juin 2018 à 16:11, Neil Carlson <neil.n.carlson at gmail.com> a
> >écrit :
> >
> >> Something not immediately obvious to me, and perhaps not to others
> >that
> >> might come across this thread, is that all spaces in the option
> >string need
> >> to be replaced with a semicolon, and not just those that separate
> >options
> >> (with Linux/make at least). For example  an option that takes an
> >argument
> >> '-assume realloc_lhs'. If you do this:
> >>
> >> BAD: add_compile_options("$<$<COMPILE_LANGUAGE:Fortran>:-assume
> >> realloc_lhs>")
> >>
> >> you get a single quoted token "-assume realloc_lhs" on the compile
> >line
> >> which the compiler doesn't understand. The correct thing is
> >>
> >>
> >> GOOD:
> >add_compile_options("$<$<COMPILE_LANGUAGE:Fortran>:-assume;realloc_lhs>")
> >>
> >>
> >> On Sun, Jun 3, 2018 at 7:33 AM Neil Carlson
> ><neil.n.carlson at gmail.com>
> >> wrote:
> >>
> >>>
> >>> On Sun, Jun 3, 2018 at 7:08 AM Marc CHEVRIER
> ><marc.chevrier at gmail.com>
> >>> wrote:
> >>>
> >>>> [...]
> >>>> GOOD: target_compile_options(someTarget PRIVATE
> >>>>  "$<$<COMPILE_LANGUAGE:CXX>:-Wall;-Wextra>")
> >>>>
> >>>
> >>> Ah, that's it. Never occurred to me to quote the whole thing,
> >thinking
> >>> that would turn the generator expression into a literal string and
> >not be
> >>> interpreted.  Thanks!
> >>>
> >>>
> >>>
> >> --
> >>
> >> 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:
> >> https://cmake.org/mailman/listinfo/cmake
> >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180603/b3163422/attachment.html>


More information about the CMake mailing list