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