я использовал внешние проекты, чтобы сохранить библиотеки в актуальном состоянии в течение длительного времени что-то вроде:CMake: внешнее обновление проекта и работать в автономном режиме
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, посмотреть на определение внешнего проекта) каждый раз при сборке, даже все необходимые заголовки там существуют. и прерывает процесс сборки в случае отсутствия соединения.
любая идея, как сохранить этот механизм обновления компонентов, но не останавливать здание, если библиотеки уже существуют локально?