Hi all, when talking about how we manage dependencies in the CI system, an interesting pain point came up during the contributors' summit:
We have several redundant overlapping, not very clear ways of specifying a module's dependencies. Optional deps make it harder. I'll list the 5 options I know of below. My question is, can we agree on something less hidden, with simple syntax that can be used by both qmake and the CI system. For the CI system, we can parse pretty much anything, of course we don't want to implement a qmake copy... A sensible compromise might be JSON since afaict qmake eats that. Greetings, Frederik What we currently have (probably incomplete): 1) sync.profile A file in each module that allows specifying dependencies in terms of git modules (including sha1s), perl syntax. Used by syncqt for public headers but also has a section like this (qtdeclarative): # Module dependencies. # Every module that is required to build this module should have one entry. # Each of the module version specifiers can take one of the following values: # - A specific Git revision. # - any git symbolic ref resolvable from the module's repository (e.g. "refs/heads/master" to track master branch) # - an empty string to use the same branch under test (dependencies will become "refs/heads/master" if we are in the master branch) # %dependencies = ( "qtbase" => "", "qtxmlpatterns" => "", ); 2) qt_modulename_.pro sometimes things seem to be excluded here, e.g. qtserialport has: requires(!winrt) 3) module/src/src.pro example qtwinextras and others: win32 { TEMPLATE = subdirs CONFIG += ordered SUBDIRS += winextras qtHaveModule(quick): SUBDIRS += imports } else { # fake project for creating the documentation TEMPLATE = aux QMAKE_DOCS = $$PWD/winextras/doc/qtwinextras.qdocconf } 4) qt5.git in qt.pro we list all modules again, with deps: addModule(qtdeclarative, qtbase, qtsvg qtxmlpatterns) (amusingly this is not even correct, qtsvg is not a dependency of qtdeclarative any more) 5) I don't even understand how qtwebengine does it to not build for Android/iOS... _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development