C++ build systems

Discussion in 'App Development' started by Aquarians, May 2, 2020.

  1. Build systems are the catacombs of programming.

    1) In the beginning there was C++ and Make.
    2) Then came Java and ant.
    3) Ant was superseded by maven.
    4) Finally when we had something sane, why not piss on it and invent your own? Gradle & beyond.

    In the meantime C++ recovered some distance and invented cmake.

    If you do C++, what build system do you use at work and why?

    We use some unholy combination of CMake, Python and ivy/ant. Sometimes gradle too. Thing's each of these things on their own speak at least 50,000 dialects but as a programmer you're supposed to hit the ground running.

    So what do you use for building C++?
     
  2. As a programmer having to deal with build systems I feel like a doctor on way to saving a COVID patient and having his car break down. And having the managers expecting him TO FIX THE CAR ASAP AND GET TO WORK IN TIME.
     
  3. southall

    southall

    As well as maven and gradle.
    Then there are the CI systems like Jenkins :vomit:
     
  4. RedDuke

    RedDuke

    We wrote all our stuff in c#. It can do almost anything.
     
    guru and SteveH like this.
  5. >> It can do almost anything.

    That's what I fear, in general.
     
  6. RedDuke

    RedDuke

    why fear? It is not made for mobile or web apps, but anything on PC can be achieved.
     
  7. Snuskpelle

    Snuskpelle

    make/cmake language is a filthy dog, I vastly prefer build tools where build specifications are written in general purpose programming languages. That said, it's not really possible to avoid make/cmake in every instance.
     
  8. ironchef

    ironchef

    How different is visual basic from C#? I can do a little simple coding in VBA excel, how easy is it to learn C#?
     
  9. Snuskpelle

    Snuskpelle

    You can easily learn C# I bet. .NET also has Visual Basic so you might not even have to switch language unless you have a need for that.

    The main immediate difference is that the syntax is very different as C# is from the C language family. So most keywords has to be learnt from scratch even though they do the same things (mostly) as comparable keywords in Visual Basic.
     
    ironchef likes this.
  10. gaussian

    gaussian

    CMake or Meson+Ninja. I prefer CMake because I'm used to it and have script to support it. Additionally it runs everywhere without complaints. Meson+Ninja is a little more finicky mostly because it's relatively new in comparison.

    Cmake deploys to every system. It's a dog if you try to use it without scaffolding tools. Throughout my career I've created a package of 10 or so bash scripts to generate various kinds of cmake projects for me. I should rewrite it in a better language, but bash is field expedient and I can run it on a bone stock POSIX system without having to compile anything.

    Except work on other platforms. I'm with you though. The only reason I still use OpenJDK is because C#'s mono integration is still pretty rough last I checked and Microsoft, moving towards WPF and co., has no interest in bringing more of the C# standard library over. It sucks because C# is infinitely better than Java and actually pleasurable to use.
     
    #10     May 2, 2020