CMake學習筆記05--ExternalProject_Add的應用

 ExternalProject命令可以很好的解決項目中使用第三方庫,提高項目的可用性。

include(ExternalProject)

ExternalProject_Add(xxxxxx
        SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx
        BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx
        CONFIGURE_COMMAND  ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx.sh xxxxxx
        BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/xxxxxx.sh xxxxxx
        INSTALL_COMMAND "")

add_custom_target(xxxxxx ALL
    COMMAND echo "xxxxxx"
    DEPENDS x1 x2 x3 x4
)

通過ExternalProject安裝gflag-2.2.2

1、創建名爲gflag-2.2.2.cmake的文件

在項目中創建名爲Cmake的文件夾下創建名爲gflag-2.2.2.cmake的文件

include(ExternalProject)

set(GFLAG_ROOT          ${CMAKE_BINARY_DIR}/thirdparty/gflag-2.2.2)
set(GFLAG_LIB_DIR       ${GFLAG_ROOT}/lib)
set(GFLAG_INCLUDE_DIR   ${GFLAG_ROOT}/include)

set(GFLAG_URL           https://github.com/gflags/gflags/archive/v2.2.2.zip)
set(GFLAG_CONFIGURE     cd ${GFLAG_ROOT}/src/gflag-2.2.2 && cmake -D CMAKE_INSTALL_PREFIX=${GFLAG_ROOT} .)
set(GFLAG_MAKE          cd ${GFLAG_ROOT}/src/gflag-2.2.2 && make)
set(GFLAG_INSTALL       cd ${GFLAG_ROOT}/src/gflag-2.2.2 && make install)

ExternalProject_Add(gflag-2.2.2
        URL                   ${GFLAG_URL}
        DOWNLOAD_NAME         gflag-2.2.2.zip
        PREFIX                ${GFLAG_ROOT}
        CONFIGURE_COMMAND     ${GFLAG_CONFIGURE}
        BUILD_COMMAND         ${GFLAG_MAKE}
        INSTALL_COMMAND       ${GFLAG_INSTALL}
)

2、最後是在項目根目錄下的CMakeLists.txt中使用include調用這個cmake即可

include(cmake/gflag-2.2.2.cmake)
include(cmake/hwloc-1.11.cmake)
include(cmake/protobuf-2.6.1.cmake)
include(cmake/protobuf-2.6.1-compile.cmake)

參考文獻:

https://blog.csdn.net/xueqiu1141/article/details/84074618

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章