Comments 15
Turbo C также мог по Ctrl+F9 собрать и запустить, подсветив код не хуже чем сейчас. Это был где-то 1998й год, всё влезало на дискету 1.44. Тогда были обычные make, и сейчас тоже самое, главное чтобы батарейка у биоса не села и не сбросила незаметно время. В качестве пакета - lib с заголовочниками, директория с датой - версия, bat-файл для всего остального. Практически за 30 лет лишь косметические изменения. Если бы тогда спросили у будущего: до сих пор используете файловые системы для структурирования проекта? Представлен очевидный ответ. Интересно, есть ли у этого процесса хоть какая-то интегрированная прямая поддержка со стороны IDE.
Не проблема собрать и подсветить - возьмите visual studio и там нажмите кнопку "новый проект". Проблема в том чтобы это было кроссплатформенно и подключало зависимости
С++ оказался в тупике идеи о том что "у нас нет одного правильного способа сделать это, нужно ли делать папку /src для всех проектов, нужно ли /include?" и в итоге никто ничего не делает, все абы как собирают свои проекты. Я решил не изобретать способ на все случаи жизни и просто сделал как вижу и как удобно
14 стандартов.хксд ?
Хоть кто-то адекватно описал почему не стоит использовать conan и vcpkg когда cmake умеет скачивать ( просто -чуть напильником дополить и адекватный пакетный менеджер)
На сколько это удобнее, например, cargo в Rust?
- даже не знаю как в этот список попасть - как в любой opensource через merge requests. https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-adding-to-registry?pivots=shell-powershell
и что же делать с библиотеками, которые собираются не через смаке? (например, 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
какой-нить базель и мезон тоже надо на смаке переписать, получается?
Как из букв C N O A собрать «удобный современный С++»