Оптимизация работы с загружаемым содержимым из git

This commit is contained in:
Andrei Astafev 2023-08-04 10:16:31 +03:00
parent 81d61deb9b
commit 81f5bbbd1e

View File

@ -7,7 +7,8 @@ myx_download_content
myx_download_content(NAME
[ DOWNLOAD_DIR dir ] |
[ GIT_REPOSITORY url ] |
[ GIT_TAG tag ] )
[ GIT_TAG tag ] |
[ AUTOFETCH ] | [ AUTOPULL ] )
Обязательный параметр: `NAME` - имя целевого каталога.
Параметр `DOWNLOAD_DIR` содержит имя каталога, в который будет загружаться
@ -16,8 +17,10 @@ myx_download_content
загрузить с помощью git.
Параметр `GIT_TAG` содержит используемые метку, идентификатор коммита или
ветку в загружаемом репозитории.
Если указана опция `AUTOPULL`, то загруженный репозиторий будет
обновляться автоматически.
Если указана опция `AUTOFETCH`, то на этапе конфигурирования для загруженного
репозитория будут скачиваться изменения.
Если указана опция `AUTOPULL`, то на этапе конфигурирования из загруженного
репозитория будет изменяться рабочий каталог.
#]=======================================================================]
@ -26,7 +29,7 @@ find_package(Git QUIET)
option(ENABLE_DOWNLOAD_CONTENT "Enable download content" ON)
function(myx_download_content NAME)
set(options AUTOPULL)
set(options AUTOFETCH AUTOPULL)
set(oneValueArgs)
set(multiValueArgs DOWNLOAD_DIR GIT_REPOSITORY GIT_TAG)
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@ -61,9 +64,11 @@ function(myx_download_content NAME)
execute_process(COMMAND ${GIT_EXECUTABLE} clone ${ARG_GIT_REPOSITORY} ${NAME}
WORKING_DIRECTORY ${ARG_DOWNLOAD_DIR})
else()
if(ARG_AUTOFETCH)
execute_process(COMMAND ${GIT_EXECUTABLE} fetch
WORKING_DIRECTORY ${WORK_DIR})
endif()
endif()
if(ARG_GIT_TAG)
execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${ARG_GIT_TAG}
WORKING_DIRECTORY ${WORK_DIR})