我想检查CMAKE_SOURCE_DIR
变量是否以特定的名称结尾。我需要使用MATCHES
,但它似乎不起作用。
我写过:
if(CMAKE_SOURCE_DIR MATCHES "*MyFolderName")
# code
endif()
但它不起作用。我得到以下错误:
RegularExpression::compile(): ?+* follows nothing.
RegularExpression::compile(): Error in compile
我该怎么做才能修复匹配?
2条答案
按热度按时间qzlgjiam1#
通常,在正则表达式中,“*”表示“重复前面的零次或多次”。CMake也不例外。对于字符串末尾的匹配,请使用
$
:CMake正则表达式在这里描述。
toiithl62#
MATCH
需要正则表达式,而不是“文件glob”(通配符)。或者试试这个:
.*/MyFolderName
。但它也将匹配/some/MyFolderName/path
...使用.*/MyFolderName$
匹配最后一个路径名组件。