【发布时间】:2016-06-08 09:35:22
【问题描述】:
我一直在使用外部项目来使库保持最新状态很长一段时间 类似:
include(AddAsio)
像这样编写 AddAsio.cmake 脚本:
cmake_minimum_required(VERSION 2.8.8)
include(ExternalProject)
find_package(Git REQUIRED)
ExternalProject_Add(
asio
PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/include/ext
GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
GIT_TAG master
TIMEOUT 10
UPDATE_COMMAND ${GIT_EXECUTABLE} pull
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
)
ExternalProject_Get_Property(asio source_dir)
set(ASIO_INCLUDE_DIR ${source_dir}/asio/include CACHE INTERNAL "Path to include folder for Asio")
include_directories(${INCLUDE_DIRECTORIES} ${ASIO_INCLUDE_DIR})
message("asio source dir" ${ASIO_INCLUDE_DIR})
很长一段时间都没有问题,但是昨天我遇到了一个问题,当时我的互联网提供商无法正常工作,我尝试离线工作。
此脚本在每次构建时都会尝试更新(git pull,查看外部项目定义),甚至所有必需的标头都确实存在。并在没有连接的情况下中断构建过程。
知道如何保持这种组件更新机制,但在本地已经存在库的情况下不停止构建?
【问题讨论】: