项目开发,需要在项目中使用第三方库。但是考虑到需要用到的太多,为了提高项目的可用性,决定使用第三方导入的方式(使用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
网友评论