Cmake规则中的正则表达式不正确

vbopmzt1  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(227)

我只想从返回的运行时依赖项列表中排除一个绝对路径。我使用了正则表达式,但是我搞不清楚CMake的正则表达式格式。它在在线检查器中有效,但在Cmake中无效。
如何仅排除此路径“/lib 64”?
下面的代码:

install(CODE [[
      file(GET_RUNTIME_DEPENDENCIES
        EXECUTABLES $<TARGET_FILE:myApp1> $<TARGET_FILE:myApp2> $<TARGET_FILE:myApp3>
        RESOLVED_DEPENDENCIES_VAR RESOLVED_DEPS
        UNRESOLVED_DEPENDENCIES_VAR UNRESOLVED_DEPS
        CONFLICTING_DEPENDENCIES_PREFIX CONFLICTING_DEPENDENCIES
        POST_EXCLUDE_REGEXES "^(\/lib64)$"
      )
...
]]

产生警告:

when parsing string

    ^(\/lib64)$

  Invalid escape sequence \/

如果我将其更改为“^(/lib 64)$”-它只是不排除它...

e3bfsja2

e3bfsja21#

我猜您希望排除该目录中的文件 ; 因此您可能需要类似"^/lib64/[^/]*$"的内容
如果还想匹配子目录,那么[^/]*$部分是多余的;则仅在前缀"^/lib64/"上进行匹配就足够了。

相关问题