我正在使用 Cmake 从源代码编译库的静态版本。
源代码的结构如下所示:
src/
module1/
x.cpp
x.h
...
module2/
y.cpp
y.h
...
等等...
编译库的静态版本并不困难。但是,出于分发目的,我只想分发标头 ( x.h, y.h, ...
) 和静态库 ( module1.a, module2.a, ...
)。
GCC 或 CMAKE 中是否有一些命令可以自动收集所有标题并将它们放入单独的文件夹中?
我知道我可以手动分离源代码和标头,或者我可以简单地分发所有代码(源代码和标头),但这对于我的特定用例来说是浪费和不可取的。或者,我可以编写一个非常简单的 Python 脚本来执行此操作,但在我看来,这可能是一个非常常见的场景。所以我猜 Gcc 或 Cmake 中有一些东西可以做到这一点。
注意:我不负责维护代码库,所以我对项目的结构没有发言权。如果是,我可以将代码分成src
和include
文件夹。
最好的办法是使用 cmake glob 并安装所有工件。
# append to your existing CMakeLists.txt
install(TARGETS module1 module2 #adjust to use your names
ARCHIVE DESTINATION lib)
file(GLOB_RECURSE header_list "*.h") #adjust if necessary
install(FILES ${header_list}
DESTINATION include)
请注意,globbing 并不完美,文件列表仅在运行 cmake 时更新(即,它不会自行检测添加或删除的文件)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句