使用CMake编译其他外部库(不带CMakeLists.txt)

Pat*_*rik 4 c++ makefile cmake

short - 当二进制文件/库只有一个makefile时,是否有可能用CMake从项目中构建外部二进制文件/库?

所以你有自己的项目,src-tree中的一堆CMakeLists.txt以及带有源文件的外部库.您的源依赖于此库,并且某些二进制文件/库希望链接它.如果只有一个makefile或Visual Studio项目文件并且没有给定的CMakeLists.txt,那么如何编译这个外部库呢?有没有机会调用CMake的configure/make?或者在Windows下使用VS运行批处理编译?还是其他什么?

感谢您对此的帮助......

Mar*_*ell 18

听起来你想要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}"
   )

2009年10月的消息来源也有一篇关于外部项目的文章.使用外部项目,您可以调用主机系统上的任何make命令,我们使用他们在Windows,Mac和Linux上提供的configure命令构建Qt.