aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
blob: 453dac562656b63d4f489241ec33de641c76157d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import qbs.FileInfo

DynamicLibrary {
    name: "MyLib"
    multiplexByQbsProperties: ["buildVariants"]
    aggregate: false
    qbs.buildVariants: ["debug", "release"]
    qbs.installPrefix: project.installPrefix
    Depends { name: "cpp" }
    Depends { name: "Exporter.qbs" }
    Exporter.qbs.fileName: name + "_" + qbs.buildVariant + ".qbs"
    Exporter.qbs.excludedDependencies: ["local"]
    Exporter.qbs.additionalContent: "    condition: qbs.buildVariant === '"
                                    + qbs.buildVariant + "'"
    property string headersInstallDir: "include"
    cpp.defines: ["MYLIB_BUILD"]
    cpp.variantSuffix: qbs.buildVariant === "debug" ? "d" : ""
    Properties {
        condition: qbs.targetOS.contains("darwin")
        bundle.isBundle: false
    }
    files: ["mylib.cpp"]
    property var config: ({feature_x: false, feature_y: true})
    Group {
        name: "API headers"
        files: ["mylib.h"]
        qbs.install: true
        qbs.installDir: headersInstallDir
    }
    install: true
    installImportLib: true
    installDir: "lib"
    Group {
        fileTagsFilter: ["Exporter.qbs.module"]
        qbs.install: true
        qbs.installDir: "qbs/modules/MyLib"
    }

    Export {
        Depends { name: "cpp" }
        property string includeDir: exportingProduct.sourceDirectory
        property var config: exportingProduct.config
        Properties {
            condition: true
            cpp.includePaths: [includeDir]
            cpp.dynamicLibraries: []
        }
        cpp.dynamicLibraries: ["nosuchlib"]
        Depends { name: "local" }
        local.dummy: true
        Properties {
            condition: true
            prefixMapping: [{
                prefix: includeDir,
                replacement: FileInfo.joinPaths(qbs.installPrefix, exportingProduct.headersInstallDir)
            }]
        }
    }
}