Cіпласпластик
556 subscribers
166 photos
35 videos
2 files
264 links
🇺🇦 Про айті та дотичні теми загалом, ну й трохи про C++.

Мої емоджі:
https://t.iss.one/addemoji/AdaptiveDevIcons
https://t.iss.one/addemoji/VehicleBrands
Download Telegram
Отже, подивилися ми (переважно не я, а друган) на деякі інші системи складання проєктів. Я вже писав про те, чим Qbs замахав і які маю критерії для вибору. А сьогодні розповім про декілька кандидатів.

Build2 — це щось для відірваних від реалій людей шанувальників усього на 💻 (ця система написана повністю цією мовою). Згадати хоча б той факт, що для build2 нема готових бінарів, а натомість треба їх спершу власноруч зібрати з сирців, причому бажано тим самим компілятором, що й свій проєкт! 🤡 Білд-скрипти їхні — це як шел, помножений на мейкфайли (не зміг вирішити, що гірше, тож узяв обидва). Коротше, мʼяко кажучи, ду-у-уже на любителя, і я точно не серед них. Ще й, здається, якісь ретроградні росіянці пишуть. (Проте якщо чисто за фічами дивитися — то насправді вельми непогано).

Швидесенько глянули на Premake. Він прикольний тим, що там скрипти на 💻, все просто й лаконічно. Я б навіть сказав, що занадто просто. На жаль збирання проєктів на 💻 — це біль. Особливо з #QML. Особливо, коли декілька бінарів. Особливо, якщо це потім треба все скласти в application bundle на macOS. І ще насправді Premake нічого не збирає 😆 Він генерує солюшн під VS або ті ж білд-скрипти для Ninja. Комусь це норм — врешті ninja саме для цього і створили — але мені не норм. Однак з усього сьогоднішнього списку він найприємніший.

Попарилися з Meson, і навіть щось вийшло. Але таке… У них там якась власна декларативна мова трохи дивна, хоча й геть проста. І видається, що не можна писати власні кастомні правила — можна хіба що додати custom_target, в якому викликати щось зовнішнє. А моя задача зробити навпаки! Хочу, щоб не треба було купу додаткових тулів встановлювати, бо це ускладнює CI. Якась базова підтримка Qt там вже є й доволі непогана, але мені цього замало. Якби не це, то можна користуватися — і приємніше за CMake 🤮. Документація теж норм, хоча місцями доволі… необширна. Короч, нам ця система не підійшла кропаль, але якщо у вас чисті плюси або, наприклад, 💻, то спробуйте, бо справляє враження стабільного продукту.

З Bazel (у народі — «Василь») знайомство пройшло найшвидше. Чувак вирішив почитати, як у ньому правильно встановити бажаний стандарт C++ для компіляції, і зʼясував, що… ніяк блять 😂 Принаймні кросплатформно. Тобто рекомендований шлях це зробити — руками прописати світчі для компілятора під кожну систему. Красно дякую! Одразу відчувається рука UX-спеціалістів з ґуґла. Інший дружбан пару місяців тому тестував кодінг-здібності Gemini Pro, попросив того створити проєкт на Bazel і дуже радів, коли ШІ-шка страждала над «цим висером інженерної думки, так само, як [він] колись» (цитата). «Карма в дії», — каже 🙂 Ото, власне, на цьому все й скінчилося з цією системою. Так, там підмножина Python 💻 (Starklark), усілякі фічі круті тощо, але організм відторгає — що поробиш.

Краєм ока глянули ще на метівський Buck2. Там до речі теж Starlark, як і в Bazel. Але воно наче заточене під гігантські монорепи й усе таке, тож не наш випадок.

Вибираємо далі.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍8🔥21🤣1