[CMake] Spaces in conditional output of generator expressions

Hendrik Sattler post at hendrik-sattler.de
Sun Jun 3 12:40:36 EDT 2018



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


More information about the CMake mailing list