2014-10-08 81 views
1

理論上cmake應該支持globbing表達式,有點像glob命令。cmake中的全局表達式:我可以使用括號嗎?

但是,我無法找到匹配的方法,例如,「3個數字的序列,或者什麼都不是」。我猜它應該是這樣的:

file (GLOB outputVar *theImportantStringIWantedToMatch{[0-9][0-9][0-9],}.dll) 

但它似乎並沒有工作。例如:

*opencv_*flann{[0-9][0-9][0-9],}.a 

不匹配一個名爲

libopencv_flann.a 

(也應該匹配,例如libopencv_flann462.a)

它甚至不匹配,即使我把一個表達這樣的:

*opencv_*flann{.,.}a 

轉義括號或逗號沒有幫助。有沒有辦法讓括號起作用,或者我試圖實現的表達方式有什麼替代方法?

回答

0

所以,就目前唯一的解決辦法,我可以拿出被重複的表達在2個版本,分別是:

file (GLOB outputVar *theImportantStringIWantedToMatch[0-9][0-9][0-9].dll 
        *theImportantStringIWantedToMatch.dll 
    ) 
+0

這看起來像它的文件命令。我不知道爲什麼沒有REGEX命令的文件,它似乎是一個明顯的補充。如果您可以使用接受REGEX的命令之一,那麼您可以編寫一個表達式來匹配它們。 Globs只接受*和[],所以你不能做你希望在你的問題中做的事情。 – escrafford 2014-10-14 15:24:58

相關問題