#cmake — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #cmake, aggregated by home.social.
-
Реалии open-source разработки на примере Conan и userver
Исторически сложилось, что одна из главных проблем C++ - это тулчейны, системы сборки, управление зависимостями и всё вокруг. Ничего из этого не является частью стандарта, поэтому кто во что горазд. Любой бигтех просто обязан написать свой инструмент, который наконец-то станет лучшим. За несколько лет я прочитал много публикаций на русском и английском как же хороши пакетные менеджеры, как же с ними легко и просто решаются все ваши проблемы. Вот прямо серебренная пуля, то чего всегда так не хватало в плюсах! Если кратко - это так. Тем не менее у них хватает своих недостатков. Судя по этим статьям казалось, что использовать пакетный менеджер в разработке очень просто... Вот только про внедрения в крупные проекты почти никто не пишет, и скоро мы поймем почему. Пришло время исправить это упущение, и на примере внедрения Conan в userver также рассмотреть реалии open-source разработки. Нам быстро придется покинуть мир розовых пони, погрузиться в самые дебри и понять, что иногда новые модные проекты держаться на людях, отрицающих все современные методы разработки.
-
Реалии open-source разработки на примере Conan и userver
Исторически сложилось, что одна из главных проблем C++ - это тулчейны, системы сборки, управление зависимостями и всё вокруг. Ничего из этого не является частью стандарта, поэтому кто во что горазд. Любой бигтех просто обязан написать свой инструмент, который наконец-то станет лучшим. За несколько лет я прочитал много публикаций на русском и английском как же хороши пакетные менеджеры, как же с ними легко и просто решаются все ваши проблемы. Вот прямо серебренная пуля, то чего всегда так не хватало в плюсах! Если кратко - это так. Тем не менее у них хватает своих недостатков. Судя по этим статьям казалось, что использовать пакетный менеджер в разработке очень просто... Вот только про внедрения в крупные проекты почти никто не пишет, и скоро мы поймем почему. Пришло время исправить это упущение, и на примере внедрения Conan в userver также рассмотреть реалии open-source разработки. Нам быстро придется покинуть мир розовых пони, погрузиться в самые дебри и понять, что иногда новые модные проекты держаться на людях, отрицающих все современные методы разработки.
-
Реалии open-source разработки на примере Conan и userver
Исторически сложилось, что одна из главных проблем C++ - это тулчейны, системы сборки, управление зависимостями и всё вокруг. Ничего из этого не является частью стандарта, поэтому кто во что горазд. Любой бигтех просто обязан написать свой инструмент, который наконец-то станет лучшим. За несколько лет я прочитал много публикаций на русском и английском как же хороши пакетные менеджеры, как же с ними легко и просто решаются все ваши проблемы. Вот прямо серебренная пуля, то чего всегда так не хватало в плюсах! Если кратко - это так. Тем не менее у них хватает своих недостатков. Судя по этим статьям казалось, что использовать пакетный менеджер в разработке очень просто... Вот только про внедрения в крупные проекты почти никто не пишет, и скоро мы поймем почему. Пришло время исправить это упущение, и на примере внедрения Conan в userver также рассмотреть реалии open-source разработки. Нам быстро придется покинуть мир розовых пони, погрузиться в самые дебри и понять, что иногда новые модные проекты держаться на людях, отрицающих все современные методы разработки.
-
Реалии open-source разработки на примере Conan и userver
Исторически сложилось, что одна из главных проблем C++ - это тулчейны, системы сборки, управление зависимостями и всё вокруг. Ничего из этого не является частью стандарта, поэтому кто во что горазд. Любой бигтех просто обязан написать свой инструмент, который наконец-то станет лучшим. За несколько лет я прочитал много публикаций на русском и английском как же хороши пакетные менеджеры, как же с ними легко и просто решаются все ваши проблемы. Вот прямо серебренная пуля, то чего всегда так не хватало в плюсах! Если кратко - это так. Тем не менее у них хватает своих недостатков. Судя по этим статьям казалось, что использовать пакетный менеджер в разработке очень просто... Вот только про внедрения в крупные проекты почти никто не пишет, и скоро мы поймем почему. Пришло время исправить это упущение, и на примере внедрения Conan в userver также рассмотреть реалии open-source разработки. Нам быстро придется покинуть мир розовых пони, погрузиться в самые дебри и понять, что иногда новые модные проекты держаться на людях, отрицающих все современные методы разработки.
-
The CLion 2026.2 Roadmap: Simplified Debugger Configuration and the Ability to Use Multiple Zephyr West Profiles
#Clang #CLion #News #Roadmap #Bazel #Cmake #Debugger #Livewatches #Zephyrwest -
The CLion 2026.2 Roadmap: Simplified Debugger Configuration and the Ability to Use Multiple Zephyr West Profiles
#Clang #CLion #News #Roadmap #Bazel #Cmake #Debugger #Livewatches #Zephyrwest -
The CLion 2026.2 Roadmap: Simplified Debugger Configuration and the Ability to Use Multiple Zephyr West Profiles
#Clang #CLion #News #Roadmap #Bazel #Cmake #Debugger #Livewatches #Zephyrwest -
The CLion 2026.2 Roadmap: Simplified Debugger Configuration and the Ability to Use Multiple Zephyr West Profiles
#Clang #CLion #News #Roadmap #Bazel #Cmake #Debugger #Livewatches #Zephyrwest -
Hi folks!
Here's a little update of Birdy 🐦 where your progress saves in Mini-Games 💾
👉 https://codeberg.org/xolatgames/Birdy-wants-crisps/releases/tag/v1.5.0
And I've add "Continue game" option to the main menu, btw! But saving your progress touches only Mini-Games yet ☝️
Have a good day! 😉👋✌️
#cpp #cplusplus #codelite #cmake #cmake3 #sdl #sdl2 #game #games #gamedev #2d #inkscape #releases #opensource #codeberg #linux #box2d #tiled #TiledMapEditor #minigames #indie #indiegame #indiedev #breakout #platformer #action
-
Hi, folks! ✌️
So, I finally tested the new version of Crisps Chat 🍟, and fixed the left issues in it.
And now you can download the new version 🏔️👉 https://codeberg.org/xolatgames/Crisps-Chat/releases/tag/v0.7.0
And make your server as private.
Have a good day to everyone 😉
#cpp #cplusplus #chat #chats #communication #app #apps #foss #linux #soft #software #codeberg #network #cmake #codelite #sdl #sdl2 #imgui #dearimgui #opensource #dev #devlog #development
-
Hi folks! ✌️ I have the last new for today, because here's the night 🌙
Now Birdy 🐦 has a smooth animation for picking up Crisps 🍟
You can download the new version right from here 🏔️👉 https://codeberg.org/xolatgames/Birdy-wants-crisps/releases/tag/v1.4.1
Have a good sleep! 🥱🙂😴
#sdl #sdl2 #game #games #gamedev #dev #development #devlog #inkscape #2d #adventure #TiledMapEditor #cpp #cplusplus #codelite #opensource #cmake #linux #codeberg #release #releases #MiniGames #box2d #topview
-
Hello folks! 👋✌️ Here's an update of Birdy 🐦
I changed a text of the indicators in the Mini-games on images.
You can download the new version from here 🏔️👉 https://codeberg.org/xolatgames/Birdy-wants-crisps/releases/tag/v1.4.0 already.
Have a good day to everyone 😉
#sdl #sdl2 #cpp #cplusplus #box2d #TiledMapEditor #2d #game #games #gamedev #dev #devlog #development #opensource #codeberg #adventure #StoryRich #minigames #inkscape #cmake #appimage #linux #codelite #toonstyle #colorful #release #releases
-
Hello folks! 👋✌️ Here's an update of Birdy 🐦
I changed a text of the indicators in the Mini-games on images.
You can download the new version from here 🏔️👉 https://codeberg.org/xolatgames/Birdy-wants-crisps/releases/tag/v1.4.0 already.
Have a good day to everyone 😉
#sdl #sdl2 #cpp #cplusplus #box2d #TiledMapEditor #2d #game #games #gamedev #dev #devlog #development #opensource #codeberg #adventure #StoryRich #minigames #inkscape #cmake #appimage #linux #codelite #toonstyle #colorful #release #releases
-
A feature of #mill that I *really* appreciate (and analogously #rake) is that it doesn't try to invent a brand new scripting language. It embeds build definitions into standard paradigms that already exist within an existing language: Each module is a scala object, each task is essentially a function or value definition on that object, and inheritance gets you standard tasks for typical build steps.
In short, I don't have to learn a brand new DSL just to build my code.
This post is about #cmake .
-
Hi, folks! ✌️ I'm here to share you that I'm totally rewriting of Crisps Chat 🍟
If you want to checks the status of the app, you can visits its Codeberg page 🏔️👉 https://codeberg.org/xolatgames/Crisps-Chat
Thanks for attention! 😄 And I wish you a good day 😉
#cplusplus #cpp #sdl #sdl2 #imgui #chat #chats #messaging #MessagingApp #communication #app #apps #soft #software #opensource #codeberg #git #codelite #inkscape #chatting #development #dev #devlog #cmake #rewriting
-
Second new: I decided to fully recode "Crisps Chat 🍟" On my opinion - that was a dirty code.
It's a long story, alas...
The recoded version is located here 👉 https://codeberg.org/xolatgames/Crisps-Chat-Recoding
I wish you a nice, and a cool day! ✌️😜
#cpp #cplusplus #app #apps #soft #software #imgui #sdl #sdl2 #messaging #sqlite #sqlite3 #communication #opensource #codeberg #git #cmake #make #makefile #application #applications #linux #DearImGui #messages #chat #chatting #chats
-
Eat your own dog food, they say.
Which I did, using my currently preferred build system, pythonbuilder. And a small but very convenient helper function was added.
https://harald.codeberg.page/pythonbuilder/@main/apidoc/pbutil.html
home page: https://codeberg.org/harald/pythonbuilder
#pythonbuilder
#buildmachine
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#python
#make
#gradle
#ant
#blt
#cmake -
An update is available for pythonbuilder, a core build system written and specified in Python.
https://codeberg.org/harald/pythonbuilder
- simplified API to generate a targets state and to create it
- build functions to support Java buildsTutorial Example: https://codeberg.org/harald/pythonbuilder#example
#pythonbuilder
#buildmachine
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#python
#make
#gradle
#ant
#blt
#cmake -
An update is available for my pythonbuilder, the core build system written and specified in Python.
https://codeberg.org/harald/pythonbuilder
This improves logging with the default being less verbose as it adds a VERBOSE level which gives back the previous verbosity.
#pythonbuilder
#buildmachine
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#python
#make
#gradle
#ant
#blt
#cmake -
An update is available for my pythonbuilder, the core build system written and specified in Python.
https://codeberg.org/harald/pythonbuilder
The things to build, previously represented as just strings, are now arbitrary Python objects, which makes it in particular easier to use Python's modern Path in all places where file or directory references are needed.
#pythonbuilder #buildmachine #bashbuilder #buildsystem #softwaredevelopment #programming #python #make #gradle #ant #blt #cmake
-
1/2
My third implementation of the core of a build system: https://codeberg.org/harald/pythonbuilder
I contrast build system with script. While a script just runs all the commands according to the code you write, a build system has a means of determining whether a command really has to be run or can be skipped because the input has not changed, so no new output can be expected.
#pythonbuilder
#buildmachine
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#make
#gradle
#ant
#blt
#cmake -
Improvements to bashbuilder, my bash-only build system:
* Adds unit tests with near full coverage.
* Improves testability, which, in general, improves architecture and logic.
* Changes error handling from `set -e`, which is considered BAD, as I learned, to explicit error handling where needed.https://codeberg.org/harald/bashbuilder
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#make
#gradle
#ant
#blt
#cmake -
Improvements to my bash-only build system:
* All functions provided now consistently have the prefix 'bb', like bbTarget, bbMain etc.
* Using bbImport, though, allows to get rid of them again in a build script, if so preferred.
* Moves most API documentation to doc comments in the script itself.
* So the project now has a build script 😉 called bb, to extract this documentation.https://codeberg.org/harald/bashbuilder
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#make
#gradle
#ant
#blt
#cmake -
Improvements to my bash-only build system:
* Adds (environment) variables as dependencies/targets on par with files and directories.
* Changes call direction from bashbuilder->buildscript to the reverse. Now bashbuilder is "merely" a library, instead of requiring to be 'main'.
* Adds generated file lists as dependencies/targets.https://codeberg.org/harald/bashbuilder
#bashbuilder
#buildsystem
#softwaredevelopment
#programming
#make
#gradle
#ant
#blt
#cmake -
I did it again: create a project builder, this time bash-only.
https://codeberg.org/harald/bashbuilder
This is my fourth.😎
#bashbuilder #buildsystem #softwaredevelopment #programming #make #gradle #ant #blt #cmake
-
I updated #mbedTLS and #curl in #DOjS. This one took a lot longer than I expected because curl dropped Makefile.mk builds and I had to switch to #CMake or #autconf.
I went with CMake, but had to work around some weird problems.#MSDOS and #Linux build are already green again, I'll tackle #win32 later...
-
Mini-rant ahead:
I'm delving into #cmake to try to make it build a
compile_commands.jsonfile to work with #retrocomputing C header files, specifically the #Psion SIBO C SDK (from the early 90s).I don't actually want cmake to do anything but tell clangd what to do, so that I've got a working language server in NeoVim.
I don't need it to build any Makefiles, I don't need it to tell a compiler what to do. I just want clangd to treat my old 16-bit real mode code correctly, and that the header files are in
~/dosbox/sibo-c/SIBOSDK/include/.Note that I can't point it at the compiler, because the compiler (TopSpeed) runs in DOSBox. There is no modern compiler that will work.
So... Do I have to fake it somehow? For example, do I have to tell cmake that it's actually using a different compiler (e.g. #Watcom) to make it behave correctly? And if I do, will that matter to clangd?
-
So, if my goal is just to restore autotools happy-path of `./configure && make && make install` I need maybe ten lines of shell including the explainer blurb. If my goal is to create the best and universally-loved and appreciated one true CMake wrapper - a thing that is both normal to want and possible to achieve - then I need Python with custom `argparse.Action`s and some sort of reality-distortion field to avoid bike-shedding and yak-shaving.
#CMake #autotools -
Autotools-skeuomorphic Makefile is super easy. Corresponding configure script still in progress; doing that in Python.
Then it finally occurred to me that one of the stumbling blocks is that autotools configure is stateless - it blows away the old configuration every time - where CMake keeps its configuration state and lets you mutate it incrementally. Now I need to wonder if my skeuomorphic configure script should blow away the build/binary directory each run…
#CMake #autotools -
Crazy, how difficult it is coerce modern build systems to build both library types for the project (shared and static) and yet link the executable with the static one preferred. The amount of black magic and jumping through hoops one needs to attempt is quite staggering. #linux #cmake #meson #autotools
-
Today I wanted to debug a C++ build issue in plasma-pa, so I open #neovim, but go-to-definition is broken AGAIN! 😩
Is it LanguageClient-neovim? No.
Ah, it's #ccls. It's missing libLLVM-10.so. Arch switched to #llvm 11. I rebuild it from git, now it works. 30mins lost. 😠
Next: can't find classes. Why? Oh, #cmake generates compile_commands.json is in the build directory, but ccls looks for it in the source directory 😡
Setting up #vim as a C++ IDE is too damn hard! 🤬
-
Today I wanted to debug a C++ build issue in plasma-pa, so I open #neovim, but go-to-definition is broken AGAIN! 😩
Is it LanguageClient-neovim? No.
Ah, it's #ccls. It's missing libLLVM-10.so. Arch switched to #llvm 11. I rebuild it from git, now it works. 30mins lost. 😠
Next: can't find classes. Why? Oh, #cmake generates compile_commands.json is in the build directory, but ccls looks for it in the source directory 😡
Setting up #vim as a C++ IDE is too damn hard! 🤬