2012-01-31 68 views
1

我寫這樣的cmake的命令:cmake的解析參數

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

CMD_ARGS上象命令行定義:

cmake -DCMD_ARGS="-d -w" 

但是在生成的生成文件時,-d -w改爲-d\ -w;這一切空格前加一個斜線,從而導致:

clearmake -C gnu -d\ -w 

如果我使用add_custom_targetVERBATIM選項,cmake的不加斜槓,但它引用像

clearmake -C gnu "-d -w" 

的說法是不正確,我想:

clearmake -C gnu -d -w 

什麼是生成上述目標所需的語法?

回答

2

參數預計爲list,其中「-d -w」不是(它只是一個字符串)。你可以做兩件事情:

  1. 傳入參數作爲-DCMD_ARGS =「 - d; -w」(空格是一個分號)
  2. 使用separate_argumentsCMD_ARGS你將它傳遞到add_custom_target之前命令(這使空格分號生成一個合適的list)。在add_custom_target命令

沒有什麼需要改變,輸入到CMake的不正確,它可以固定1或2

+0

處理非常感謝你非常多,它的工作原理^^。 – Kery 2012-01-31 14:43:02

+0

@ tpg2114我不明白爲什麼'COMMAND'中的前幾個東西不需要用分號隔開?它是'命令clearmake -C gnu $ {CMD_ARGS}',但爲什麼不是'COMMAND clearmake; -C; gnu; $ {CMD_ARGS}'? – 2016-09-28 14:10:25