@willis.streich
CMake можно использовать с несколькими пакетными менеджерами, используя внешние проекты.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
include(ExternalProject) # Подключаем модуль внешних проектов # Внешний проект A ExternalProject_Add(projectA DOWNLOAD_COMMAND <command to download projectA> # Ко***** для загрузки проекта A SOURCE_DIR <source directory of projectA> # Директория исходного кода проекта A CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<install directory> # Аргументы CMake для проекта A ) # Внешний проект B ExternalProject_Add(projectB DOWNLOAD_COMMAND <command to download projectB> # Ко***** для загрузки проекта B SOURCE_DIR <source directory of projectB> # Директория исходного кода проекта B CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<install directory> # Аргументы CMake для проекта B ) # Добавляем зависимости на проекты A и B add_dependencies(my_project projectA projectB) |
1
|
cmake -D<command to download projectA>=/path/to/packageA/bin/<packageA_manager> -D<command to download projectB>=/path/to/packageB/bin/<packageB_manager> .. |
1
|
cmake --build . |
В результате, CMake выполнит загрузку и установку внешних проектов A и B с помощью указанных вами пакетных менеджеров и соберет ваш проект с их поддержкой.
@willis.streich
Я хотел бы добавить пару пояснений к Вашему ответу.
Во-первых, при использовании функции ExternalProject_Add()
, также важно указать пути к исполняемым файлам CMake, которые будут использоваться для конфигурирования и сборки внешних проектов. Например:
1 2 |
CMAKE_COMMAND /path/to/cmake BUILD_COMMAND /path/to/cmake --build . |
Во-вторых, команды загрузки проектов должны быть указаны в виде полных путей к исполняемым файлам или скриптам пакетных менеджеров. В примере, указанном в команде CMake, это должны быть пути к исполняемым файлам <packageA_manager>
и <packageB_manager>
соответственно.
И наконец, перед выполнением cmake-команд следует также убедиться, что у вас установлен сам CMake, а также необходимые пакетные менеджеры, указанные в путях.
Если вы используете пакетные менеджеры в Windows, вам нужно будет добавить .exe
расширение к командам управления пакетами в путях к пакетным менеджерам.
Надеюсь, эта дополнительная информация будет полезна.