From c92c8540356bd1ffc017a311938bbedb2c1feedc Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Sun, 30 Jul 2023 19:24:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8C=20=D1=81=20MyxCMake=202.4.?= =?UTF-8?q?5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ CMakeLists.txt | 10 ++-------- cmake/myx/MyxCMakeConfigVersion.cmake | 2 +- cmake/myx/lib/DownloadContent.cmake | 4 ++-- cmake/myx_setup.cmake | 4 ++-- myx_download_content.cmake | 14 ++++++++++++++ 6 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 myx_download_content.cmake diff --git a/.gitignore b/.gitignore index 5aff1be..e6fcb65 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ build # Каталог для тестирования установки _output +# Каталог для скачивания необходимых файлов +_downloads + # Файлы настроек, редактируемые во время отладки, # за исключением шаблонных файлов files/etc/*.conf diff --git a/CMakeLists.txt b/CMakeLists.txt index 1463957..8413c9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,14 +13,8 @@ set(${PROJECT_NAME}_AUTHOR_EMAIL "dev@246060.ru") # Рекомендуемый способ подключения MyxCMake include(cmake/myx_setup.cmake) - -# Используемые библиотеки -if(PROJECT_IS_TOP_LEVEL) - myx_add_external_target(myx-example-interface-library - GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-interface-library) - myx_add_external_target(myx-example-object-library - GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-object-library) -endif() +# Правила загрузки требуемых файлов +include(myx_download_content.cmake) # Цель для создания исполняемого файла myx_add_executable(${PROJECT_NAME}) diff --git a/cmake/myx/MyxCMakeConfigVersion.cmake b/cmake/myx/MyxCMakeConfigVersion.cmake index c4ee4b1..a514961 100644 --- a/cmake/myx/MyxCMakeConfigVersion.cmake +++ b/cmake/myx/MyxCMakeConfigVersion.cmake @@ -1,4 +1,4 @@ -set(MYX_CMAKE_PACKAGE_VERSION "2.4.3") +set(MYX_CMAKE_PACKAGE_VERSION "2.4.5") if(MYX_CMAKE_PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) set(PACKAGE_VERSION_COMPATIBLE FALSE) else() diff --git a/cmake/myx/lib/DownloadContent.cmake b/cmake/myx/lib/DownloadContent.cmake index 4686d79..ad4ef03 100644 --- a/cmake/myx/lib/DownloadContent.cmake +++ b/cmake/myx/lib/DownloadContent.cmake @@ -21,7 +21,7 @@ myx_download_content find_package(Git QUIET) -option(ENABLE_DONWLOAD_CONTENT "Enable download content" ON) +option(ENABLE_DOWNLOAD_CONTENT "Enable download content" ON) function(myx_download_content NAME) set(options) @@ -41,7 +41,7 @@ function(myx_download_content NAME) endif() if(NOT ARG_DOWNLOAD_DIR) - set(ARG_DOWNLOAD_DIR downloads) + set(ARG_DOWNLOAD_DIR "_downloads") endif() if(CMAKE_SCRIPT_MODE_FILE) diff --git a/cmake/myx_setup.cmake b/cmake/myx_setup.cmake index 2ccb1d4..6f2065f 100644 --- a/cmake/myx_setup.cmake +++ b/cmake/myx_setup.cmake @@ -20,11 +20,11 @@ if(ENV{MYX_CMAKE_DIR}) set(MYX_CMAKE_DIR $ENV{MYX_CMAKE_DIR}) endif() if(MYX_CMAKE_DIR) - find_package(MyxCMake 2.4.3 REQUIRED CONFIG PATHS ${MYX_CMAKE_DIR} NO_DEFAULT_PATH) + find_package(MyxCMake 2.4.5 REQUIRED CONFIG PATHS ${MYX_CMAKE_DIR} NO_DEFAULT_PATH) myx_message_notice("== MyxCMake directory: ${MyxCMake_CONFIG} ==") else() if(MYX_CMAKE_USE_SYSTEM) - find_package(MyxCMake 2.4.3 REQUIRED) + find_package(MyxCMake 2.4.5 REQUIRED) myx_message_notice("== MyxCMake directory: ${MyxCMake_CONFIG} ==") else() include(${PROJECT_SOURCE_DIR}/cmake/myx/MyxCMakeConfig.cmake) diff --git a/myx_download_content.cmake b/myx_download_content.cmake new file mode 100644 index 0000000..5814b54 --- /dev/null +++ b/myx_download_content.cmake @@ -0,0 +1,14 @@ +# Подключение файла с функцией для загрузки содержимого +# командой cmake в режиме запуска скриптов. Пример команды: +# +# cmake -P myx_download_content.cmake +# +if(CMAKE_SCRIPT_MODE_FILE) + include("cmake/myx/lib/DownloadContent.cmake") +endif() + +myx_download_content(myx-example-interface-library + GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-interface-library) +myx_download_content(myx-example-object-library + GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-object-library) +