aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/testdata/exports-pkgconfig/exports-pkgconfig.qbs
blob: 674f78c94702aca2794e420c8eed5cee3ef1a990 (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import qbs
import qbs.FileInfo

Project {
    Product {
        name: "dummy"
        Export { Depends { name: "TheFirstLib" } }
    }

    Product {
        name: "SomeHelper"
        Depends { name: "Exporter.pkgconfig" }
        Exporter.pkgconfig.versionEntry: "1.0"
    }
    StaticLibrary {
        Depends { name: "cpp" }
        name: "BoringStaticLib"
        files: ["boringstaticlib.cpp"]
        Export {
            Depends { name: "cpp" }
            cpp.defines: ["HAVE_INDUSTRIAL_STRENGTH_HAIR_DRYER"]
        }
    }
    DynamicLibrary {
        name: "TheFirstLib"
        version: "1.0"

        Depends { name: "SomeHelper" }
        Depends { name: "Exporter.pkgconfig" }
        Exporter.pkgconfig.excludedDependencies: ["Qt.core", "helper3"]
        Exporter.pkgconfig.requiresEntry: "Qt5Core"
        Exporter.pkgconfig.urlEntry: "http://www.example.com/thefirstlib"

        Depends { name: "cpp" }
        cpp.defines: ["FIRSTLIB"]

        qbs.installPrefix: "/opt/the firstlib"

        Export {
            prefixMapping: [{prefix: "/somedir", replacement: "/otherdir"}]
            Depends { name: "BoringStaticLib" }
            Depends { name: "cpp" }
            Depends { name: "Qt.core"; required: false }
            Depends { name: "helper1" }
            Depends { name: "helper3" }
            property bool someCondition: qbs.hostOS.contains("windows") // hostOS for easier testing
            property bool someOtherCondition: someCondition
            Properties {
                condition: !someOtherCondition
                cpp.driverFlags: ["-pthread"]
            }
            cpp.defines: product.name
            cpp.includePaths: [FileInfo.joinPaths(product.qbs.installPrefix, "include")]
            Qt.core.mocName: "muck"
        }

        Group {
            fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
            qbs.install: true
            qbs.installDir: "lib"
        }

        Group {
            name: "api_headers"
            files: ["firstlib.h"]
            qbs.install: true
            qbs.installDir: "include"
        }

        files: ["firstlib.cpp"]
    }
    DynamicLibrary {
        name: "TheSecondLib"
        version: "2.0"

        Depends { name: "Exporter.pkgconfig" }
        Exporter.pkgconfig.descriptionEntry: "The second lib"
        Exporter.pkgconfig.transformFunction: (function(product, moduleName, propertyName, value) {
            if (moduleName === "cpp" && propertyName === "includePaths")
                return value.filter(function(p) { return p !== product.sourceDirectory; });
            return value;
        })
        Exporter.pkgconfig.customVariables: ({config1: "a b", config2: "c"})

        Depends { name: "cpp" }
        cpp.defines: ["SECONDLIB"]

        qbs.installPrefix: ""

        Depends { name: "TheFirstLib" }

        Export {
            Depends { name: "TheFirstLib" }
            Depends { name: "dummy" }
            Depends { name: "cpp" }
            cpp.includePaths: ["/opt/thesecondlib/include", product.sourceDirectory]
            property string hurz: importingProduct.name

            Rule {
                property int n: 5
                Artifact {
                    filePath: "dummy"
                    fileTags: ["d1", "d2"]
                    cpp.warningsAreErrors: true
                }
            }
        }

        Group {
            fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
            qbs.install: true
            qbs.installDir: "/opt/thesecondlib/lib"
        }

        Group {
            name: "api_headers"
            files: ["secondlib.h"]
            qbs.install: true
            qbs.installDir: "/opt/thesecondlib/include"
        }

        files: ["secondlib.cpp"]
    }
}