Hot take after an afternoon un-fsck-ing a #CMake project: *Config.cmake files are so much harder to debug than *.pc#PKGConfig files, so not only are you trying to make sense of a Turing complete project definition but all the transitive dependencies that happen to use CMake too
Hey everyone, I'm studying #C and planning to contribute to some open-source projects soon. I have a question: in #FreeBSD, do you usually use #gmake, #bmake, or #cmake more frequently? (I'm a beginner, but I got the impression that cmake is the most comprehensive). Is there one that's more universal and can be used across all projects, or does it depend on the project? And for #Emacs, which one helps more with configuration?
So we have it now. Rust solved a large number of the safety problems of the system language level. Not everything ofc, but still. Lot of them. And it is actually being adopted.
So I have a question for my cybersecurity/infosec crowd.
Have you introspected why 3 decades of yelling about that stuff got no results, 3 decades of sanitisers and fuzzers barely moved the needle, but Rust slam dunked it?
Where is the retrospective of what went wrong? Where are the learnings?
@Di4na Nice and efficient build system that are humane to use:
Well, this is the topic that most work went into. Look at what happened to #CMake within the past ten years. This is a completely different system now.
Why the FUCK does CMAKE generate VS project files that depend on having CMAKE installed on your system? And it has to be in a fixed path? And EVERYTHING has to be in a fixed path?
Have CMAKE developers ever compiled something or used version control? This is unusable and I am very angry and it's Monday and I haven't had my coffee yet.
EDIT: AND IT HAS TO HAVE VS INSTALLED AT A FIXED PATH TOO WHO MADE THIS CRAP????
It's one thing to start using CMake in a project, it's another to actually create a distributable package for major operating systems. Something I learned on my journey mastering CPack with CMake.
I'll try to cover much: from application bundle structure, how installation works with CMake, adding a shared library, static assets like fonts and images, application icons, the installer itself, and more.
Current, unpaid-for projects I want to work on:
A tool to strip out nondeterminism from RPMs
A tool to run only CTest executables affected by a list of changed files
CMake scripting to automatically add all the necessary subpackages as dependencies of the devel subpackage
My headcanon version of git-grep
A requirements tracker website à la UCF, but free; or OpenSSF badge app, but customizable and can be self-hosted
Terminal classification banner
Virtual console classification banner
I should also make a script for RPM-based Linux that scans and automatically installs dependencies for a CMake build (and probably reports them back). One of the CI services online had this for their Debian-based container and it was lovely. #CMake#programming
For fun, here's an example of using CMake GUI to build PHP from source. Less command-line fuss, thanks to the user-friendly QT GUI. And it even supports presets (JSON build configs).
More workflows coming up in the future. #PHP#CMake
They're all supported with their original #ports "USES", by some #bmake trickery in my new "USES=linuxsrc", fixing up just the parts that are different when building from/for the Linuxulator (like adjusting dependencies and commands to use the #Linux-native versions).
Learn all about #porting Qt applications from Qt5 to #Qt6 from Nicolas Fella during the KDAB Training Day on 27th Nov. Get familiarised with comparing the available modules in Qt5 & Qt6, discussing the strategy & estimation of a port & more. #qtdev#CMake#qml
Anyone have a working CLion CMake project that builds mixed C++/Swift code?
My Swift has broken. I have a valid toolchain, but CMake says "no CMAKE_Swift_COMPILER could be found". When I look in the .log file, it seems to have success building the SwiftCompilerId thing, so no useful info there either.
Also did a brew upgrade cmake and Software Update doesn't have a command line tools update either, and xcode-select is giving the right Xcode, too.
Question into my bubble for #CMake experts: can I do file globbing during build time? Especially when doing an add_custom_command? It works on Linux, but Windows fails. It seems that "COMMAND foo ARGS *.txt" will not expand the wildcard. I can't use file(GLOB ...) as this is done during configure time, not build time. So what's the solution here?
So someone made a commit with a future date to #LLVM. As a result, #git now produces a snapshot with dates in the future. Upon running #CMake on files from that snapshot, #Ninja keeps detecting that generated CMake files are older than their sources and rerunning CMake in a loop. Sigh.