Заставьте CMake выполнить оценку и форматирование строки

У меня проблема, когда я получаю ввод в переменную 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, чтобы каким-то образом заменить переменные в строке?

В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
0
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Да, я не смог найти никаких функций eval, и каждая часть Интернета, которую я просмотрел, говорит то же самое. Спасибо за ответ.

Siho 28.02.2019 16:14

Другие вопросы по теме