tgoop.com/cpplastic/306
Create:
Last Update:
Last Update:
Я й досі використовую #Qbs як білд-систему. Не тому, що він прям суперкрутий, а тому, що #CMake я не можу терпіти ще більше. На додачу ми в пет-проєкті використовуємо #Conan, щоб ставити деякі залежності типу того ж spdlog.
Ізі-пізі все, на маку потестив — працює збс. На вінді друган потестив — теж працює. А на віндовому CI, бляха, ні!
Перша проблема: для конана треба, щоб профіль існував. І я начебто навіть всі необхідні дані й так через команд-лайн передаю, але чогось скаржиться все одно. Найпростіший спосіб створити — це викликати:
conan profile detect
Втім не все так просто. Наш self-hosted ранер для GitHub Actions працює як сервіс від імені
NETWORK SERVICES, щоб після ребуту він одразу запускався, а не чекав, доки користувач залогіниться. Тож я не можу просто зайти на віндову тачку та викликати цю команду. Ну ок, додав та прибрав степ, який це один раз робить. З цим порішали.Та не збирається все одно, собака! І найболячіше те, що з одним і тим самим команд-лайном воно видає різні помилки залежно від того, чи я запускаю це сам руками від свого імені, чи це робить ранер.
Схема така, що за задумом треба використовувати Conan як точку входу, а той своєю чергою вже викликає Qbs. Але мене це дратувало, тож я написав так звану Probe для Qbs, яка перед всіма іншими діями викликає Conan, а вже потім продовжує свою роботу. І навіть тут якась чортівня: результати виклику
conan install з однаковими параметрами й всім однаковим під тим самим користувачем(!) відрізняються, коли я запускаю це через Qbs або коли вручну. Тобто у мене вже є щонайменше три різні помилки, і я тупо не бачу жодного звʼязку між ними. Наче сліпий навпомацки, намагаюся щось правити й «дивлюся» на результат.З самим Conan до речі окрема історія теж. У нього налаштування залежать від платформи. Наприклад, на macOS треба передавати
os.version, а на Windows версію не можна вказувати. Тобто воно його не ігнорує, а прям каже: «Ти шо, не передавай мені це!» — і падає з помилкою.Яке ж лайно!
