cmake笔记:外部项目的导入(ExternalProject_Add)

项目开发,需要在项目中使用第三方库。但是考虑到需要用到的太多,为了提高项目的可用性,决定使用第三方导入的方式(使用ExternalProject_Add指令)。
官方说明

基本说明

使用之前

在使用使用ExternalProject_Add之前需要导入插件

include(ExternalProject)

关于导入方式

导入的工程可以直接在网络端(使用git/svn等工具)也或为本地URL,具体配置如下图:
image

其中URL可以直接使用本地地址,但是文件必需为压缩文件

使用配置

先贴代码:

set(libhello_src ${CMAKE_CURRENT_SOURCE_DIR}/libhello/src)
set(libhello_binary ${CMAKE_CURRENT_SOURCE_DIR}/libhello/build)
set(libhello_download ${CMAKE_CURRENT_SOURCE_DIR}/libhello/download)
set(libhello_install ${CMAKE_CURRENT_SOURCE_DIR}/libhello/install)

ExternalProject_Add(libhello
        URL    "/Users/wangshengxing/project/c/cmake/sharelib.zip"
        DOWNLOAD_DIR ${libhello_download}
        SOURCE_DIR        "${libhello_src}"
        CONFIGURE_COMMAND ${CMAKE_COMMAND} ${libhello_src}
        -DCMAKE_INSTALL_PREFIX=${libhello_install}
        BINARY_DIR  ${libhello_binary}
        INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install
        )

URL:代码外部依赖的路径
DOWNLOAD_DIR:存放下载文件的路径
SOURCE_DIR:存入编译源文件的路径
CONFIGURE_COMMAND:执行cmake文件的指令,类似平常的"cmake …/"
BINARY_DIR:输出目前的目录,也就是平常使用的build目录
INSTALL_COMMAND:等效于手动输入"make install"

以上编译完工程后会在libhello文件夹下输出各类文件:

image

猜你喜欢

转载自blog.csdn.net/wsx1048/article/details/108557715