我想检查CMAKE_SOURCE_DIR变量是否以特定名称结尾。我需要使用MATCHES它,但是它似乎不起作用。
我写过:
IF(CMAKE_SOURCE_DIR MATCHES "*MyFolderName")
# code
ENDIF(CMAKE_SOURCE_DIR MATCHES "*MyFolderName")
Run Code Online (Sandbox Code Playgroud)
但这行不通。我收到以下错误:
RegularExpression::compile(): ?+* follows nothing.
RegularExpression::compile(): Error in compile
Run Code Online (Sandbox Code Playgroud)
我想要修理比赛吗?
通常,在正则表达式中,“ *”表示“在零次或多次之前重复”。CMake也不例外。要在字符串末尾进行匹配,请使用$:
CMAKE_SOURCE_DIR MATCHES "MyFolderName$"
Run Code Online (Sandbox Code Playgroud)
CMake正则表达式在这里描述。
MATCH 需要正则表达式,而不是“文件全局”(通配符)。
if(CMAKE_SOURCE_DIR MATCHES ".*MyFolderName")
# ...
endif()
Run Code Online (Sandbox Code Playgroud)
甚至试试这个:.*/MyFolderName。但它也会匹配/some/MyFolderName/path....*/MyFolderName$用于匹配最后一个路径名组件。
| 归档时间: |
|
| 查看次数: |
4233 次 |
| 最近记录: |