为cmake项目添加configure.in的子项目,编译全程不需要手动
时间: 2024-03-21 14:41:17 浏览: 147
首先,CMake不支持configure.in文件,它是用于autoconf和automake工具链的。但是,你可以使用CMake的ExternalProject模块来添加一个configure.in的子项目。
以下是一个例子,展示如何使用ExternalProject模块添加一个子项目:
```
include(ExternalProject)
ExternalProject_Add(
myconfigure
PREFIX myconfigure
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/myconfigure
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/myconfigure/configure
BUILD_COMMAND make
INSTALL_COMMAND ""
)
# 将myconfigure的生成结果包含到主项目中
include_directories(${CMAKE_CURRENT_BINARY_DIR}/myconfigure/include)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/myconfigure/lib)
```
在这个例子中,我们通过ExternalProject_Add添加了一个名为myconfigure的子项目。其中,PREFIX参数指定了生成的文件目录,SOURCE_DIR参数指定了子项目的源代码目录,CONFIGURE_COMMAND参数指定了配置命令,BUILD_COMMAND参数指定了编译命令,INSTALL_COMMAND参数指定了安装命令。
在主项目中,我们通过include_directories和link_directories将myconfigure的生成结果包含到主项目中,这样就可以在主项目中使用myconfigure生成的头文件和库文件了。
注意,这个例子中假设myconfigure子项目已经被正确地编译和安装。如果你需要在主项目中自动编译和安装子项目,你可以在ExternalProject_Add中设置BUILD_IN_SOURCE参数和INSTALL_DIR参数。
阅读全文