Kea Sigma Delta
Kea Sigma Delta
  • 133
  • 154 546
How to Integrate OptimizeMentor With WooCommerce
Learn more about OptimizeMentor (and OptimizePress) here: www.optimizepress.com/online-courses/?fpr=hans11
Want to use OptimizeMentor but need to use it with WooCommerce? Me too. Sadly, the OptimizePress team don't provide an integration (they want you to use OptimizeCheckouts instead).
Fear not, you can integrate the two using Zapier, and OptimizeMentor's web API. This video shows you how...
Click the following link for a summary:
keasigmadelta.com/blog/how-to-integrate-optimizementor-with-woocommerce
Other useful resources:
- Learn how to build software with C++'s de-facto standard build system: cmaketutorial.com/
- Learn OpenGL ES 3 + SDL2: keasigmadelta.com/gles3-sdl2-tutorial
- More made by us: keasigmadelta.com/store/
- Support inquiries: keasigmadelta.com/support/
Connect with us:
- KeaSigmaDelta
- KeaSigmaDelta
- t.me/keasigmadelta (Telegram)
- keasigmadelta.com/subscribe/
Disclaimer: Some product links (above) are affiliate links, which we'll receive a small commission if you buy something.
QUESTION - What would you like us to make next, on this channel? Comment below...
About
At Kea Sigma Delta we enjoy creating awesome stuff using software & electronics, and helping others to do the same.
zhlédnutí: 29

Video

