gpt4 book ai didi

CMake在文件(GLOB_RECURSE)之后从给定模式中排除文件

转载 作者:行者123 更新时间:2023-12-04 22:52:22 34 4
gpt4 key购买 nike

我有一个小库,其文件结构如下:

CMakeLists.txt
LibFoo/
Foo.h
FooWin.cpp
FooWin.inl
FooPosix.cpp
FooPosix.inl

当我必须在特定操作系统(例如 Windows)中构建库时,在使用宏使用文件(GLOB_RECURSE)之前,它们应该包含在列表中:

macro( add_recursive dir retVal)
file( GLOB_RECURSE ${retVal} ${dir}/*.h ${dir}/*.cpp ${dir}/*.c ${dir}/*.inl )
endmacro()

我的排除模式是这样的(当 Windows 是构建主机时): *Posix.* 但不起作用,我尝试了这种方法:

macro( add_recursive dir retVal pattern)
file( GLOB_RECURSE ${retVal} ${dir}/*.h ${dir}/*.cpp ${dir}/*.c ${dir}/*.inl EXCLUDE PATTERN "${pattern}")
endmacro()

但 POSIX 文件仍然存在,CMake 不会报告错误或任何有关此的建议。

最佳答案

您可以使用列表过滤来删除 GLOB_RECURSE 之后的项目:

list(FILTER ${retVal} EXCLUDE REGEX "Posix.")

关于CMake在文件(GLOB_RECURSE)之后从给定模式中排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32016750/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com