cmake неправильно анализирует аргументы в команде add_custom_target - PullRequest
2 голосов
/ 31 января 2012

Я написал команду cmake следующим образом:

add_custom_target(testar
              COMMAND clearmake -C gnu ${CMD_ARGS})

CMD_ARGS определяется в командной строке как:

cmake -DCMD_ARGS="-d -w" 

Но в сгенерированном make-файле -d -w изменяется на -d\ -w; перед всеми пробелами добавлена ​​косая черта, в результате чего:

clearmake -C gnu -d\ -w 

Если я использую опцию VERBATIM в add_custom_target, cmake не добавляет косую черту, но цитирует аргумент как

clearmake -C gnu "-d -w"

что неверно, я бы хотел:

clearmake -C gnu -d -w

Какой синтаксис необходим для генерации вышеуказанной цели?

1 Ответ

2 голосов
/ 31 января 2012

Предполагается, что аргументами будет list, а не "-d -w" (это просто строка). Вы можете сделать две вещи:

  1. Передать аргументы как -DCMD_ARGS = "- d; -w" (точка с запятой)
  2. Используйте команду Отдельные_аргументы на CMD_ARGS, прежде чем передать ее в add_custom_target (что делает пробелы точкой с запятой для создания правильного list).

Ничего в команде add_custom_target менять не нужно, ввод в CMake неправильный, который можно исправить с помощью 1 или обработать с помощью 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...