CMake vs Make - a real life comparison (with actual code)
zhlédnutí 311Před 14 dny
Get the example/template code in the Kea Campus (Creator tier or higher): keasigmadelta.com/store/campus/downloads/cmake-vs-make/ What are CMake & Make like to use? And which one should you choose? To help you decide, Hans has pitted them head to head with real code. Watch, as he builds the same code using both build systems, and endeavours to make both do the same thing... Click the following ...
CMake Tutorial 80% Done - Available as a Pre-Release
zhlédnutí 115Před 21 dnem
The CMake Tutorial is now 80% done, and is available now at: cmaketutorial.com/ Another chapter of The CMake Tutorial are done. Three more (and a few extras) are still to go. It's already of great value as-is, taking you from nothing through to building code with cmake on multiple platforms, cross-compiling, building multiple targets, etc. Click the following link for a summary: keasigmadelta.c...
Building a Membership Portal
zhlédnutí 79Před 28 dny
I've been hinting at building a membership portal (see keasigmadelta.com/store/landing/membership-program-waitlist/join-the-waitlist/). This video shows the work that goes into building the membership portal using WordPress/WooCommerce plugins, plus some duct tape and good old hard work... The membership portal is still a work-in-progress. You can learn more here: keasigmadelta.com/store/landin...
How all C/C++ build Systems Work (Except for CMake and Premake)
zhlédnutí 9KPřed měsícem
This video was inspired by a comment suggesting a video series on build systems. While I could do that (and will), pretty much all C/C build tools do the same thing, with the exception of odd-balls like CMake and Premake. In this video Hans explains how C/C build systems work, and why CMake and Premake are different. Click the following link for a summary: keasigmadelta.com/blog/how-every-c-bui...
Survey Results are In, What's Next?
zhlédnutí 127Před měsícem
Join the waitlist for what's next, by clicking this link: keasigmadelta.com/store/landing/membership-program-waitlist/join-the-waitlist/ Thanks to everyone who gave me their feedback via the survey (see czcams.com/video/dyalr4gCWsU/video.html ). In this video I give you a summary of the results, and also a sneak peek at what's coming. Click the link below for a summary: keasigmadelta.com/blog/s...
The CMake Tutorial is Now 73% Done - Available as Pre-Release
zhlédnutí 221Před měsícem
The CMake Tutorial is now 73% done, and is available now at: cmaketutorial.com/ Another two chapters of The CMake Tutorial are done. Four more (and a few extras) are still to go. It's already of great value as-is, taking you from nothing through to building code with cmake on multiple platforms. It even covers cross-compiling, and compiling C code for the Web. Click the following link for a sum...
CMake, How it Works (At Three Different Levels)
zhlédnutí 8KPřed měsícem
Want to learn CMake? Visit: cmaketutorial.com/ You've heard about CMake, and want to know how it works? Great! In this video Hans explains how it works at three different levels: the basics, internally, and in practise. Click the following link for a summary: keasigmadelta.com/blog/cmake-how-it-works-at-three-different-levels Other useful resources: - Learn OpenGL ES 3 SDL2: keasigmadelta.com/g...
Things are about to Change. I need your help...
zhlédnutí 118Před 2 měsíci
Give your feedback here: keasigmadelta.com/survey Yes, things are changing. I'm planning something new, that will make Kea Sigma Delta's tagline actual reality. The tagline is: "We enjoy creating awesome stuff using software & electronics, and helping others to do the same." So far, the tagline has been more aspirational than reality. I'd like to change that, and your feedback will help shape w...
YouTube Creator AI That Isn't Hype (Genuinely Impressed)
zhlédnutí 107Před 2 měsíci
Get VidIQ (the AI tool) by clicking the link below (there's a FREE tier): vidiq.com/keasigmadelta AI is all the rage these days. But, it's overhyped, and the flood of AI generated content can be annoying. However, I've stumbled on an AI tool that has me impressed, and is also useful. Watch the video for details... Click the link below for a summary: keasigmadelta.com/blog/a-youtube-creator-ai-t...
Building a Game Engine Resource Manager - RayLib 2D Challenge Part 12
zhlédnutí 477Před 2 měsíci
In the last episode we had Scarfy cheerfully running around collecting coins. But, there was a problem looming. Every coin/object was loading its own copy of the textures & sounds that it needed, which is a massive waste. What we need is a resource manager. Hans builds a simple resource manager in this video, and eliminates the duplicate resources. Click the following link for a summary (and to...
What is a Toolchain, & How Does CMake Fit Into It?
zhlédnutí 893Před 3 měsíci
As requested by @default2043, this video explains what a toolchain is, and how CMake fits into the overall picture. CMake is the de facto standard build system for C . Click here for a summary: keasigmadelta.com/blog/what-is-a-toolchain-and-how-does-cmake-fit-into-it Want to learn how to build software with CMake? Head over to cmaketutorial.com/ #programming #tech #softwaredevelopment #cmake #cpp
Getting Started With C++ on Linux: Setting up GCC, CMake & VS Code
zhlédnutí 951Před 3 měsíci
Learn how to quickly set up your "dev environment" on Linux for C programming. This short tutorial shows you how to install GCC/G , CMake, and Visual Studio Code (a.k.a., VS Code). You'll be up and running in no time. Click the following link for a summary: keasigmadelta.com/blog/getting-started-with-c-on-linux-setting-up-gcc-cmake-and-vs-code NOTE: This video is an excerpt from The CMake Tutor...
RayLib 2D Challenge Part 11 - Collecting Coins (a.k.a., Making Objects Interact in the Game World)
zhlédnutí 868Před 4 měsíci
RayLib 2D Challenge Part 11 - Collecting Coins (a.k.a., Making Objects Interact in the Game World)
CMake vs Make - A developer's perspective
zhlédnutí 3,7KPřed 6 měsíci
CMake vs Make - A developer's perspective
Customer Service UX (User eXperience) Design Fail
zhlédnutí 60Před 7 měsíci
Customer Service UX (User eXperience) Design Fail
The CMake Tutorial is Available (Prerelease)
zhlédnutí 512Před 8 měsíci
The CMake Tutorial is Available (Prerelease)
Connecting Filezilla to FTP Servers Behind a NAT Router (the Easy Way)
zhlédnutí 847Před 9 měsíci
Connecting Filezilla to FTP Servers Behind a NAT Router (the Easy Way)
Does CMake Only Work for C++? And Other Questions...
zhlédnutí 213Před 10 měsíci
Does CMake Only Work for C ? And Other Questions...
RayLib 2D Challenge Part 10 - Sprite Animation with Texture Atlases
zhlédnutí 2,2KPřed rokem
RayLib 2D Challenge Part 10 - Sprite Animation with Texture Atlases
AmigaOS 4.x Hardware vs Emulation Survey Results
zhlédnutí 232Před rokem
AmigaOS 4.x Hardware vs Emulation Survey Results
Using Third Party Libraries Like RayLib in Your Project with CMake
zhlédnutí 6KPřed rokem
Using Third Party Libraries Like RayLib in Your Project with CMake
Compiling Multi-file C++ Source Code with CMake
zhlédnutí 10KPřed rokem
Compiling Multi-file C Source Code with CMake
What is File Syncing?
zhlédnutí 51Před rokem
What is File Syncing?
Learning to embrace CMake instead of hate it
zhlédnutí 727Před rokem
Learning to embrace CMake instead of hate it
ZitaSync prototype demo - Cloudless (Direct) File Syncing
zhlédnutí 60Před rokem
ZitaSync prototype demo - Cloudless (Direct) File Syncing
RayLib 2D Challenge Part 9 - Adding Atmosphere with Music
zhlédnutí 2,2KPřed rokem
RayLib 2D Challenge Part 9 - Adding Atmosphere with Music
Merry Christmas & Happy New Year
zhlédnutí 48Před rokem
Merry Christmas & Happy New Year
ZitaFTP Server v1 36 - User Feedback Edition
zhlédnutí 25Před rokem
ZitaFTP Server v1 36 - User Feedback Edition
Raylib 2D Challenge Part 8 - Walking on the Terrain (Simulating Physics)
zhlédnutí 5KPřed rokem
Raylib 2D Challenge Part 8 - Walking on the Terrain (Simulating Physics)

Komentáře

  • @ElliotdeVries
    @ElliotdeVries Před 17 dny

    Thanks, very helpful. I'm new to this area and have been concentrating on learning CMake, but want to know more about how the (non-meta) build systems work as well. Looking forward to other comparisons.

  • @YellowCable
    @YellowCable Před 19 dny

    what do you think of meson?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 18 dny

      I've heard good things about meson, but haven't had a chance to try it out yet. That will be coming in a future video...

  • @default2043
    @default2043 Před 19 dny

    They always say one needs to see something worse to start to appreciate what they have. Make seems really difficult and cryptic. Can you please make a video and talk about what generator expressions are and if we can use them for both single generator systems and multi-generator systems as well?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 18 dny

      I can consider making a video about generator expressions. They can be used for both single and multi-config generators. I don't particularly like generator expressions, because they're harder to reason about than the basic build script. They don't work with if/else, because the value in the generator only exists at generation time.

    • @default2043
      @default2043 Před 18 dny

      @@KeaSigmaDelta I can totally understand that, but it does seem like they work better for environments such as Visual Studio and others that are multi-config and I have no choice but to learn about them. Really frustrating.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 18 dny

      @@default2043 Yes, they're unavoidable for multi-config generators with anything that is different on a per-config basis.

  • @javierrivas6604
    @javierrivas6604 Před 19 dny

    cmake looks less complcated than makefile, but as I use amigaos4 to buildmy little amigaos4 stuff I'm used to makefile, but maybe for laarge projects it can be a PITA.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 18 dny

      Sadly, AmigaOS 4's CMake port is rather old, so it's not usable for newer CMake scripts. GNU Make is more complicated, but once you've got a good template, then you can usually get it up and running relatively quickly. I have no trouble using it for large projects, because adding an extra source file to an existing makefile is very easy.

  • @Nebula_Protogen752
    @Nebula_Protogen752 Před 20 dny

    When I tried to compile the code, I got this error .... "Error LNK2019 unresolved external symbol DrawTextureTiled referenced in function "public: class raylib::Texture & __cdecl raylib::Texture::DrawTiled(struct Rectangle,struct Rectangle,struct Vector2,float,float,class raylib::Color)" (?DrawTiled@Texture@raylib@@QEAAAEAV12@URectangle@@0UVector2@@MMVColor@2@@Z) C:\ Src Code\out\build\x64-Debug\ Src Code C:\ Src Code\out\build\x64-Debug\TileMap2D.cpp.obj 1" What can I do to fix this?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 20 dny

      I'll try to look into this for you later, when I have time. in the meantime, try deleting your build sub-directory, and build it again from scratch.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 19 dny

      I just tried building from scratch using the files I uploaded to the website, and it worked just fine. How are you trying to build it? Using CMake as per the ReadMe? Or did you try to create your own Visual Studio project? If it's the latter, then you need to link to RayLib 4.5.0. The CMake build script will download and build RayLib automatically.

    • @Nebula_Protogen752
      @Nebula_Protogen752 Před 19 dny

      @@KeaSigmaDelta oooh, I was using a version of Raylib that was newer, please give me a link to 4.5.0

    • @Nebula_Protogen752
      @Nebula_Protogen752 Před 19 dny

      @@KeaSigmaDelta I made it as my own visual studio project, using cmake. I had to comment out several functions from files in the third party folder without knowing why. Well now I know why, I downgraded to an older version of Raylib that didn't have the comments Raylib-cpp needed. I'll let you know if this works as soon as I can

    • @Nebula_Protogen752
      @Nebula_Protogen752 Před 19 dny

      @@KeaSigmaDelta and I still got that same error. Do you have a discord account so we can talk about this over there?

  • @Nebula_Protogen752
    @Nebula_Protogen752 Před 26 dny

    Hello. I'm having trouble with RayGui. When making buttons, it complains about the "{" Symbol right after (Rectangle). Do you know why this is happening? Virtual Studio says "a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax." The code is identical to the one in the download for this video.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 26 dny

      Those kind of initializers are a more recent C/C++ feature. Try telling your compiler to use the C++11 or C++17 standard. If you're using C instead of C++, then use the C99 standard. Here's how you do it in Visual Studio: learn.microsoft.com/en-us/cpp/overview/install-c17-support?view=msvc-170

    • @Nebula_Protogen752
      @Nebula_Protogen752 Před 26 dny

      @@KeaSigmaDelta Thank you very much! I'll let you know if this works tomorrow when I get more Work done! :3

  • @wjrasmussen666
    @wjrasmussen666 Před 27 dny

    Make was going crossplatform going back decades.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 27 dny

      You can use it on multiple platforms, including Windows. However, it's normally only used with GCC. I personally wouldn't use GNU Make with anything other than GCC.

    • @wjrasmussen666
      @wjrasmussen666 Před 27 dny

      @@KeaSigmaDelta We used it in 94 at a company that had 16 flavors of UNIX. You make is sound like nobody did it. I think that is wrong. I know you have to say stuff to make a point and sell cmake.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 27 dny

      ​@@wjrasmussen666 At no point did I suggest that nobody did it. I've personally used GNU Make on multiple platforms, including Windows. You're welcome to disagree with me. But, insinuating that I'm saying "stuff to make a point and sell cmake" is both overly cynical and rather insulting.

    • @wjrasmussen666
      @wjrasmussen666 Před 27 dny

      @@KeaSigmaDelta No you didn't but you did the left handed version of it. cmake does it.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 26 dny

      @@wjrasmussen666 No, but believe whatever you want.

  • @alessandro_yt
    @alessandro_yt Před 28 dny

    Your videos covering cmake are awesome. Any plans to explain autotools with this kinda detail@ explanations?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 28 dny

      No plans for autotools, because I find it to be an absolute nightmare to use. Some people love to hate CMake, but it's a huge step up from autotools.

  • @default2043
    @default2043 Před 29 dny

    Great video! One aspect of CMake that I find challenging is the `find_package()` command. While it seems convenient at first glance, it often presents several frustrating issues. A common problem I encounter is when I install or download a third-party library and place it in a non-standard location. Each library tends to have its own method for handling this situation, sometimes requiring manual configuration of custom variables for the new location. I'm curious if there's a simpler or more universal approach to address this, perhaps through a single variable that can manage it all.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před 28 dny

      I personally prefer to either include dependencies directly in the repository, or use FetchContent (czcams.com/video/_5wbp_bD5HA/video.html). FetchContent will download and build a dependency if it isn't installed. Another alternative are package managers like vcpkg & conan. I don't use those myself (yet more external dependencies including package repositories).

  • @alessandro_yt
    @alessandro_yt Před měsícem

    What a valuable knowledge. Any book that explains this detailed?

  • @MrWilliamSide
    @MrWilliamSide Před měsícem

    Big thanks for this. I was wondering a lot about this.

  • @josephbrandenburg4373
    @josephbrandenburg4373 Před měsícem

    Really helpful video

  • @sanjikaneki6226
    @sanjikaneki6226 Před měsícem

    can u also make a more in depth example vid on how each work includeing cmake?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      That's the plan. I already have more in depth videos for cmake: czcams.com/play/PLORJX3OiHbbOBnj4l5boc1wayYg4wic0O.html

  • @alexmo6538
    @alexmo6538 Před měsícem

    Please show us how we can create this Android apk game!

  • @DeathSugar
    @DeathSugar Před měsícem

    The killer feature of build systems - dependency management, not incremental builds. Which files to build ,where to find internal/external dependencies, what order those dependencies should compile and how to pass those to linker and so on. Incremental builds could work just by using things like ccache and it's not necessary part of the build systems by itself. Also there's at least 4 kinds of compile times optimizations there are includnig caching, parallel building (multiple machine compile different parts of the project), multicore building and smashing files together into big ones. And of course they can be done all at the same time to a certain degree, since each of it introduce it's own quirks to the build system.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Very few C/C++ build systems have dependency management... Of course build systems have more features than mentioned in the video, but if you throw all of them at a beginner then they'll get overwhelmed.

    • @DeathSugar
      @DeathSugar Před měsícem

      @@KeaSigmaDelta you literally place what files to build in the script. whats that if not a dependency management.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@DeathSugar That's simply telling it what files to compile & link to.

    • @DeathSugar
      @DeathSugar Před měsícem

      @@KeaSigmaDelta okay, whats dependency management is then? except for resolving system search paths to shove into compiler/linker options and installing them from some kind of registry, what else it is?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      ​@@DeathSugar Let's use the Rust language's dependency manager as an example. It's called "cargo." You tell it what external packages/libraries you need, and it'll fetch them from the internet and install them for you. It'll also install dependencies to those dependencies.

  • @PeakKissShot
    @PeakKissShot Před měsícem

    Meson the best

  • @MichaFita
    @MichaFita Před měsícem

    And Rust has one. Actually two, but that's Google's fault.

  • @Dmytro-Tsymbaliuk
    @Dmytro-Tsymbaliuk Před měsícem

    I wrote a simple build system in C++ with compile-time configuration In the build system library, there is simply a function that recursively compiles the files in a given directory into 1 executable file, and this is enough for me, the result is a simple configuration file and the compilation starts as quickly as possible Multiprocessor compilation is present

  • @GillesLouisReneDeleuze
    @GillesLouisReneDeleuze Před měsícem

    build systems are a psyop, you don't need them

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Everything seems to be a psyop these days. At least this psyop is useful...

  • @wuksi
    @wuksi Před měsícem

    Please compare meson to cmake.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Meson is on the list. I've heard good things about it...

  • @StarEclipse506
    @StarEclipse506 Před měsícem

    One minute in and I'm infuriated no docs explained the gcc -o prog.exe *.o thing as well as you did

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Thanks. The docs are usually written by people who "know too much," and therefore think that everything is obvious.

  • @oracleoftroy
    @oracleoftroy Před měsícem

    I personally don't get why people like to set a variable for source files. I'd just list them in the add_executable or add_library call directly, or better, use target_sources. That way you can enable modern C++ features like modules fairly easily and use generator expressions for any platform specific files. If the build becomes complicated enough to justify the variable and it cant be simplified, ok, introduce some variables, but I don't think they add any value as a default.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Part of it's probably habit, which started with older build systems. I do think the script looks cleaner when setting a variable for source-files, though. Plus it's easier to switch when you do get to the point that it becomes necessary.

  • @thesun___
    @thesun___ Před měsícem

    Making incremental builds using a shell script is actually quite easy. I just think that many people don't always want to put in the effort of learning shell scripting, thus the invention of fancy build systems.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Do you have an example script that can do it?

  • @hamzakhiar3636
    @hamzakhiar3636 Před měsícem

    I don't get why clang for Mac and not for all three, isn't making new programming languages uses cpp with llvm??

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      You certainly could try to use your preferred compiler on all platforms if you want. Do bear in mind that each platform has its preferred and best supported compiler toolchain, and using one of the others may come with issues. For example, I do use GCC on Windows, but have run into issues (e.g., certain APIs that aren't supported yet).

  • @cycleoffire2220
    @cycleoffire2220 Před měsícem

    What stoppes me from checking if file changed in the script (for example using git hooks, hashing or timestamps) and then build only that .o, then link .exe file? If so, what's the caveats? Sorry if the question is stupid, only started to learn build systems and shell, and want to understand it's advantages and disadvantages.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Comparing timestamps is basically how it's done. However, checking the timestamp of the source-file is *NOT* enough. You need to check if any of the source file's dependencies have changed too. So, you check the header files that it includes, then check the header files that those header files include, and again and again... You're better off using a build tool that already does the change detection rather than try to recreate it on your own.

    • @cycleoffire2220
      @cycleoffire2220 Před měsícem

      @@KeaSigmaDelta Oh, so this is basically how makefile works? Plus dependancies and flags of course. Thanks, it really helps to understand makefile workflow better!

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@cycleoffire2220 Yes, although with makefiles you need to add some special code to get the dependency change tracking to work. I cover that in this video: czcams.com/video/_DOdoAJf17k/video.html (and will do so again in a future cmake vs make video)

  • @playbahn
    @playbahn Před měsícem

    "Please don't add another build system" XDDD

  • @flightman2870
    @flightman2870 Před měsícem

    Subscribed. Waiting for the video

  • @Kitsune_Dev
    @Kitsune_Dev Před měsícem

    I’m really confused with what tools to use and how, I’m using Lua and Luau for automation but I can’t seem to figure out how to use FFI I also want to learn low level language like C/C++, Rust and Zig but it is really overwhelming

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Lua FFI is only of interest if you already have C code to call. You've listed a lot of different things. I suggest you pick one, and focus on that for now. My CMake Tutorial (cmaketutorial.com/) can help with compiling C/C++ code, but I don't have a beginners C/C++ tutorial (yet). Most people seem to recommend www.learncpp.com/. The Rust language has some good tutorials out there. I've heard about Zig, but have zero experience with it.

    • @chigoziethankgod9579
      @chigoziethankgod9579 Před měsícem

      To aid you a bit, you shouldn't be aiming to learn languages, but programming concepts and c++ will help you with that, with c++ you could grasp most of the concepts in C & most other high level languages (Java, Python) and the rest, the underlying concepts are basically all the same, Difference is in C, you mostly have to work with algorithms, and higher level languages (APIs and framework's)

    • @chigoziethankgod9579
      @chigoziethankgod9579 Před měsícem

      Don't freak out or see it as something so tedious or cumbersome, and don't also waste time trying to understand all the concepts, if you don't understand something move past it, as time goes on you'll get it for sure, might be years but you'll understand it. I understand some concepts 3 years later and still understanding concepts till date, most top programmers don't understand all the concepts..

    • @Kitsune_Dev
      @Kitsune_Dev Před 26 dny

      @@chigoziethankgod9579 thank you for the advice, I have been programming with lua for almost 8 years, I’m struggling to find a job that’s why i need to learn other languages

  • @danielnoriega6655
    @danielnoriega6655 Před měsícem

    I really like CMake autoconf/make was a pain in the but

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      It's refreshing to hear someone say they like CMake because some love to hate it. I found autoconf to be a nightmare, but got pretty good at using make.

  • @SPimentaTV
    @SPimentaTV Před měsícem

    that's exactly what I was searching for! Learning C is rather simple, but when I started to search for compilers and build systems, I starting to get lost 🙈 Thank you for the explanation, and eager to watch the following videos 👍

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      You're welcome. Great to hear it's what you were searching for.

  • @paradox8425
    @paradox8425 Před měsícem

    But what if I need a specific feature that none of the build systems support?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Some build systems are very extensible, so I doubt you'd ever get to that point. If you do, my recommendation would be to stop, and take some time to think about what you're doing and why. Are you making things more complicated than needed?

    • @paradox8425
      @paradox8425 Před měsícem

      @@KeaSigmaDelta Well my current need is include modules(not c++ modules), libraries, etc into the build system, if they are needed by project. Only this might not make all the sense in the world, but I also want to know if a module is enabled or not so I can take different code paths (for example: "#if MODULE_XYZ_PRESENT") And my current approach is kinda extending CMake not a standalone build system. So I generate a CMake script at the end with all the required includes and defines

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      ​I personally go for simplicity. So, I err strongly on the convention over configuration side. I want building my code to be easy too, not just the end program. This means minimal options/configurations. When adding more options I ask the question: "is the benefit of this feature/option worth the added complexity and future maintenance?"

    • @paradox8425
      @paradox8425 Před měsícem

      @@KeaSigmaDelta Well, I think it's worth. It also means I don't need to write CMake that often which is nice.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@paradox8425 Sounds good.

  • @fiona9891
    @fiona9891 Před měsícem

    i think the better solution could be to have build scripts in the project's main language, with *maybe* an (ideally small and uncomplicated one file) library to help implement incremental compilation where it's necessary that way everyone working on the project will already be proficient at the language they use to compile it, and at worst they'll have to learn how a small library works granted this only works if you keep the library small, as soon as you try to add a ton of unnecessary features to make it easier you completely ruin the whole idea of being easy to learn

    • @paradox8425
      @paradox8425 Před měsícem

      That's chicken egg problem. You need to compile that file to get your build details, unless you use some kinda weird cpp interpreter. Also that means build scripts can access everything and do everything which might be bad for security

    • @fiona9891
      @fiona9891 Před měsícem

      @@paradox8425 i mean, you don't really need to have to have a complex build tool to compile a single file and run it, just a compiler plus it's not really any more unsafe than like, a makefile

    • @paradox8425
      @paradox8425 Před měsícem

      @@fiona9891 It's usually not a single file tho. You use one for tests, one for each dependency, etc I mean you can run any arbitrary code in a cpp file. Literally anything

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      I think Jonathan Blow might be experimenting with a similar idea with Jai, a new programming language that he's working on.

    • @fiona9891
      @fiona9891 Před měsícem

      @@paradox8425 yeah, but makefiles (and other common build systems) can execute programs on your computer, which means it can do basically anything a c program can like, theoretically you could make a makefile that writes a c program and compiles it then runs it, so i don't think it's necessarily any more unsafe plus, you can have your main build script build the other files once you execute it, so i think it can potentially still work in that situation (i'm not sure how unwieldy that would be, it's hard to say without seeing it in action, but i'm hoping it shouldn't be too bad and i think using the same language to build your project is a pretty massive benefit) it also means you don't really have to worry about someone having a different version of a build tool because the entire build tool is right there in your project, which you have to agree is pretty great

  • @bersK00
    @bersK00 Před měsícem

    These standards for build systems suck! I better add a new “better” standard to fix all the issues of the previous ones! /s (this is how we ended up here)

  • @patflyer
    @patflyer Před měsícem

    That last sentence was one of the funniest damn things I've heard in weeks.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Hehe. It was a plea straight from the heart...

  • @usopenplayer
    @usopenplayer Před měsícem

    It's funny that I've compiled so much code over the last decade, but I've never heard anyone break this concept down and state it so simply. Wish I had this video when I was confused and getting started! I AM going build another build system though. Sorry about that.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      I wish I had a video like this when I got started. As for your upcoming build system. I both wish you wouldn't, and wish you all the best. Maybe your one will finally be the one "that doesn't suck."

  • @bradocksolo
    @bradocksolo Před měsícem

    Great video, thanks!

  • @sameerakhatoon9508
    @sameerakhatoon9508 Před měsícem

    subscribed, thanks

  • @deoabhijit5935
    @deoabhijit5935 Před měsícem

    Nice

  • @Jitesh-ek5xf
    @Jitesh-ek5xf Před měsícem

    nice video bud

  • @rretro2042
    @rretro2042 Před měsícem

    I hate CMake, but needless to say it is a necessary evil.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      I used to hate it too, but it has improved a lot.

  • @fakegamer4815
    @fakegamer4815 Před měsícem

    Why don't game studios use it to port their games to Linux?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      I can't speak for any game studio. Nevertheless, a few possible reasons: - Most game studios don't write their own graphics engine, but use an existing one (e.g., Unity , Unreal Engine). Realistically, they can only support platforms that their chosen engine supports - Even if the game engine supports Linux, will there be enough gamers using Linux who would buy their game to justify the expense of porting?

  • @friedrichmyers
    @friedrichmyers Před měsícem

    Are you even a programmer? Or are you freestyling the learning?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      I've been writing software for decades.

    • @friedrichmyers
      @friedrichmyers Před měsícem

      @@KeaSigmaDelta I would be very thankful if you explain a bit about the function and its parameters or why you're doing what you're doing.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@friedrichmyers Which function are you asking about?

  • @alejandroioio6784
    @alejandroioio6784 Před měsícem

    I don't need to see the video to tell that this guy knows.

  • @joaoaugusto6290
    @joaoaugusto6290 Před měsícem

    Im a Beginner,only able to write simple terminal applications but your content is simply amazing and easy to follow,i am grateful to have found your channel,wish you sucess buddy

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Thanks. Keep working at it and you'll be able to make much bigger things.

  • @ScarabaeusSacer435
    @ScarabaeusSacer435 Před měsícem

    I've been a software developer for 20+ years, and have read about but never really programmed in C++, but I have continuously read about it and its many changes over the years, and finally decided to get serious about picking up C++ because of all the things which you just can't do (well) in other languages-- things like GPU programming for non-graphics apps. Everybody talks about C++ as being full of foot-guns, but I see the language side as being manageable; the hardest part in getting started has been coming to grips with the build system (CMake), IDE integration, and most especially dependency management, and the lack of any any standard. Other popular modern languages either have a standard, or provide tooling for building and dependency management. Anyways, enough with the rant: your example of including raylib with CMake, was the first example that actually worked for me, and I'm including examples from textbooks. I immediately subscribed and purchased your CMake ebook, and am going through your other content also.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Thanks. Great to hear that my content is helping you. I hope that The CMake Tutorial helps more people get started with C++.

  • @jongeduard
    @jongeduard Před měsícem

    Small note. I would not speak in terms of "Visual Studio", which is the mostly name of the IDE, but the compiler name is actually specifically Visual C++, even though it can build both C and C++ code. Hence the abbreviation MSVC.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Thanks for the suggestion. Yes, Visual Studio is the name of the whole package, including the IDE, the compilers, etc.. While MSVC may be more precise, "Visual Studio" is more beginner friendly. People are more likely to have heard of "Visual Studio" than "Visual C++" or "MSVC."

  • @kirillarionov123456
    @kirillarionov123456 Před měsícem

    Hey, I see you answer questions in comments so I have to ask too. Let’s say there are assets that have to be packaged together with the binary. How would you install them with CMake, and how would you access these assets (relative/absolute paths) from the binary?

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      I use a custom post-build command that adds a symbolic link to the data directory from the directory containing the compiled executable: # Create a symbolic link to the data directory after the project is built add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/Data/ $<TARGET_FILE_DIR:${PROJECT_NAME}>/Data/) You can do a similar thing for installing, except you'd probably want to copy the data files instead of creating a symbolic link.

    • @kirillarionov123456
      @kirillarionov123456 Před měsícem

      @@KeaSigmaDelta thanks for the answer! Though I’ve met some problems myself with similar method. When you start your binary not from the source directory, but rather from the parent or some other directory (running from terminal for example), the assets are then discovered not from directory of the binary, but rather from directory where you run it in terminal. I’ve solved this by prepending argv[0] to the paths of assets. Maybe, I thought, there is more of an elegant solution.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@kirillarionov123456 That's because your program is using the Current Working Directory (CWD) instead of checking what the program's actual directory is. Everything is fine when those two are the same, but it fails the moment those are different. You can get the program's actual path from argv[0]. From there you can get the program directory by chopping off the program's filename. After that, you want to convert it to an absolute path (because the CWD can change), and open all data files relative to that. NOTE: argv[0] may point to a symbolic link, in which case you'll want to follow that link to the program's actual directory.

    • @kirillarionov123456
      @kirillarionov123456 Před měsícem

      @@KeaSigmaDelta ye, this is pretty much how I resolved it, thanks!

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@kirillarionov123456 Great!

  • @happygofishing
    @happygofishing Před měsícem

    Wouldn't it be easier if windows just shipped with make

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Yes, but the situation is what it is...

    • @happygofishing
      @happygofishing Před měsícem

      @@KeaSigmaDelta windows always makes itself a pain compared to the Unixes.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@happygofishing You can actually use Make on Windows with the GCC compiler. Theoretically, you could even use it with the Visual C++ compiler. However, Visual Studio's command line parameters are completely different to GCC's, so you'd have to supply parameters on a per-compiler basis.

    • @happygofishing
      @happygofishing Před měsícem

      @@KeaSigmaDelta this is what I'm saying, it would be very convenient for CL to move towards more GCC/CLANG command line parameters.

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      @@happygofishing It's never going to happen, because they'd have to break compatibility with all existing build scripts.

  • @spounka
    @spounka Před měsícem

    I loved the video, very simple and straightforward, no shenanigans of extra info and I like that I would be interested in a similar style video explaining the compilation process from having a source file to an actual binary executable (or library), with all the magic of linkers and preprocessing in between and maybe a video about how compiled binaries are laid in memory? (This stems from me reading about the -fpic flag) Great video, keep up the amazing content!

    • @KeaSigmaDelta
      @KeaSigmaDelta Před měsícem

      Thanks. I sort of go through the compilation process in the video about toolchains: czcams.com/video/9vw0iO6uwUk/video.html AFAIK, the layout of a program in memory is platform dependent (i.e,. different OSes organize things differently).

  • @Kitsune001Kei
    @Kitsune001Kei Před měsícem

    I love this channel, it's very helpful for me. I'm using CMake with CLion and MSVC compiler (best support for a new features, like C++ named modules, I was using clang before)