Suck my ass sachel On Tue, May 10, 2022 at 8:49 AM Christian Kandeler <christian.kande...@qt.io> wrote:
> > On 5/10/22 15:02, Карелин Павел wrote: > > > > > > 05.05.2022 12:14, Christian Kandeler пишет: > >> On 5/5/22 11:00, Карелин Павел wrote: > >>> > >>> > >>> 05.05.2022 10:47, Christian Kandeler пишет: > >>>> On 5/4/22 18:18, Карелин Павел wrote: > >>>>> Christian, how would you solve my problem? > >>>>> After the project is built, the deb-package is assembled. To build > >>>>> the deb-package, you need a list of dependent libraries (not all, > >>>>> only parts, system dependencies no required). For example this list: > >>>>> > >>>>> /opt/ffmpeg/4.4/lib/libavutil.so* > >>>>> /opt/ffmpeg/4.4/lib/libswscale.so* > >>>>> /opt/ffmpeg/4.4/lib/libswresample.so* > >>>>> /opt/opencv/4.5.5/lib/libopencv_core.so* > >>>>> /opt/opencv/4.5.5/lib/libopencv_calib3d.so* > >>>>> /opt/opencv/4.5.5/lib/libopencv_imgproc.so* > >>>>> > >>>>> I can get library paths and names of so-modules from dependencies: > >>>>> > >>>>> Depends { name: "lib.ffmpeg" } > >>>>> Depends { name: "lib.opencv" } > >>>>> > >>>>> How can I create such a list and put it in the package_build_info > >>>>> file? With the rules? > >>>> lib.ffmpeg and lib.opencv are modules in your projects? > >>> Yes, they are modules. I use my own QBS-extensions to include > >>> third-party assembled libraries in my projects > >>> (https://github.com/hkarel/QbsExt/tree/master/modules/lib). > >> > >> Then I think the correct way is to > >> > >> - collect these libraries in a Group in the respective module > >> > >> - mark them as target artifacts (see > >> > https://doc.qt.io/qbs/qml-qbslanguageitems-group.html#filesAreTargets-prop > ) > >> > >> - give them a suitable tag > >> > >> - on the consuming side, create a rule whose > >> inputsFromDependencies matches that tag and in this rule, do whatever > >> you need to do. > > > > Tried to follow you recommendation: > > > > --- LibModule --- > > Module { > > id: libmod > > property string prefix > > property string version: "" > > > > property bool enabled: true > > property bool useSystem: false > > > > property string includeSuffix: "/include" > > property string libSuffix: "/lib" > > > > property path includePath: (useSystem || !enabled) > > ? undefined > > : prefix + (version.length ? "/" + > > version : "") + includeSuffix > > > > property path libraryPath: (useSystem || !enabled) > > ? undefined > > : prefix + (version.length ? "/" + > > version : "") + libSuffix > > > > property var dynamicLibraries: ["sodium"] > > property var staticLibraries: [] > > ... > > Group { > > //name: "package-build" > > fileTags: "package-build" > > filesAreTargets: true > > files: { > > var libfiles = []; > > if (!libmod.useSystem && libmod.enabled) > > for (var i in libmod.dynamicLibraries) { > > libfiles.push( > > libmod.libraryPath + > > ("/lib{0}.so*").format(libmod.dynamicLibraries[i])) > > } > > > > console.info("=== libfiles ==="); > > console.info(libfiles); > > > > return libfiles; > > } > > } > > } // Module > > > > LibModule { > > id: sodium > > version: "1.0.x" > > prefix: "/opt/sodium" > > checkingHeaders: ["sodium.h"] > > dynamicLibraries: ["sodium"] > > staticLibraries: ["sodium"] > > } > > > > Product { > > name: "ToxPhone" > > ... > > Depends { name: "lib.sodium" } > > ... > > lib.sodium.version: project.sodiumVersion > > //lib.sodium.useSystem: project.useSystemSodium > > > > Rule { > > id: pkgbuild > > //inputs: ["package-build"] > > inputsFromDependencies: ["package-build"] > > > > Artifact { > > fileTags: ["package-build-file"] > > filePath: FileInfo.joinPaths(project.buildDirectory, > > "package_build_info") > > } > > prepare: { > > var outputFile = > > FileInfo.joinPaths(project.buildDirectory, "package_build_info"); > > > > console.info("=== outputFile ==="); > > console.info(outputFile); > > } > > } > > > > } // Product > > > > The inscription "=== outputFile ===" is never printed. What am I doing > > wrong? > > > Did you remember to connect the "package-build-file" tag to your product > type? Either by making this tag the product type or via a chain of rules. > > > Christian > > > > _______________________________________________ > Qbs mailing list > Qbs@qt-project.org > https://lists.qt-project.org/listinfo/qbs >
_______________________________________________ Qbs mailing list Qbs@qt-project.org https://lists.qt-project.org/listinfo/qbs