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 3 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.
  • 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)"

    xgranade@wandering.shopX This user is from outside of this forum
    xgranade@wandering.shopX This user is from outside of this forum
    xgranade@wandering.shop
    wrote last edited by
    #3

    @whitequark checks out

    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)"

      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
      #4

      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,

      whitequark@social.treehouse.systemsW guenther@bsd.networkG 2 Replies 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,

        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
        #5

        hasn't read the book / has read the book

        Link Preview Image
        xgranade@wandering.shopX solonovamax@tech.lgbtS 2 Replies Last reply
        0
        • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

          hasn't read the book / has read the book

          Link Preview Image
          xgranade@wandering.shopX This user is from outside of this forum
          xgranade@wandering.shopX This user is from outside of this forum
          xgranade@wandering.shop
          wrote last edited by
          #6

          @whitequark lolz

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

            hasn't read the book / has read the book

            Link Preview Image
            solonovamax@tech.lgbtS This user is from outside of this forum
            solonovamax@tech.lgbtS This user is from outside of this forum
            solonovamax@tech.lgbt
            wrote last edited by
            #7

            @whitequark which book?

            whitequark@social.treehouse.systemsW 1 Reply Last reply
            0
            • solonovamax@tech.lgbtS solonovamax@tech.lgbt

              @whitequark which book?

              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
              #8

              @solonovamax the meme i'm obliquely referencing was about GoT red wedding

              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)"

                x42@mastodon.socialX This user is from outside of this forum
                x42@mastodon.socialX This user is from outside of this forum
                x42@mastodon.social
                wrote last edited by
                #9

                @whitequark That must be the most masochistic tech project short of installing Window ME.

                Now I wonder what you're up to next 🙂

                whitequark@social.treehouse.systemsW 1 Reply Last reply
                0
                • x42@mastodon.socialX x42@mastodon.social

                  @whitequark That must be the most masochistic tech project short of installing Window ME.

                  Now I wonder what you're up to next 🙂

                  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
                  #10

                  @x42 in something like 2019 i tried to improve the "simple makefile" that this project used to have and it damn near gave me a psychotic break after i stared at it for three days. believe me, meta-cmake is an improvement

                  1 Reply Last reply
                  0
                  • cinebox@masto.hackers.townC This user is from outside of this forum
                    cinebox@masto.hackers.townC This user is from outside of this forum
                    cinebox@masto.hackers.town
                    wrote last edited by
                    #11

                    @whitequark Any sufficiently complicated Cmake project contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of a working build system.

                    1 Reply Last reply
                    0
                    • asmw@infosec.exchangeA This user is from outside of this forum
                      asmw@infosec.exchangeA This user is from outside of this forum
                      asmw@infosec.exchange
                      wrote last edited by
                      #12

                      @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 1 Reply Last reply
                      0
                      • 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
                        #13

                        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)

                        whitequark@social.treehouse.systemsW chrisvest@mastodon.socialC noisytoot@berkeley.edu.plN lambda@chaosfurs.socialL ppxl@social.tchncs.deP 6 Replies 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)

                          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
                          #14

                          every time you run make it executes so many $(shell) calls (there are 40 of them, though some would be ifeq'd out) that it takes more time to create a dependency graph than to incrementally compile and link one compilation unit*

                          * if you use lld and split-dwarf, but still

                          recursive@hachyderm.ioR 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)

                            chrisvest@mastodon.socialC This user is from outside of this forum
                            chrisvest@mastodon.socialC This user is from outside of this forum
                            chrisvest@mastodon.social
                            wrote last edited by
                            #15

                            @whitequark Catherine is just doing build system freediving again

                            snoopj@hachyderm.ioS 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)

                              noisytoot@berkeley.edu.plN This user is from outside of this forum
                              noisytoot@berkeley.edu.plN This user is from outside of this forum
                              noisytoot@berkeley.edu.pl
                              wrote last edited by
                              #16
                              @whitequark what is it using rot13 for?
                              whitequark@social.treehouse.systemsW 1 Reply Last reply
                              0
                              • chrisvest@mastodon.socialC chrisvest@mastodon.social

                                @whitequark Catherine is just doing build system freediving again

                                snoopj@hachyderm.ioS This user is from outside of this forum
                                snoopj@hachyderm.ioS This user is from outside of this forum
                                snoopj@hachyderm.io
                                wrote last edited by
                                #17

                                @chrisvest @whitequark what an amazing turn of phrase, thank you for this

                                1 Reply Last reply
                                0
                                • noisytoot@berkeley.edu.plN noisytoot@berkeley.edu.pl
                                  @whitequark what is it using rot13 for?
                                  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
                                  #18

                                  @noisytoot i think it was trying to grep itself but without hitting the grep call, or something similarly unhinged

                                  1 Reply Last reply
                                  0
                                  • xgranade@wandering.shopX This user is from outside of this forum
                                    xgranade@wandering.shopX This user is from outside of this forum
                                    xgranade@wandering.shop
                                    wrote last edited by
                                    #19

                                    @whitequark Gah. This, this, this. I like having Makefiles or similar to capture blessed ways of invoking build systems, but yeah, there's a reason build systems exist, ffs.

                                    eloy@hsnl.socialE 1 Reply Last reply
                                    0
                                    • xgranade@wandering.shopX xgranade@wandering.shop

                                      @whitequark Gah. This, this, this. I like having Makefiles or similar to capture blessed ways of invoking build systems, but yeah, there's a reason build systems exist, ffs.

                                      eloy@hsnl.socialE This user is from outside of this forum
                                      eloy@hsnl.socialE This user is from outside of this forum
                                      eloy@hsnl.social
                                      wrote last edited by
                                      #20

                                      @xgranade @whitequark developer looking at essential complexity: I can remove this accidental complexity

                                      1 Reply Last reply
                                      0
                                      • artemis@with.iridium.inkA This user is from outside of this forum
                                        artemis@with.iridium.inkA This user is from outside of this forum
                                        artemis@with.iridium.ink
                                        wrote last edited by
                                        #21

                                        @whitequark every succesful Makefile-driven project I've seen is in fact a complex Makefile

                                        artemis@with.iridium.inkA 1 Reply Last reply
                                        0
                                        • artemis@with.iridium.inkA artemis@with.iridium.ink

                                          @whitequark every succesful Makefile-driven project I've seen is in fact a complex Makefile

                                          artemis@with.iridium.inkA This user is from outside of this forum
                                          artemis@with.iridium.inkA This user is from outside of this forum
                                          artemis@with.iridium.ink
                                          wrote last edited by
                                          #22

                                          @whitequark or i suppose a more accurate way of looking at it, is it seems the Makefile complexity scales with project complexity, and if it is not doing that then there is probably something fragile about it you're not seeing

                                          artemis@with.iridium.inkA 1 Reply Last reply
                                          0
                                          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