【发布时间】:2018-12-15 19:29:22
【问题描述】:
我正在开发一个项目,该项目使用包含在子目录中的库,但是其中一个不使用 CMake。
目录结构如下:
- src
-- tinyxml2
-- ziplib
-- [sources-here]
我如何包含ziplib,因为它不使用 CMake 作为其构建工具?
【问题讨论】:
标签: cmake
我正在开发一个项目,该项目使用包含在子目录中的库,但是其中一个不使用 CMake。
目录结构如下:
- src
-- tinyxml2
-- ziplib
-- [sources-here]
我如何包含ziplib,因为它不使用 CMake 作为其构建工具?
【问题讨论】:
标签: cmake
CMake 支持通过add_custom_command 执行任意命令。所以无论ziplib 使用什么构建系统,都会有一种方法可以通过终端命令来触发它。
如果您从https://bitbucket.org/wbenny/ziplib 引用ziplib 并且您恰好为Windows 构建它,那么您可以在CMakeLists.txt 文件中添加类似于以下内容:
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/build.log
COMMAND msbuild /m /t:Build /p:Platform=x64 /p:Configuration=Release ZipLib.sln
)
How to Run a Basic `add_custom_command` in CMake中有对add_custom_command的很好描述。
【讨论】:
target_link_libraries 是您要查找的命令。 stackoverflow.com/questions/14468678/… 描述了它的用法。