From 81d61deb9bd3ae55586d815c63cecfa0c24f8767 Mon Sep 17 00:00:00 2001 From: Andrei Astafev Date: Thu, 3 Aug 2023 16:54:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=B7=D0=BE=D0=B2=20`add=5Fsubdire?= =?UTF-8?q?ctory`=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2?= =?UTF-8?q?=20=D1=81=20`CMakeLists.txt`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MyxCMake/lib/DownloadContent.cmake | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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()