Chciałbym mapować zmienną do łańcucha, jak w tym przykładzie w mapie kodu Pseudo-Cmake (MyMap "Val1" "Key1" "Val2" "Key2") #

0
AndrewBloom 15 marzec 2021, 14:31

1 odpowiedź

Najlepsza odpowiedź

Cmake nie obsługuje operatorów [] lub {}, ale mapowanie można osiągnąć przez schemat nazewnictwa dla zmiennej:

# The naming scheme: mymap_<val>
set(mymap_val1 key1) # Maps val1 => key1
set(mymap_val2 key2) # Maps val2 => key2
# ...
set(avar val1) # Some key
message("Key ${avar} is mapped into: ${mymap_${avar}}")

W ten sposób "mapowanie" jest aktywnie używany przez sam Cmake.

Na przykład. zmienna Cmake_ & LT; Lang & GT; _compiler mapuje język programowania do kompilatora i Zmienna Cmake_ & LT; Lang & GT; _flags_ Config & GT; Wpisz w flagi kompilatora, specyficzne dla tej konfiguracji.

2
Tsyvarev 15 marzec 2021, 13:18