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