Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. current status: writing a build system in cmake

current status: writing a build system in cmake

Scheduled Pinned Locked Moved Uncategorized
45 Posts 23 Posters 11 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • arcterus@wafrn.vaguely.artA arcterus@wafrn.vaguely.art

    @aismallard@woem.space @whitequark@social.treehouse.systems

    cmake with classes

    whitequark@social.treehouse.systemsW This user is from outside of this forum
    whitequark@social.treehouse.systemsW This user is from outside of this forum
    whitequark@social.treehouse.systems
    wrote last edited by
    #36

    @arcterus @aismallard aaa

    1 Reply Last reply
    0
    • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

      to be clear i'm not doing this because i love writing cmake syntax that would drive mere mortals mad. i do it because i'm replacing a "simple Makefile" that has perhaps once fit that bill, but eventually turned into a 1200-line (not including *.inc files) monstrosity with a load-bearing rot13 call inside of a manual reimplementation of half of git submodule

      (this particular monstrosity has since been removed but the overall genre has not changed)

      c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
      c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
      c0dec0dec0de@hachyderm.io
      wrote last edited by
      #37

      @whitequark ah, the fingerprints of an engineer who is very capable, but doesn’t bother to read the docs or think about alternatives…
      I’ve reimplemented a git LFS client without knowing that’s what I was doing.

      1 Reply Last reply
      0
      • c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
        c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
        c0dec0dec0de@hachyderm.io
        wrote last edited by
        #38

        @whitequark I mean very minimal. Like it fetched the bits I needed. “God, why are these binary files just a sha hash? Oh, and there are files over here with those hashes as names, fine, let’s do this.”

        c0dec0dec0de@hachyderm.ioC 1 Reply Last reply
        0
        • c0dec0dec0de@hachyderm.ioC c0dec0dec0de@hachyderm.io

          @whitequark I mean very minimal. Like it fetched the bits I needed. “God, why are these binary files just a sha hash? Oh, and there are files over here with those hashes as names, fine, let’s do this.”

          c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
          c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
          c0dec0dec0de@hachyderm.io
          wrote last edited by
          #39

          @whitequark self-awareness is not always online

          1 Reply Last reply
          0
          • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

            current status: writing a build system in cmake

            not "something that builds a project and is also implemented in implemented in cmake"

            no, it is "something that is implemented in cmake and can be used to implement a build system that is in turn used as a part of a build system (also in cmake)"

            nelhage@mastodon.socialN This user is from outside of this forum
            nelhage@mastodon.socialN This user is from outside of this forum
            nelhage@mastodon.social
            wrote last edited by
            #40

            @whitequark I have described the Linux kernel's build system as "a build system implemented in GNU make," so, seems normal.

            1 Reply Last reply
            0
            • c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
              c0dec0dec0de@hachyderm.ioC This user is from outside of this forum
              c0dec0dec0de@hachyderm.io
              wrote last edited by
              #41

              @pikhq @whitequark there are a lot of people for whom build systems are just not on their radar. I don’t understand them in the least, but I have definitely observed them in action.

              1 Reply Last reply
              0
              • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                current status: writing a build system in cmake

                not "something that builds a project and is also implemented in implemented in cmake"

                no, it is "something that is implemented in cmake and can be used to implement a build system that is in turn used as a part of a build system (also in cmake)"

                N This user is from outside of this forum
                N This user is from outside of this forum
                nicolas17@social.treehouse.systems
                wrote last edited by
                #42

                @whitequark someone wrote a raytracer and PNG encoder in CMake sooo

                1 Reply Last reply
                0
                • asmw@infosec.exchangeA asmw@infosec.exchange

                  @whitequark

                  The world of buildsystems is weird and fascinating.

                  My opinion on cmake is that (for certain domains) it's the best there is, and that's sad.

                  J This user is from outside of this forum
                  J This user is from outside of this forum
                  jameswidman@mastodon.social
                  wrote last edited by
                  #43

                  @asmw @whitequark to some extent, cmake is a natural consequence of the fact that every platform is almost actively hostile to the idea that 3rd party developers also target other platforms

                  1 Reply Last reply
                  0
                  • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                    i'm making it sound more complicated than it is, the actual thing boils down to "cmake's dependency resolution algorithm doesn't work for a particular edge case i'm having, so i'm implementing a different one, in cmake script"

                    but also "dependency resolution algorithm" is basically what a build system is, so,

                    guenther@bsd.networkG This user is from outside of this forum
                    guenther@bsd.networkG This user is from outside of this forum
                    guenther@bsd.network
                    wrote last edited by
                    #44

                    @whitequark
                    Having called out to tsort from a GNUmakefile to order library builds, I'm taking emotional damage from this thread.

                    1 Reply Last reply
                    0
                    • david_chisnall@infosec.exchangeD This user is from outside of this forum
                      david_chisnall@infosec.exchangeD This user is from outside of this forum
                      david_chisnall@infosec.exchange
                      wrote last edited by
                      #45

                      @whitequark

                      What happens if we remove all the abstractions? That will make everything simpler!

                      1 Reply Last reply
                      1
                      0
                      • R relay@relay.infosec.exchange shared this topic
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups