CMake vs Make - A developer's perspective

Sdílet
Vložit
  • čas přidán 2. 12. 2023
  • What's the difference between CMake and GNU Make? And why would we choose one over the other? Let's go beyond the surface level difference such as CMake being a "meta-build system," and look at what it's actually like to use them...
    Click the following link for The CMake Tutorial:
    cmaketutorial.com/
    Click here for a summary of the video:
    keasigmadelta.com/blog/cmake-...
    #programming #tech #softwaredevelopment #cmake #cpp
  • Věda a technologie

Komentáře • 27

  • @thejking
    @thejking Před 3 měsíci

    Thank you so much for this short but thorough explanation! 👍

  • @default2043
    @default2043 Před 3 měsíci +7

    Great Video! Can you also make a video on CMake explaining what toolchains are?

  • @VanosTurbo
    @VanosTurbo Před 6 měsíci +1

    Great explanation!

  • @yusaza5830
    @yusaza5830 Před 5 měsíci

    Thanks man

  • @committedcoder3352
    @committedcoder3352 Před 2 měsíci

    I started with Make and enjoy it (sounds masochistic now that I say it aloud), but I should probably learn how to use at least the basics of CMake to get it into my repertoire, it's fairly common and I tend to just skirt around it when I come across it lol.

    • @KeaSigmaDelta
      @KeaSigmaDelta  Před 2 měsíci

      Sounds like you're where I was a number of years ago. I had figured out how to get make to do most of what I wanted. I would manually adapt projects that use CMake to use Make instead... until that was too much of a pain.

  • @AnotherCG
    @AnotherCG Před 2 měsíci

    Just something wrong with one compiler?

    • @KeaSigmaDelta
      @KeaSigmaDelta  Před 2 měsíci

      Not sure what you're asking.
      The best compiler to use depends on each platform (e.g., Visual Studio on Windows).

  • @rasheedatanda9927
    @rasheedatanda9927 Před 2 měsíci

    man looks like the smaller version of luis van gaal 😅

    • @KeaSigmaDelta
      @KeaSigmaDelta  Před 2 měsíci +1

      Heh. Well, he's from the Netherlands, just like my parents...

  • @llothar68
    @llothar68 Před 3 měsíci

    I had to go back from make to individual builds for each platform. Cmake is just bad. Still use it on Linux but I want to go away too because you can’t share compiled files between multiple targets unless you end up with lots of object libraries. And modern winapp sdk forces msbuild anyway

    • @KeaSigmaDelta
      @KeaSigmaDelta  Před 3 měsíci

      Interesting. That's not a problem that I've encountered.

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

      Fairly common problem for industrial usage of C++! CMake helps DevOps teams interact with the build toolchain more easily, but the control that Make provides can lead to more efficient builds in large projects, so seasoned developers tend to favor Make. I want to try CMake with Ninja, though, since that is aimed at helping with this issue. Could you do a video about CMake using Ninja?

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

      @@tobyfrancisv I haven't tried using CMake with Ninja yet. Are you saying that Ninja with CMake could lead to faster builds than using the native build system (e.g., Make)?

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

    Make was going crossplatform going back decades.

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

      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 měsícem

      @@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 měsícem

      ​@@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 měsícem

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

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

      @@wjrasmussen666 No, but believe whatever you want.