We use in a cross-platform project (Linux, Windows, Android) plain gnu makefiles with includes for different toolchains and flags for each arch platform, Conan v1 to handle library dependencies and bash scripts to orchestrate the builds. Now we're porting the makefiles to CMake to integrate with Conan v2 that uses cmake presets to inject dependencies and Conan profiles to set the toolchains for each architecture platform for cross-compiling. The issue is that you need to run "conan install ...." to build dependencies and generate cmake presets before you can run cmake. That is something odd when you have integrated CMake plugins in your IDEs like VSCode
@abdulshabazz85976 сағат бұрын
Visual Studio build tools are so frustrating!! Due to Windows being such a widely used platform makes it a target for high grade nation-state and cartel malware (I refer to the nation crippling kind). I routinely download game engine source code and my antimalware scanner ultimately deleted my final executable project because I had unknowingly compiled a W32.infostealer.Trojan *into* one of my shipping DLLs... ...F**** Windows man!!
@etherweb67967 сағат бұрын
TLDR - Cmake is not as good as Meson, but is best for compatibility, if you don't have a lot of dependencies, use Meson. More often then not, it is best to take the time to learn Cmake.
@oleksiistri842918 сағат бұрын
i love c++ for syntax, freedom and some of the features, but absolutely hate it for build systems and that there is no good package manager. tbh, i do not get why makefile exists in the first place, i think all that make can do , can be recreated with a bunch of shell/Powershell scripts. actually shell scripts are even more powerful, becuase you can download dependencies with wget.
@KeaSigmaDelta17 сағат бұрын
Shell scripts don't do dependency checking and fast incremental builds. Sure, you could implement all that stuff, but you're generally better off using an existing build system.
@MichaFita19 сағат бұрын
CMake is most popular, but it's awful language that's mixture of declarative and imperative paradigms, it's awful language that changes every year and make it's patterns obsolete very quickly. Everyone uses CMake in their own way what creates tons of incompatibilities between libraries. It's a maintenance nightmare, especially as you ever did something with cargo.
@dbtx23 сағат бұрын
Meson looked promising, so I started trying to get into it. Then I found that the documentation site sets up the current document's "navigation sidebar" on the right and then automatically hides all the nested sections which AREN'T IN VIEW, expanding things that come into view and collapsing things that go out of view... unless you block the JS and have no right sidebar at all. So, one way or another, you don't know what subheadings there are until one of them is already on your screen, making the thing an insult to the very concept of navigation sidebar. I was so unhappy that I merely walked away.
@KeaSigmaDelta22 сағат бұрын
That's a pity, because Meson looks promising. Developers should treat your comment as a warning, because if you present your product/project poorly, then it doesn't matter how awesome the product actually is. Very few will get beyond the front page and give your project a chance. Presentation and ease-of-use matter...
@maxgordon3194Күн бұрын
awesome. thanks buddy. your awesome
@maxgordon3194Күн бұрын
where were you 5 years ago. kea sigma delta, the last endian bender. please also teach how to use an hex editor. youre awesome.
@KeaSigmaDelta22 сағат бұрын
Thanks. I've rarely used a hex editor, and when I do it's usually just to peek inside a binary to see what I can find.
@maxgordon319421 сағат бұрын
@@KeaSigmaDelta yes can you make a tutorial how to use it and check it. many people use it to find interesting sutff from game files and also read animation and bone data or textures. they say something about headers and there isn't much info out there really. and when you ask someone to teach or even give you a head start you know how people are on the internet mostly. it would be cool if you show how to read memory and learn headers and existing data and stuff same as this little and big endiannes thing. your channel is a gold mine.
@KeaSigmaDelta19 сағат бұрын
@@maxgordon3194 Okay, thanks for the suggestion.
@maxgordon3194Күн бұрын
aweosme video, if you find the time can you show some practical applications how to use c++ properly in the industry work. most universities and colleges teach console applications then you're screwed. please guide what to do next, I tried direct x programming but its a huge jump from a console application straight there. please guide what to do next.
@KeaSigmaDelta22 сағат бұрын
Thanks. The world beyond console apps is huge, and it depends on what you want to do. If you want to do draw graphics, then starting with something like Raylib or SDL2 is a lot easier than Direct-X or OpenGL. I've got a 2D Raylib Challenge series of videos where I build a proto platform game bit by bit: kzbin.info/aero/PLORJX3OiHbbMs9AFM5bzpNUychJm1raub I also have a starter tutorial for OpenGL ES: keasigmadelta.com/gles3-sdl2-tutorial I don't have much for application programming, yet. The only GUI programming tutorial that I have is for AmigaOS (kzbin.info/www/bejne/rYfbmJaBbMmoiMU&pp=ygUSYW1pZ2EgbXVpIHR1dG9yaWFs). More videos are coming...
@maxgordon319421 сағат бұрын
@@KeaSigmaDelta where were you 4 years ago XD. thanks so much. ill start with your amigaOS series. which of these are more demanding in the market for c++ as it is now? like which skill is more needed related to c++
@ArtemShoobovychКүн бұрын
i tried a lot of C++ build systems, but for slightly more complex cases, involving a few 3rd party dependencies. my main preference is CMake solely because VCPKG (syntax and the user experience are just garbage in my opinion). XMake is much better (at least it is a simple and usable syntax) plus it supports both VCPKG and a few more, but it really lacks good IDE support. bazel and buck are both better (than XMake) in terms of syntax, but buck is somewhere in a limbo between a working but deprecated v1 and non-working future v2. neither supports VCPKG. but both have an insanely big benefit of a parallel compilation, which you do not normally get with other build systems. the idea of CMake where it only generates build scripts for target system is just wrong in my opinion - why should a developer bother with this intermediate step?
@KeaSigmaDeltaКүн бұрын
The only reason that a developer should bother with the intermediate step of generating the "native" build script, is because that's how CMake (and Ninja, Meson, Premake, Bazel, etc.) work. You don't really need to know that this is how it works. Just run the configuration step with "cmake ..", and then do the actual build with "cmake --build . --parallel". I've seen some nitpick and obsess over the fact that CMake is a "meta build system" or a "build script generator." Personally, I don't care that it's a "meta build system, because that's NOT why I use it. I use it because it enables me to build my software on multiple platforms.
@ArtemShoobovychКүн бұрын
@@KeaSigmaDelta i know about the CLI flags, i was just expressing an opinion as a rhetorical question =)
@mygamesmКүн бұрын
i just do cargo add x and cargo build
@KeaSigmaDeltaКүн бұрын
Yeah, because you use the Rust language (which I have not yet been able to properly try out).
@MichaFita19 сағат бұрын
I built C++ programs with cargo 😜
@rursus8354Күн бұрын
The largest problem with CMake is that there are no real tutorials. There are some three purported tutorials that actually just twaddle, presuming we already know what CMake does. Like written by an expert that are unable to actually teach the nitty-gritty details.
@hiedtchannelКүн бұрын
True. CMake is free but the company owning it is for-profit. I once asked a question with work email and they come back suggesting a whole course for my team.
@KeaSigmaDeltaКүн бұрын
That's why I created The CMake Tutorial: cmaketutorial.com/
@alex-vq1yy2 күн бұрын
Please make daily problem set like this, this very interesting and enjoyable
@KeaSigmaDeltaКүн бұрын
Glad you enjoyed it. I could create more of these, but not daily (too much work).
@rocknowradio2 күн бұрын
I was about to take a very interesting C++ project (SOCKS5 proxy, DNS, a lot of good stuff to challenge). After 10 hours of trying to make the cmake to work (on ubuntu, so not Win32 to blame) I met with the owner and told him no. If he would not insist to use cmake (and ACE, for some reason)... I had the first PoC working. But spending 70% of time on build only is insanity. Same for winget. Unusable. Then fired up a console and build OpenSSL and others in minutes. D'oh.
@yingshenyu2 күн бұрын
no xmake?it might be the most closest thing to cargo now.
@KeaSigmaDeltaКүн бұрын
Sorry, I haven't tried that one.
@lemna91382 күн бұрын
Great video, only thing I'd add is that the visual studio built system is very resistant to debugging. So please avoid writing software with complicated build steps in it, you will eventually hit a wall of the build becoming unreliable
@KeaSigmaDeltaКүн бұрын
Thanks. I agree with keeping things simple, including the build script.
@DanieleNiero2 күн бұрын
Nobody recommends/likes SCons?
@KeaSigmaDeltaКүн бұрын
Not that I know of. I've heard about it because the Godot game engine uses it.
@DanieleNiero20 сағат бұрын
@@KeaSigmaDelta I found this very interesting, because I always thought that tools such as these are better of if they actually are a library written in a multi purpose, multi paradigm, language so the configuration file itself is written using that language. This gives advantages, because you can leverage the language's full capabilities. For example it became much easier to collect the files to compile, or to install the compiled one. You can use the infrastructure of the library or build your own if you need something particular... Now, I don't mean to say that SCons is a better tool than the others. In fact it is a bit of a weird python library and certain design decisions are certainly questionable, but I'm surprised that people prefer to have a tool that implements some sort of specif domain language, like CMake, instead of one based on Python or some other multi purpose language.
@KeaSigmaDelta19 сағат бұрын
@@DanieleNiero The preference is probably because CMake is so dominant that it's the "de facto standard." Nobody has time to try out all build systems, so they tend to go with what's most popular.
@quantumapprentice81202 күн бұрын
You mentioned a "cmake vs make" video at 5:05, do you have a link to it?
@KeaSigmaDelta2 күн бұрын
There are two videos: kzbin.info/www/bejne/hoi8hKx6Z9eJmK8 kzbin.info/www/bejne/fXuXgJKcoaylj9k
@quantumapprentice81202 күн бұрын
@@KeaSigmaDelta thank you!
@seawardspy-jl4hz2 күн бұрын
Premake5?
@KeaSigmaDelta2 күн бұрын
I didn't test that one, but it looks interesting.
@andrewgrant7883 күн бұрын
Visual Studio includes pretty decent CMake support in its latest versions but the best IDE for CMake is probably CLion from JetBrains. Both have CMake debuggers and both support remote development but CLion also supports building and debugging inside Docker containers.
@andreyv1163 күн бұрын
I've done make-level build control in cmake when porting a makefile build system to cmake as part of work a while back. It was tedious but the reward was 3x faster build
@VioletGiraffe3 күн бұрын
CMake being the most used is a big mistake. Some kind of a "sunken cost" fallacy. Just because we spent time on a bad tool doesn't mean we have to keep using the bad tool forever now.
@hedlund3 күн бұрын
I've been at it since the early 00s and still haven't found anything to knock CMake off my top spot, yet. Unless it's a tiny thing, in which case I tend to write a justfile with a few recipes to call clang/gcc directly. It's absolute ass to get even remotely comfy with CMake, but the ROI on the time spent learning it makes it well worth it, at least for me.
@thewelder35383 күн бұрын
Here's what I've learned in 40+yrs of coding. Visual Studio is the way to go. It's all simply self-contained and you can just hit build and voilá, out pops an executable. The problem with CMake is that there's so much farting around. Everybody does things differently and rarely can you get CMake to immediately work out of the box. Something always breaks somewhere because of something that isn't installed, or not on the path, or in a different location etc etc. Then you also have a dependency on CMake itself etc. I just want to download a solution file and just build, simples. This does mean, you're locked into Windows, but if you learn Make, you can create a Makefile and have that look after you forever. It's not like you'll be changing it everyday or something. Then there's the automatic downloading of dependencies, which is a terrible idea from the outset. Firstly, you're at the mercy of that resource going away, being broken and a myriad of other things that could break your build. It's far easier to add that dependency as a library that is built as part of the solution. CMake only really exists because people couldn't read the Make man file; oh and because it's free. The same reason Git is the most common repo.
@mogenshansen72103 күн бұрын
Thanks for the effort. While the topic is both important and interesting, I find several important problems with the findings presented. First - as it is also mentioned - CMake is a build system generator (not a build system), which targets multiple make systems (like make, Ninja and msbuild). Thus comparing CMake and say make or Ninja is really comparing apples and oranges. CMake is worthless without a build system like make or Ninja. Mentioning Nuget but not vcpkg is a significant omission. Vcpkg is more for C++, while Nuget is more for .NET. An important aspect of evaluating build systems and build system generators is how does the systems work at larger scale (for professional usage). It is not really that important how easy it is to make a Hello World project, but rather to know that you wont get stuck after a significant investment. Also how to integrate 3rd party code, is important. Since CMake is the industry de facto standard today, it has a huge advantage. Regardless if whether someone like it or not. How to write Ninja files is not really important, since that is not the intension (as mentioned). Reading Ninja files may be important for troubleshooting, and that is straight forward. But really the point of Ninja is speed (and it is fast), thus a comparison of build speed for reasonable sized projex4 between say Ninja, make and msbuild would be interesting. A tricky part of build systems for C++ is how modules is supported. It may not be common today, but will be soon. My understanding is that CMake with Ninja (and probably msbuild) is supports modules, while it is difficult (maybe impossible) using make. How does say Meson handle C++ modules ?
@KeaSigmaDelta3 күн бұрын
If you (or someone else) does a more extensive comparison of build systems, then let me know and I'll link to it from here.
@mogenshansen72103 күн бұрын
@KeaSigmaDelta I don't plan to do that. As you show it is really a huge effort. My current approach, from working on multiple significant sized mostly cross platform projects, is to use CMake to generate Ninja files (for fast build) and use that from Visual Studio code. For package management CPM is effective. And have the option of generating project files for Visual Studio and XCode when needed. But if better alternatives exist I'm always currious.
@Mzkysti3 күн бұрын
Comparison to for example cargo would be nice. Also unit testing and integration testing should be part of the build system?
@KeaSigmaDelta3 күн бұрын
Cargo is for rust. I see testing as a separate task to building, although build systems can have testing facilities (e.g., CTest). Regardless, covering that too would make the video too long-winded for most people.
@Mzkysti3 күн бұрын
@KeaSigmaDelta The Rust build system would be good reference for C/C++, it still uses GCC, Clang, etc. I would never build anything without unit tests, so I see as integral part of it.
@georgehelyar3 күн бұрын
Probably a skill issue (I'm ok in C and C++ but they are not my main languages) but I struggled with protobuf in cmake. I got there eventually but it was painful. For example can't glob files that don't exist yet. In another project I had a nice little re2 dependency, and then re2 later took abseil as a dependency and I had to make changes to my cmake, which seems wrong.
@VolkerGoller3 күн бұрын
GNU make, or make in general, is a good idea turned into a nightmare. Too many hidden properties, too many hidden defaults
@nic37ryКүн бұрын
Good look even trying to run it on windows, it will fail even with a simple mkdir
@ShimoriUta773 күн бұрын
Bro: "[Bazel is] needlessly complicated" Me: "sudo pacman -S bazel" Guess the problem, in this case, is not Bazel, it's Windows... again.
@KeaSigmaDelta3 күн бұрын
Maybe, but Windows didn't decide how Bazel should be installed on Windows. Nor did it decide to create a separate tool called Bazelisk and make that the recommended way to install Bazel.
@JoeDiPilato3 күн бұрын
Bazelisk is just an optional tool that allows the version of the build system (bazel) itself to be automatically downloaded and used dynamically according to a file checked into a repo. This is particularly impactful if the bazel version is updated during the life of the project, since checking out historical commits can be rebuilt without needing to worry about the bazel version. (Similarly useful when a project is being worked on by multiple devs, or when working on different projects that use different bazel versions)
@yokozombie2 күн бұрын
I can confirm that Bazel is pain in the ass to get on Windows because authors didn't care a bit
@N....4 күн бұрын
Visual Studio also supports Linux and Android the same way as it supports Windows, and it's a lot easier to switch between different configurations and CPU architectures than with generators like CMake. Though, actually maintaining and comparing the properties for those different configs/archs in VS is a bit slow and tedious compared to just writing some if branches in CMake. VS does support .props files though which can simplify sharing properties between multiple projects.
@KeaSigmaDelta3 күн бұрын
Do you mean Visual Studio itself? Or VS Code? While sharing the same (base) name, those two are different products. AFAIK, Visual Studio exists on Windows & MacOS X. VS Code works on many platforms.
@N....3 күн бұрын
@@KeaSigmaDelta I mean Visual Studio, not VS Code. Yes, Visual Studio only runs on Windows currently, but it supports targteting Windows, Linux, and Android using C++.
@m4saurabh4 күн бұрын
build.zig
@KeaSigmaDelta3 күн бұрын
Wow. Zig fans are busy in the comments section. Is this a sneaky way to try make me check out Zig? ;-)
@bimoverbohm68374 күн бұрын
I've been using CMake for a couple of years now and maintain a CMake build system for rather large multi-platform project during my day job. CMake is such an incredibly hot mess. So many bad decisions, so much confusion, broken dependencies, debuggability sucks... But then again, it is so common and has so much functionality there is nothing comparable atm. I should really look into Meson, because we need to extend CMake with Python anyway,
@SuperGauravgautam4 күн бұрын
didn’t even put xcode in the thimbnail. its good though. definitely better than visual studio.
@KeaSigmaDelta3 күн бұрын
Sorry about that. It isn't there because I didn't try it out (don't have a Mac). I did mention it, though.
@SuperGauravgautam3 күн бұрын
@ i know, thats why i said its not in the thumbnail and not that its not mentioned
@toby99994 күн бұрын
We use MS Visual Studio for all C++ projects. It is a "propper" build system and it beats the pants off of CMake in my opinion. VS can build these C++ projects without any of the crappy 3rd part tools like CMake. I tear my hair out whenever we encounter an open source lib e.g. PoDoFo. It comes with CMake files that never work without a massive amount of pain. And even when they eventually work, all CMake does is create the .sln and revent dependencies. And it does it badly. Why do this? Why not distribute sources with VS .sln and .prj files. It's nuts. I should add that we only build for Windows. There's no other OS worth bothering with in our case.
@PaulMetalhero4 күн бұрын
Hi, Nice video! I'm using xmake. It's Lua based, it can handle dependencies, C++20 modules, so simple and works great on every platform
@ulrich-tonmoy4 күн бұрын
What about the zig build system
@KeaSigmaDelta4 күн бұрын
A few people have asked/suggested that. Maybe later, when I finally get around to trying out Zig itself.
@apprenticerocker98852 күн бұрын
I don’t know Zig build system but your avatar brings me back to my childhood 😊
@ulrich-tonmoy2 күн бұрын
@@apprenticerocker9885 its one of the reason im in this sector and theres a guy building a game in unreal engine looks quite good
@andrewdunbar8282 күн бұрын
@@KeaSigmaDelta Trying Zig is great, especially if you're interested in newer languages like Zig, Rust, and Odin. And of course the Zig build system is Zig. But you probably don't have to learn Zig that much separately beforehand. There's some biggish projects out there that are not in Zig but use Zig as their build system already.
@NotMarkKnopfler4 күн бұрын
Meh. I just write my make files by hand. All these build systems seem to be more trouble than they're worth, to be honest 🤷
@KeaSigmaDelta4 күн бұрын
use whatever works best for you...
@vvyogi4 күн бұрын
Similar experience, tried to use Bazel with a third-party library. Even after spending a significant amount of time, I couldn't make things work (tried the workspace and bazelmod both) and had to switch back to CMake (glad).
@SuperGauravgautam4 күн бұрын
im watching it after openai has announced that o3 has achieved agi lol
@ yeah its probably overhyped as usual. But it did clear an agi benchmark which is more progress than I would have bet on after o1 in this much time. Depends on exactly how hyped it is.
@software_development_os4 күн бұрын
I do not know where to start (:->) But my first question would be, why someone should use a build-system at all nowadays? And if, why not just use a build shell script? Even with projects with 50+ files, this would only take a few lines of script code (depending what you actually want to do by the script) and make a separate script for each platform. Secondly, the main usefulness of buildsystems is when a project grows over a certain size (maintaining all the dependencies, buildtimes, libraries, etc.) comparing buildsystems with projects < 10 files, is like comparing sorting algorithms with just 3 elements to sort ... But I appreciate the effort to focus at least on the differences between C/C++ buildsystems ... we need more of these kind of videos.
@KeaSigmaDelta4 күн бұрын
Shell scripts don't do incremental builds, and that matters a lot when the project gets large. Fair point about the limitations of comparing build systems with small projects. I kept them small to be easier to understand (important for videos like this), and because I have limited time to work on this. The two projects do show/test the two fundamentals of any project: building multiple files, and linking to libraries.
@software_development_os3 күн бұрын
@@KeaSigmaDelta Yes, for large codebases I totally agree, a build-system is a must, but for small to "medium" projects any buildsystem IS the bloat and does not help anymore. This is totally different compared to the past where indeed incremental builds are essential, but nowadays the hardware is so fast that there is an optimum size of a project where just building every c(pp) file for every build is almost indistinguishable from an incremental build. Your example Raylib is a good example, on my old i5, I just download the raylib version I need, remove all the build-bloat, create a build-script with 2 functional lines (one to build all the obj-files and one to build the library) and that builds in 1 to 2 seconds. What is there to gain with incremental builds or a build-system? No need to install CMake, no need to include a hardcoded url in my build-files, no need to learn CMake syntax, no need to adapt a makefile when adding c[pp] or h-files, no need to remove bloat-files before making backups, etc.. Even for a larger project like SDL2 (150-200 c-files), on my old PC it builds in ca. 20 sec., and most of the work was to remove the build-system bloat to get it building like that .... Don't get me wrong, if I had to wait 20 sec every time if I worked at the project, it would really bother me. But I would first look for other solutions to speed it up, before introducing a make-system, replacing the two functional lines in a shell-script.
@SergLapinКүн бұрын
This is how autotools started, just write a shell script, keep adding macros and etc to reuse parts for different projects. Wuala, you are an owner of a hairy ball of shell scripts like autotools.
@lptimey4 күн бұрын
have you tried the nob library from the channel tsoding? it’s quite different and simpler
@RichardEricCollins4 күн бұрын
I took the other option. 😂 I made my own build tool. Calls GCC directly. No intermediate files created. Uses one file to define the project. Does all the dependency work. Not as powerful as cmake. But for simple projects just works. A file that lists source files, include paths, libs and build options. Job done. All written in c++. Am I mad. Yes. But my tool needs no other tool or environment other than GCC to work. And does not fill your project with a million temporary files.
@Wosser1sProductions3 күн бұрын
Sounds like NOB from tscoding
@aniolmarinatares88075 күн бұрын
For serious projects I've found a pretty good balance by using GNU Make as the higher scripting language (on top I still have neovim bindings), I use it to call CMake commands, which at its turn uses ninja as the target build system.
@KeaSigmaDelta4 күн бұрын
Interesting way of working.
@whiitehead5 күн бұрын
Definitely would have liked to see premake in this video but otherwise great comparison, thanks!
@rj7250a5 күн бұрын
Premake should not be used, it is barely maintained.
@KeaSigmaDelta4 күн бұрын
That's a pity. I thought that premake looked interesting.
@KeaSigmaDelta4 күн бұрын
Yeah, sorry. After 6 months I decided that's enough build systems. Premake does look interesting, though.
@abarocio805 күн бұрын
A fear comparison would be between cmake and auto tools (not make).
@KeaSigmaDelta4 күн бұрын
Comparing make with cmake is useful to those who use Make directly (which I suspect is far more than use autotools). If someone does do a cmake vs autotools comparison, then please share the link here.
@abarocio805 күн бұрын
A good comparison would be between cmake and auto tools (not make).
@KeaSigmaDelta4 күн бұрын
Comparing make with cmake is useful to those who use Make directly (which I suspect is far more than use autotools). If someone does do a cmake vs autotools comparison, then please share the link here.
@GuillermoH775 күн бұрын
Comment before watching: my experience of 25+ years of dealing with them is they range from bad to terrible. Really, one of the worsts downsides of C and C++.
@GuillermoH775 күн бұрын
Comment after watching it: I still think the same about C++ BS (Build Systems), but you present some interesting thoughts at the end. Nice video!
@FLMKane5 күн бұрын
Cmake is the number one reason why I don't touch c++ For C? I'd rather use a plain old makefile
@KeaSigmaDelta4 күн бұрын
Thanks.
@toby99994 күн бұрын
Not if you're using VS. It eliminate the agony. It just works.
@toby99994 күн бұрын
@@FLMKaneHow about using C++ without CMake. That's what I've been doing for 30 years. I will never touch CMake again. It is total garbage and heart attack inducingly difficult to use. That said, if you're stuck on Linux, you don't have that option.
@anon_y_mousse5 күн бұрын
I've had far too many problems with CMake, Meson and Ninja to ever recommend them. I only update when I need to for security's sake, and CMake hates me as a result. But the number of times I've fixed other people's projects refusing to build by changing the minimum version number "required" tells me it's a garbage system. The minimum version should be set by the features used, not just willy nilly based on the current version number in use. Regular old Make isn't difficult and you can write a template and copy it at the start of every project and adding to it is easy. Of course, there are other build systems you should try, such as Tsoding's nobuild which he's now renamed as nob.h and converted to a single header drop-in. It's an intriguing concept using the language itself to build a project, although you could use it for any language other than C if you know how to issue the compiler commands to build them.
@davidfrischknecht82615 күн бұрын
Another package manager that works with Visual Studio is vcpkg, which also has Raylib available. Fun fact: vcpkg uses CMake behind the scenes.