Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. New build system for Qt?
QtWS25 Last Chance

New build system for Qt?

Scheduled Pinned Locked Moved Qt Creator and other tools
11 Posts 5 Posters 5.2k 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.
  • M Offline
    M Offline
    mario
    wrote on last edited by
    #1

    This just stroke my... A new build system for Qt apps? :)

    @
    import QtQuick 1.0
    import QtBuild 1.0

    Build {

    Target {
        name: "myexecutable"
    
        dependencies: deps
    
        resources [
            app_resource
        ]
    
        Component.onCompleted: {
            if (isUnix) resources.append(unix_resources)
        }
    }
    
    Dependencies {
        id: deps
        QtCore {}
        QtDeclarative {}
    
        Repo {
           // Fetch dependencies from a repo (which caches artifact locally, as maven does)?
           url: "repo://com.company.comp"
           repoBase: "url to repo if not standard"
        }
    }
    
    Resource {
        id: unix_resources
        content: {
            Resource { file: "asfk" }
        }
    }    
    
    Resource {
        id: common_resource
        file: "myresourcefile"
    }
    

    }
    @

    Or plain stupid? :)

    1 Reply Last reply
    0
    • L Offline
      L Offline
      lgeyer
      wrote on last edited by
      #2

      May I ask where this comes from?

      1 Reply Last reply
      0
      • A Offline
        A Offline
        andre
        wrote on last edited by
        #3

        People (including yours truly) have toyed with this (and other) ideas yes. At first sight, it seems to make sense to use QML this way, but it turns out build systems are very, very complex beasts. There have been raging discussions on what would be needed for Qt, several existing condenders have been discussed, and no conclusion was reached.

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mario
          wrote on last edited by
          #4

          My head, a couple of minutes ago... Maybe it isn't such a stupid idea after all.

          Just think how easy it is to provide plugins to the build system.

          The basic stuff should be too hard to do (by the trolls :)

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mario
            wrote on last edited by
            #5

            Andre: I've been using maven (mostly a build system for java apps) and it also has a declarative approach which works very well.

            I know that native apps is different and more complex to build than java apps but still I think it would be a great replacement for qmake for smaller project. I don't see why it couldn't replace qmake. The syntax is more cleaner and modern.

            Complexity is solved with plugins which you enable:
            @
            Loader {
            source: "plugins://complex-plugin"
            }
            @

            Well, I think it's fun to explore other opportunities with QML than just UIs. It actually shows that QML is very flexible, I wouldn't even thinking of doing the same thing in, for example, C++

            1 Reply Last reply
            0
            • F Offline
              F Offline
              Franzk
              wrote on last edited by
              #6

              Declarative alone doesn't cut it for build systems. They need to be able to do some imperative stuff as well to get even some basic needs done. Lots has been discussed on the Qt5 mailing list as well about this.

              "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

              http://www.catb.org/~esr/faqs/smart-questions.html

              1 Reply Last reply
              0
              • A Offline
                A Offline
                andre
                wrote on last edited by
                #7

                Sure, you are absolutely right, but QML can have imperative sections, right?

                I think it might be a nice experiment to, instead of only discussing this over and over again, build a proto type based on QML and just see if it is feasable.

                1 Reply Last reply
                0
                • F Offline
                  F Offline
                  Franzk
                  wrote on last edited by
                  #8

                  [quote author="Andre" date="1313662063"]Sure, you are absolutely right, but QML can have imperative sections, right?[/quote]I have little experience with QML.

                  [quote author="Andre" date="1313662063"]I think it might be a nice experiment to, instead of only discussing this over and over again, build a proto type based on QML and just see if it is feasable. [/quote]I think a working proto would indeed be a good one.

                  "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

                  http://www.catb.org/~esr/faqs/smart-questions.html

                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    goetz
                    wrote on last edited by
                    #9

                    A new build system needs to fit into Qt Creator as well. From what I've heard so far, this is very hard to achieve with some QML based system.

                    http://www.catb.org/~esr/faqs/smart-questions.html

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      andre
                      wrote on last edited by
                      #10

                      [quote author="Volker" date="1313662349"]A new build system needs to fit into Qt Creator as well. From what I've heard so far, this is very hard to achieve with some QML based system.[/quote]
                      Really? Creator is able to visually edit current UI QML's. Why would it be so hard to fit the needs of Creator for building then?

                      I will be the first to admit that I don't understand half the requirements for build systems, but I find the idea of something based on QML interesting. However, I seem to remember that CMake also started out in a declarative way, and look where that ended up :-)

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        mario
                        wrote on last edited by
                        #11

                        That's my point too... You already have the framework, tooling and IDE support. Heck, even qmlviewer can be used to build your app!

                        The imperative stuff shouldn't be too hard to fix, there's a great javascript evaluater in QML and please don't forget that qml has a great support for plugins which can "hide" complex and ugly imperative parts :)

                        I mean, if you can create application (quite complex one) with just qml (no additional c++ logic) I can't see why it can't be a better choice than both cmake and qmake.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved