2017-07-26 68 views
3

如從的configure_filedocumentation,它具有用於將有用@ONLY參數:

限制變量代換的形式@[email protected]的引用。這對於配置使用${VAR}語法的腳本很有用。

到目前爲止好。

現在,我在那裏我已經同時包含@[email protected]${BAR}文件的情況下,我想與來自我CMakeLists.tx一個變量來代替S{BAR}。另一方面,我不希望configure_file試圖替換@[email protected]
換句話說,我需要像$ONLY參數那樣的作爲@ONLY,但是相反的情況。

我現在有什麼機會可以做到這一點嗎?
我試着在我的@前面加反斜槓,但是這樣我得到一個包含幾個\@的文件,這並不是我所需要的。

回答

3

至少我發現了一個可行的解決方案,即使我不確定這是否是最好的方法。
如果沒有解決方案,我將它留作未來讀者的答案。

假設線有待於推敲看起來像這樣:

@[email protected]/${PROJECT_NAME} 

爲了能夠當你的文件傳遞給configure_file跳過@[email protected]部分,您可以更改行,因爲它遵循:

@@[email protected]@[email protected]@/${PROJECT_NAME} 

configure_file將匹配並用空字符串替換@[email protected]部分,並忘記其他@左右,以便您在替換後獲得以下行:

@[email protected]/TheNameOfTheProject 

很骯髒,它可以打破與cmake未來的版本中它實際上是利用了錯誤(呃,我不知道我可以這樣調用它實際上)的工具。
無論如何,它的工作原理,可以爲那些仍在尋找可能的解決方案的人提供可行的方法。

相關問題