cmake w czym "Generator expressions" sa lepsze od if() ?

0

Sporo oglądam różnych projektów na githubie , czasmi pojawiaja sie dziwne konstrukcje " $<$<" i tak dla nieprzyzwyczajonego oka to wygląda koszmarnie

np.

target_compile_options(
        ${LIB_NAME} PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,Clang,AppleClang>:-Wall -O3 -fPIC>
                    PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wall -O3 -fPIC>
                    PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,MSVC>: /O2>
)

Czy to rozwiązanie oprócz tego że bedze mniej linijek kodu ma jeszcze jakieś zalety ?
Zakładam że za miesiąc juz to będzie dla mnie normalne jak trochę poużywam

2

Nie wszystko chyba zrobisz ifem. Zbuduj object library a potem spróbuj polinkować pojedyncze pliczki .o ;)

1

Jedne działają w czasie konfiguracji, drugie w czasie generowania systemu budowania.
Disclaimer: może coś pokręciłem, za jakiś czas poszukam dobrego źródła, w którym to przeczytałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1