[QBS] How to get path informations

Mathieu Bouchard mbouchar at gmail.com
Sat Feb 18 23:11:22 CET 2012


Hi again,

I figured out it was localPath. This fixed my include problem. Now I have
another problem with the cpp module. I want to do something like:
Application {
    Depends { name: "cpp" }
    Depends { name: "Qt.core" }
    property bool sharedSsl: true
    cpp.includePaths: [
        "C:/OpenSSL/outinc"
    ]
    cpp.libraryPaths: ["C:/OpenSSL/out"]
    Group {
        condition: sharedSsl == true
        cpp.dynamicLibraries: ["eay32", "ssl32"]
    }
    Group {
        condition: sharedSsl == false
        cpp.dynamicLibraries: ["crypto", "ssl"]
    }
}
And then:
import "cryptapp.qbs" as CryptApplication
CryptApplication {
    name: "cryptui"
    Depends { name: "Qt.gui" }
    cpp.dynamicLibraries: ["gdi32"]
    Group {
        files: [
            "main.cpp",
            "cryptui.ui"
        ]
    }
}

But I think I don't understand how inheritance should work, because only
gdi32 is included in the final linkage. If I remote the gdi32 line, the
other libraries are not used. If I don't put them in a Group, then they are
used, but if I uncomment the gdi32 line, only the gdi32 library is used.

Can we put cpp.dynamicLibraries in a Group? And how can I append libraries
informations from multiple files?

Thanks again

On Sat, Feb 18, 2012 at 2:04 PM, Mathieu Bouchard <mbouchar at gmail.com>wrote:

> Hi,
>
> I'm really interested about replacing my existing qmake code with qbs,
> so I'm trying to port one of my projects to it. But I hit a dead end.
>
> The project consist of multiple binaries that use some common
> informations. For example, the qmake project could be abstracted as:
> =========================>
> myproject/
> myproject/myproject.pro
> myproject/myproject.pri
> myproject/include
> myproject/src/console/console.pro
> myproject/src/console/main.cpp
> myproject/src/ui/ui.pro
> myproject/src/ui/main.cpp
> In the .pri file, I have:
> INCLUDEPATH += $$PWD/include
> <=========================
>
> I tried to achieve that with the following structure:
> =========================>
> myproject/
> myproject/myproject.qbp
> myproject/myproject.qbs
> myproject/include
> myproject/src/console/console.qbs
> myproject/src/console/main.cpp
> myproject/src/ui/ui.qbs
> myproject/src/ui/main.cpp
> <=========================
>
> The main myproject.qbp file is:
> =========================>
> import qbs.base 1.0
> Project {
>     references: [
>         "src/console/console.qbs",
>         "src/ui/ui.qbs"
>     ]
> }
> <=========================
>
> The src/*/*.qbs have:
> =========================>
> import qbs.base 1.0
> import "../../../myproject.qbs" as CommonApplication
> CommonApplication {
>     name: "console"
>     files: ["main.cpp"]
> }
> <=========================
>
> And finally, the myproject.qbs:
> =========================>
> import qbs.base 1.0
> Application {
>     Depends { name: "cpp" }
>     Depends { name: "Qt.core" }
>     cpp.includePaths: [
>         "include"
>     ]
>     files: [
>         "src/backends/api.cpp",
>     ]
> }
> <=========================
>
> The problem is that the included directory is relative to the included
> .qbs file (eg: for console.qbs, this is
> -IC:/[...]/myproject/src/console/include) instead of
> -IC:/[...]/myproject/include. I'm probably doing something wrong here, but
> I don't know how to solve it, even after looking into all the examples and
> the QtCreator patch. I even looked into the code-source of qbs, looking at
> something relevant, but found nothing of interest.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qbs/attachments/20120218/689b5c1a/attachment.html>


More information about the Qbs mailing list