diff --git a/MyxCMake/lib/DownloadContent.cmake b/MyxCMake/lib/DownloadContent.cmake index 44bdc40..a5e0833 100644 --- a/MyxCMake/lib/DownloadContent.cmake +++ b/MyxCMake/lib/DownloadContent.cmake @@ -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()