mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.1K
active users

#cmake

3 posts2 participants0 posts today
Harald<p>Most build systems have their own syntax to write build scripts with the twist that functions are only run if their output could differ from the last call.</p><p>I turned this upside-down thing on its feet again, providing a Python library to run functions only if needed.</p><p>So your build script is just a Python script, but still does not run functions unnecessarily.</p><p><a href="https://codeberg.org/harald/pythonbuilder" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/harald/pythonbuil</span><span class="invisible">der</span></a></p><p><a href="https://nrw.social/tags/pythonbuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pythonbuilder</span></a> <a href="https://nrw.social/tags/buildtool" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>buildtool</span></a> <a href="https://nrw.social/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> <a href="https://nrw.social/tags/gradle" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gradle</span></a> <a href="https://nrw.social/tags/ant" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ant</span></a> <a href="https://nrw.social/tags/buildautomation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>buildautomation</span></a></p>
Jan :rust: :ferris:Unhinged (Software Dev)
Jan :rust: :ferris:<p>Ok, I have to correct myself:</p><p>Compiling any C/C++ project on Windows is an absolute clusterfuck!</p><p>I've now almost spent more time trying to compile my program for Windows than writing the actual code for it - let that sink in!</p><p><a href="https://floss.social/tags/Windows" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Windows</span></a> <a href="https://floss.social/tags/CPlusPlus" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CPlusPlus</span></a> <a href="https://floss.social/tags/Compile" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Compile</span></a> <a href="https://floss.social/tags/Build" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Build</span></a> <a href="https://floss.social/tags/BuildSystem" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BuildSystem</span></a> <a href="https://floss.social/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a></p>
Jakub Neruda<p>One of the things a good CMake-powered C++ library should do is to test its own integration - in other words, if others can plug it into their projects. One reason is obvious - nobody will use your library if they can't. The second one is pragmatic - the tests act as documentation for the users.</p><p>I've spent many hours refining my integration testing of CMake code, and I've compiled my learnings into the following article: <br>➤ <a href="https://medium.com/@nerudaj/cmake-integration-testing-4d71184525ea" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">medium.com/@nerudaj/cmake-inte</span><span class="invisible">gration-testing-4d71184525ea</span></a></p><p>I've also fallen into the inevitable rabbit hole of dependency management in CMake, so if you want to learn about that, the article has you covered as well! 😵‍💫</p><p>What do you think? Are there other aspects of integration that are worth testing? And would you be interested in an article on how to make findable prebuilt packages with CMake?</p><p><a href="https://techhub.social/tags/cpp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cpp</span></a> <a href="https://techhub.social/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> <a href="https://techhub.social/tags/integrationtesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>integrationtesting</span></a></p>
Rain<p><span>Technology/Programs that are (still) black magic to me and I will never understand how to properly use them no matter how bad i want to. (In no special order)<br><br>- </span><a href="https://melonbread.xyz/tags/Blender" rel="nofollow noopener" target="_blank">#Blender</a><span> (3D Modeling in general)<br>- </span><a href="https://melonbread.xyz/tags/CMake" rel="nofollow noopener" target="_blank">#CMake</a><span><br>- </span><a href="https://melonbread.xyz/tags/SELinux" rel="nofollow noopener" target="_blank">#SELinux</a><span><br>- </span><a href="https://melonbread.xyz/tags/freeCAD" rel="nofollow noopener" target="_blank">#freeCAD</a><span> (or cad in general)<br>- </span><a href="https://melonbread.xyz/tags/Rust-lang" rel="nofollow noopener" target="_blank">#Rust-lang</a> (I can run <code>cargo install</code><span> just fine)<br>- </span><a href="https://melonbread.xyz/tags/PowerShell" rel="nofollow noopener" target="_blank">#PowerShell</a><span> (eh, don't care that I don't get this one)<br>- </span><a href="https://melonbread.xyz/tags/SecureBoot" rel="nofollow noopener" target="_blank">#SecureBoot</a><span><br>- </span><a href="https://melonbread.xyz/tags/Treafik" rel="nofollow noopener" target="_blank">#Treafik</a><span> <br><br>This is probably more but man it kills me I can not wrap my head around these.</span></p>
mort<p>I'm trying to figure out this whole using Microsoft Windows thing because I want to try to compile my game for <a href="https://floss.social/tags/Windows" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Windows</span></a></p><p>But I'm encountering an issue trying to install cap'n proto: a file <a href="https://floss.social/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a> is looking for exists</p><p>Somehow the fact that the file exists makes CMake not find it</p><p>T_T</p><p><a href="https://floss.social/tags/windowsdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>windowsdev</span></a></p>
Yavo<p>Probably the better crash-course on CFLAGS for us newbies. It did solve my confusion.</p><p><a href="https://linuxreviews.org/Optimized_gcc_compiling_(cflags/cxxflags,_distcc,_ccache)" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">linuxreviews.org/Optimized_gcc</span><span class="invisible">_compiling_(cflags/cxxflags,_distcc,_ccache)</span></a></p><p><a href="https://fosstodon.org/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> <a href="https://fosstodon.org/tags/compiling" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compiling</span></a> <a href="https://fosstodon.org/tags/linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>linux</span></a></p>
Ygor<p>Fair enough.</p><p><a href="https://github.com/emilk/egui/blob/main/deny.toml#L42" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/emilk/egui/blob/mai</span><span class="invisible">n/deny.toml#L42</span></a></p><p><a href="https://floss.social/tags/rustlang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rustlang</span></a> <a href="https://floss.social/tags/rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rust</span></a> <a href="https://floss.social/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> <a href="https://floss.social/tags/egui" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>egui</span></a></p>
pseyfert<p>TIL <a href="https://cmake.org/cmake/help/latest/command/string.html#json" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">cmake.org/cmake/help/latest/co</span><span class="invisible">mmand/string.html#json</span></a> <a href="https://chaos.social/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> has a json serialization helper function</p>
Mattias Wadman<p>cmake is trying to tell me something<br><a href="https://fosstodon.org/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> <a href="https://fosstodon.org/tags/cake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cake</span></a></p>
Baudouin Feildel<p>Just dropped a merge request to add support for Rust into CMake. Time to go to bed now I guess 😴 🛌 </p><p><a href="https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11109" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">gitlab.kitware.com/cmake/cmake</span><span class="invisible">/-/merge_requests/11109</span></a></p><p><a href="https://diaspodon.fr/tags/Rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rust</span></a> <a href="https://diaspodon.fr/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a></p>
Apollo<p>What IDE or editor do you use on <a href="https://social.tchncs.de/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> for <a href="https://social.tchncs.de/tags/Cpp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Cpp</span></a> development with <a href="https://social.tchncs.de/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a>? I am currently using VSCode with the C/C++ Extension Pack and CMake Tools Extensions. They work great for the most part but I don't like the route Microsoft goes and I'd rather have a working alternative that doesn't suck.</p><p>I tried <a href="https://social.tchncs.de/tags/vim" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vim</span></a>, which works for the most part, just some copy pasting is a bit cumbersome.</p><p>Any suggestions for a good alternative?</p>
pseyfert<p>Ahaha, the <a href="https://chaos.social/tags/rustlang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rustlang</span></a> crate even ships a <a href="https://chaos.social/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a> function to print the version number to avoid parsing cmake --version and still fails on the colour escape sequence that cmake adds (actually the code only turns off colours). And it even sets CLICOLOR, just not CLICOLOR_FORCE (which I use for tools that wrongly assume no-tty=parsing).</p><p>Now I'm nerd sniped if the crate shouldn't ship a cmake version comparison function and let cmake pass/fail instead of print.</p>
INCD021<p>So after fighting <a href="https://mastodon.gamedev.place/tags/ImGui" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ImGui</span></a> and not getting it to work, I've switched to <a href="https://mastodon.gamedev.place/tags/raygui" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>raygui</span></a> and it worked right away. I think I'm just not used to <a href="https://mastodon.gamedev.place/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a> and VS Code setup yet, and I've been pampered way too much over the past decade with nice looking IDEs. They are good, but also hide a lot of what is going on under the hood. So it's nice having to be so explicit. Also why I'm turning to C++ again. Not too much magic!</p>
mgorny-nyan (on) :autism:🙀🚂🐧<p>Jeżeli piszecie bibliotekę, naprawdę powinniście unikać <a href="https://pol.social/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a>. To, w jaki sposób zaprojektowano ten system budowania sprawia, że wasz projekt staje się od niego zależny. Praktycznie uniemożliwia to przejście na inny system budowania w przyszłości bez sprawiania sporych kłopotów istniejącym użytkownikom. A jeżeli zdecyduje się wspierać wiele systemów budowania, to wówczas wasi użytkownicy będą blokować innych.</p><p>A wszystko przez to, że CMake używa niestandardowego systemu odkrywania zależności, który jest praktycznie niezgodny ze wszystkim innym, i tak złożony, że powtórna implementacja w innym systemie budowania jest szalenie skomplikowana. Więc kiedy inni zaczną&nbsp;polegać na tym, że wasza biblioteka instaluje pliki konfiguracji CMake (a jest to nieuniknione, bo po prostu tak się używa CMake), to wówczas nie będziecie mogli przestać ich instalować, nie psując ich projektów. A jeżeli będzie chcieli dalej je instalować przy pomocy innego systemu budowania, to powodzenia.</p><p>A jeżeli CMake to jedna z wielu opcji, które wspieracie, to niektórzy z waszych użytkowników zaczną przypadkowo zakładać, że mogą polegać na CMake. A na tym stracą wszyscy inni, którzy budują&nbsp;waszą bibliotekę przy pomocy innego systemu budowania, i nie będą mogli zbudować tego projektu, który zaczął polegać na CMake. A potem jest już tylko gorzej — coraz więcej dystrybucji jest zmuszonych do budowania waszej biblioteki przy pomocy CMake, i coraz więcej projektów polega na tym, że "wszyscy" używają CMake…</p><p>Używajcie systemu budowania <a href="https://pol.social/tags/Meson" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Meson</span></a> — jest bardziej przejrzysty i lepiej przemyślany. A do wyszukiwania bibliotek używajcie plików pkg-configa; są proste i przenośne.</p><p><a href="https://pol.social/tags/WolneOprogramowanie" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WolneOprogramowanie</span></a></p>
mgorny-nyan (he) :autism:🙀🚂🐧<p>If you're writing a library, you should really avoid <a href="https://social.treehouse.systems/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a>. CMake is designed to lock you in. As in, once you release a <a href="https://social.treehouse.systems/tags/FreeSoftware" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FreeSoftware</span></a> project using CMake, you can't switch to another build system with causing real trouble to your users. And if you support multiple build systems, as soon as you start supporting CMake, some of your users are going to start locking everyone else in.</p><p>That's because CMake uses a custom package discovery mechanism that's hardly compatible with anything else, and that is so complex that it's very hard to reimplement it with any other build system. So when others start relying on the CMake config files being installed (and they naturally will, since that's how CMake does things), you can't stop installing them without actually breaking stuff. And if you want to preserve them without actually using CMake, well, good luck with that.</p><p>And if CMake is one of the options you support, then some of your consumers will accidentally start relying on it anyway. And this will be much worse for everyone, because now their projects won't work for people who build your project with any other build system. Which in turn will force more projects to use CMake anyway. Which in turn will make more people rely on CMake being used…</p><p>Use <a href="https://social.treehouse.systems/tags/Meson" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Meson</span></a> as the build system, it's clean and not designed to lock you in. Use pkg-config for library data; it's simple and portable.</p><p><a href="https://social.treehouse.systems/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a></p>
mgorny-nyan (he) :autism:🙀🚂🐧<p>Once again, a <a href="https://social.treehouse.systems/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a> project is breaking compatibility with systems that aren't building its dependencies via CMake (but are using Meson instead). Because why use pkg-config when you can use generated CMake configs instead?</p><p><a href="https://github.com/Blosc/c-blosc2/issues/687" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/Blosc/c-blosc2/issu</span><span class="invisible">es/687</span></a></p><p>EDIT: looks like this was done to accommodate <a href="https://social.treehouse.systems/tags/VcPkg" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>VcPkg</span></a>. Surely accidental, but why not bash <a href="https://social.treehouse.systems/tags/Microsoft" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Microsoft</span></a> for breaking Linux packages anyway?</p><p><a href="https://github.com/Blosc/c-blosc2/pull/682" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/Blosc/c-blosc2/pull</span><span class="invisible">/682</span></a></p><p><a href="https://social.treehouse.systems/tags/Fedora" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Fedora</span></a> <a href="https://social.treehouse.systems/tags/Gentoo" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Gentoo</span></a> <a href="https://social.treehouse.systems/tags/packaging" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>packaging</span></a></p>
Kawaoneechan<p>Why do I consistently have trouble using <a href="https://mas.to/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a>? Am I stupid?</p><p><a href="https://mas.to/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a></p>
Generic Person<p>So <a href="https://social.linux.pizza/tags/Tenacity" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Tenacity</span></a> on <a href="https://social.linux.pizza/tags/FreeBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FreeBSD</span></a> isn't much effort to get running, but it does involve a lot of patience if compiling on an 11 year old laptop (I should be getting a new one soon).</p><p>The changes? We just add /usr/local/lib to our link directories in <a href="https://social.linux.pizza/tags/CMake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CMake</span></a>, fix compilation for FAT filesystem detection, and then we're all good to go! Then everything else comes together. After all, <a href="https://social.linux.pizza/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> and FreeBSD are similar enough to the point that we don't need to care much about the differences.</p><p>And in case you wonder why we need to detect a FAT filesystem, if we were to allow it, you would immediately find out why we do it. AUP3 projects get large in size, and FAT filesystems are NOT equipped to handle them. Well, exFAT should be OK, but that's the only FAT filesystem that should work.</p>
Harald<p>Eat your own dog food, they say.</p><p>Which I did, using my currently preferred build system, pythonbuilder. And a small but very convenient helper function was added.</p><p><a href="https://harald.codeberg.page/pythonbuilder/@main/apidoc/pbutil.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">harald.codeberg.page/pythonbui</span><span class="invisible">lder/@main/apidoc/pbutil.html</span></a></p><p>home page: <a href="https://codeberg.org/harald/pythonbuilder" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/harald/pythonbuil</span><span class="invisible">der</span></a></p><p><a href="https://nrw.social/tags/pythonbuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pythonbuilder</span></a><br><a href="https://nrw.social/tags/buildmachine" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>buildmachine</span></a><br><a href="https://nrw.social/tags/bashbuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bashbuilder</span></a><br><a href="https://nrw.social/tags/buildsystem" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>buildsystem</span></a><br><a href="https://nrw.social/tags/softwaredevelopment" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>softwaredevelopment</span></a><br><a href="https://nrw.social/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a><br><a href="https://nrw.social/tags/python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>python</span></a><br><a href="https://nrw.social/tags/make" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>make</span></a><br><a href="https://nrw.social/tags/gradle" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gradle</span></a><br><a href="https://nrw.social/tags/ant" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ant</span></a><br><a href="https://nrw.social/tags/blt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>blt</span></a><br><a href="https://nrw.social/tags/cmake" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cmake</span></a></p>