Вызов add_subdirectory
только для каталогов с CMakeLists.txt
This commit is contained in:
parent
8d27622312
commit
81d61deb9b
@ -11,7 +11,7 @@ myx_download_content
|
||||
|
||||
Обязательный параметр: `NAME` - имя целевого каталога.
|
||||
Параметр `DOWNLOAD_DIR` содержит имя каталога, в который будет загружаться
|
||||
содержимое (по умолчанию `downloads`).
|
||||
содержимое (по умолчанию `_downloads`).
|
||||
Параметр `GIT_REPOSITORY` содержит адрес внешнего проекта, который нужно
|
||||
загрузить с помощью git.
|
||||
Параметр `GIT_TAG` содержит используемые метку, идентификатор коммита или
|
||||
@ -55,27 +55,28 @@ function(myx_download_content NAME)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${ARG_DOWNLOAD_DIR})
|
||||
endif()
|
||||
|
||||
set(WORK_DIR "${ARG_DOWNLOAD_DIR}/${NAME}")
|
||||
if(ENABLE_DOWNLOAD_CONTENT AND GIT_EXECUTABLE AND ARG_GIT_REPOSITORY)
|
||||
if(NOT IS_DIRECTORY ${ARG_DOWNLOAD_DIR}/${NAME})
|
||||
if(NOT IS_DIRECTORY ${WORK_DIR})
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} clone ${ARG_GIT_REPOSITORY} ${NAME}
|
||||
WORKING_DIRECTORY ${ARG_DOWNLOAD_DIR})
|
||||
else()
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} fetch
|
||||
WORKING_DIRECTORY ${ARG_DOWNLOAD_DIR}/${NAME})
|
||||
WORKING_DIRECTORY ${WORK_DIR})
|
||||
endif()
|
||||
if(ARG_GIT_TAG)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${ARG_GIT_TAG}
|
||||
WORKING_DIRECTORY ${ARG_DOWNLOAD_DIR}/${NAME})
|
||||
WORKING_DIRECTORY ${WORK_DIR})
|
||||
else()
|
||||
if(ARG_AUTOPULL)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} pull
|
||||
WORKING_DIRECTORY ${ARG_DOWNLOAD_DIR}/${NAME})
|
||||
WORKING_DIRECTORY ${WORK_DIR})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_SCRIPT_MODE_FILE)
|
||||
add_subdirectory(${ARG_DOWNLOAD_DIR}/${NAME} EXCLUDE_FROM_ALL)
|
||||
if(NOT CMAKE_SCRIPT_MODE_FILE AND EXISTS "${WORK_DIR}/CMakeLists.txt")
|
||||
add_subdirectory(${WORK_DIR} EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user