[Qbs] How to download and uncompress files with Qbs directly?

Richard Weickelt richard at weickelt.de
Mon Aug 5 17:41:42 CEST 2019


>> Another automated and platform-independent library interface would be Conan
>> or vcpgkg. Have you searched for packages on bintray?
>> 
> these are some of the services that would need wrapping.

Why would you wrap these tools with Qbs and not use them side-by-side or - the other way round - use them as a wrapper for Qbs? It is my understanding that configuration/dependency/package management sits on top of build automation. Conan provides a recipe containing versions and configuration options for each dependency. It downloads all dependencies and generates something that can be consumed by your build system. In case of Qbs, see https://docs.conan.io/en/latest/integrations/build_system/qbs.html. That defines a sharp boundary between build automation and configuration/dependency/package management. I don't say that Conan is particularly beautiful, but I think it's a reasonable approach.

I haven't used vcpkg. Is it different?

>> If all that is not an option, then you might implement your own download &
>> install solution.
>> 
> i would recommend that "your own" be something contributable upstream,
> to get https://bugreports.qt.io/browse/QBS-62 resolved.
> 
> note that a key feature for configuration management is the ability to
> pin the sources and versions of modules, which is why the "grown-ups"
> from the java world (at least maven and bazel, and i presume also
> gradle) support it. conversely, linux distributors *hate* it - they want
> abstract package names and ranges of acceptable versions, based on
> binary compatibility promises. a good implementation would permit strict
> and relaxed operation with the same project files, and per-module
> overrides from the outside to support selective unbundling (see also
> QBS-61).

Given the current manpower behind Qbs, I have serious doubts that this is going to happen any time soon.

Richard


More information about the Qbs mailing list