All streams
Search
Write a publication
Pull to refresh

Comments 15

Turbo C также мог по Ctrl+F9 собрать и запустить, подсветив код не хуже чем сейчас. Это был где-то 1998й год, всё влезало на дискету 1.44. Тогда были обычные make, и сейчас тоже самое, главное чтобы батарейка у биоса не села и не сбросила незаметно время. В качестве пакета - lib с заголовочниками, директория с датой - версия, bat-файл для всего остального. Практически за 30 лет лишь косметические изменения. Если бы тогда спросили у будущего: до сих пор используете файловые системы для структурирования проекта? Представлен очевидный ответ. Интересно, есть ли у этого процесса хоть какая-то интегрированная прямая поддержка со стороны IDE.

Не проблема собрать и подсветить - возьмите visual studio и там нажмите кнопку "новый проект". Проблема в том чтобы это было кроссплатформенно и подключало зависимости

С++ оказался в тупике идеи о том что "у нас нет одного правильного способа сделать это, нужно ли делать папку /src для всех проектов, нужно ли /include?" и в итоге никто ничего не делает, все абы как собирают свои проекты. Я решил не изобретать способ на все случаи жизни и просто сделал как вижу и как удобно

Хоть кто-то адекватно описал почему не стоит использовать conan и vcpkg когда cmake умеет скачивать ( просто -чуть напильником дополить и адекватный пакетный менеджер)

Как цмэйком управлять бинарными зависимостями, их кэшированием, версиями и тд? Скачивать это хорошо, но ведь множество библиотек мы подключаем уже собранными, в т.ч. локальные внутри проекта, как этим всем управлять?

Не поверите, просто дать флаг download only в add package, а вот в Conan это действительно невероятно неудобно, см. доклад по ссылке в статье

см. доклад по ссылке в статье

а таймкод можно, где описаны конкретные проблемы?

На сколько это удобнее, например, cargo в Rust?

Если судить по пакетным менджерам в других ЯП то выйгрывают другие по сравнению С++.

и что же делать с библиотеками, которые собираются не через смаке? (например, FFmpeg или Qt 5) Как шарить собранные бинари с другими людьми и CI тоже не увидел в их ридми. Наверное, как очень простая система управления зависимостями — пойдет.

совершенно неочевидно как же он должен быть написан - на примере множества людей и компаний выявлено, что написание conan рецепта это один из самых сложных навыков в программировании. Люди спокойно разбираются в шаблонах, в линуксе, в ужасной документации, но написать conan рецепт не могут

надо всего лишь смотреть на уже написанные рецепты в CCI и в документацию. И еще можно вопросы задавать — как в слаке, так и прямо в репе конана.

Также развивается Common Package Specification, который как раз и должен абстрагировать информацию о «пакете» от конкретного менеджера пакетов. В смаке 4.0 уже реализовано, вот тут статья какая-то на эту тему.

Рецепт для qt откуда-то взялся, видимо написали. Насколько я знаю современные версии Qt поддерживают cmake, получается написали рецепт для CPM. Бинари шарятся через тот же механизм, только с флагом download only

смотреть на уже написанные рецепты

именно так и получается, что все копируют, но никто не знает как же правильно, так что рецепты всё сложнее и сложнее, в них какие-то странные магические действия без объяснения почему

Рецепт для qt откуда-то взялся, видимо написали

не увидел где искать Qt для CPM. В конане (и vcpkg) он есть, конечно.

Насколько я знаю современные версии Qt поддерживают cmake, получается написали рецепт для CPM

от того, что они поддерживают смаке, не значит, что они через него собираются. 6-ка собирается через него, да, а вот 5-ка — только через свой configure.

Вот глянул в issues CPM, там как раз кто-то поинтересовался как собрать FFmpeg (который на autotools). Открываю, а там жесть через ExternalProject_Add: https://github.com/cpm-cmake/CPM.cmake/issues/480

У FFmpeg миллион параметров — видимо, придется каждому их изучать, чтоб смочь собрать через CPM с нужными настройками. А теперь сравним с рецептом Конана, где параметры вынесены в область параметров. С Qt 5 аналогично.

все копируют, но никто не знает как же правильно, так что рецепты всё сложнее и сложнее, в них какие-то странные магические действия без объяснения почему

не понимаю что же мешает спросить. Коммьюнити вполне живое, мэйнтейнеры отвечают на вопросы достаточно активно.

Вот глянул в issues CPM, там как раз кто-то поинтересовался как собрать FFmpeg (который на autotools)

а как его в конане добавить, если рецепт не написан? Уж не CPM виноват, что люди поддерживают проект десятки лет и не могут написать ему cmakelists.txt

а как его в конане добавить, если рецепт не написан?

понятно, что никак, если не написать рецепт.

Но суть-то не в этом, а в удобстве использования рецепта. Конану все равно какая система сборки используется для библиотеки — рецепт будет выглядеть примерно одинаково (за исключением build метода, конечно), а у CPM получается, что если библиотека собирается не через смаке, то придется приложить гору усилий, чтоб его написать.

Уж не CPM виноват, что люди поддерживают проект десятки лет и не могут написать ему cmakelists.txt

какой-нить базель и мезон тоже надо на смаке переписать, получается?

Sign up to leave a comment.

Articles