У меня проблема, когда я получаю ввод в переменную CONFIG_VAR, которая выглядит так '$ENV{FOO}/path'. Я хочу, чтобы CMake оценил/отформатировал эту строку, чтобы заменить '$ENV{FOO}' на переменную среды FOO=bar. Эта переменная поступает из Kconfig (если это имеет значение), когда я ее распечатываю, это просто чистая строка.
Я пытался сделать ${CONFIG_VAR} это дает '$ENV{FOO}/path' Я пытался сделать ${${CONFIG_VAR}} это дает пусто . Как и ожидалось, вы пытаетесь найти несуществующую переменную $ENV{FOO}/path. Я зашел так далеко, чтобы выполнить соответствие REGEX, которое выходит $ENV{FOO}, но выполнение ${$ENV{FOO}} все еще не дало того, что я хотел. Поэтому мне интересно, есть ли способ инициировать форматирование строки CMake, чтобы каким-то образом заменить переменные в строке?


Кажется сложным реализовать eval-подобную функцию внутри CMake, но вы можете записать свое выражение в файл с помощью configure_file, file(WRITE) или file(APPEND), а затем include этого файла.
Да, я не смог найти никаких функций eval, и каждая часть Интернета, которую я просмотрел, говорит то же самое. Спасибо за ответ.