简而言之——当二进制文件/库仅提供一个 makefile 时,是否可以使用 CMake 从项目中构建外部二进制文件/库?
所以你有自己的项目,源文件树中的一堆 CMakeLists.txt 和这个带有源文件的外部库。你的资源依赖于这个库,一些二进制文件/库想要链接到它。如果这个外部库只有一个 makefile 或 Visual Studio 项目文件而没有给定的 CMakeLists.txt,将如何编译它? 是否有机会从 CMake 中调用 configure/make?或者在 Windows 下使用 VS 运行批编译?还是别的?
感谢您在这方面的帮助...
最佳答案
听起来您想要 CMake 的外部项目。在开发 Titan 构建系统时,我已经广泛使用它,它提供了一种管理多个源外构建的方法。您可以包含 ExternalProject,然后像下面这样的东西将构建项目:
ExternalProject_Add(Qt DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR} URL ${qt_file} UPDATE_COMMAND "" SOURCE_DIR ${qt_source} BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ${qt_configure} BUILD_COMMAND ${qt_build} INSTALL_COMMAND "${qt_install}" )
October 2009 issue of the source 中有一篇关于外部项目的文章也。使用外部项目,您可以调用主机系统上可用的任何 make 命令,我们在 Windows、Mac 和 Linux 上使用他们提供的配置命令构建 Qt。
关于c++ - 使用 CMake 编译其他外部库(没有 CMakeLists.txt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489056/