Здравствуйте, Ikemefula, Вы писали:
V>>А какой смысл нести всякую чухню, что в С++ нет менеджеров пакетов? I>Непонятно, что ты понимаешь под менеджером пакетов.
т.е., проблема в тебе?
I>Ты описываешь вариант эмуляции пакетного менеджера при помощи cmake и dpkg и rpm.
Не юли, я описывал apt или yum.
I>Что делать, например, на винде, когда нет ни dpkg ни rpm ?
Для начала выйти на минуточку в гугл.
I>Вероятно, ты предложишь эмулировать средствами nuget
В своей конторе мы распространяем внутренние либы С++ на виндах через NuGet через artifactory.
Для линухов — родными пакетными менеджерами этих систем.
А зачем NuGet "эмулировать"?
V>>Например, CMake — это не утилита сборки проектов, хотя многие далёкие от темы относят её к таковой. V>>Это утилита описания проектов и их зависимостей, одновременно утилита ресолвинга этих зависимостей. I>Похоже, её авторы и есть те недалёкие, о которых ты говоришь, т.к. уни утверждают I>"CMake is an open-source, cross-platform family of tools designed to build, test and package software. "
Я именно это и говорил — кто CMake не использовал, тот не знает, что делает эта либа.
CMake не собирает проекты, потому что не умеет — нет такой функциональности.
Прочти еще немного её документации — там об этом подробно рассказывается.
В общем, RTFM!
Да, ср-вами этой утилиты можно платформенно-независимо запустить сборку проектов.
Т.е., на виндах будет запущен MSBuild с его аргументами, на линухах make с его аргументами.
В этом смысле CMake предоставляет некую абтракцию для запуска внешних сборщиков тех проектов, которые сама же сгенерировала.
Хотя, разработчики обычно запускают сами, т.к. целевые системы сборки имеют намного больше аргументов и режимов сборки, чем те, абстракцию над которыми предоставляет CMake.