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 <p...@hendrik-sattler.de> a écrit : > > > Am 3. Juni 2018 16:33:12 MESZ schrieb Marc CHEVRIER < > marc.chevr...@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.carl...@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.carl...@gmail.com> > >> wrote: > >> > >>> > >>> On Sun, Jun 3, 2018 at 7:08 AM Marc CHEVRIER > ><marc.chevr...@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 > >> >
-- 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