aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/testdata/exports-cmake/exports-cmake.qbs
blob: 6464af705f8535e6b6566c490bf99ed784b83f2f (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
import qbs.FileInfo

Project {
    property bool isStatic: false
    property bool isBundle: false

    property string headersInstallDir: "include"

    Product {
        name: "DllExport"
        Depends { name: "Exporter.cmake" }
        Group {
            name: "API headers"
            files: ["../dllexport.h"]
            qbs.install: true
            qbs.installDir: project.headersInstallDir
        }
        Group {
            fileTagsFilter: ["Exporter.cmake.package"]
            qbs.install: true
            qbs.installDir: "/lib/cmake/DllExport"
        }
        Export {
            Depends { name: "cpp" }
            cpp.includePaths: FileInfo.joinPaths(
                exportingProduct.qbs.installRoot,
                exportingProduct.qbs.installPrefix,
                project.headersInstallDir)
        }
    }

    Library {
        type: project.isStatic ? "staticlibrary" : "dynamiclibrary"
        Depends { name: "cpp" }
        Depends { name: "DllExport" }
        Depends { name: "Exporter.cmake" }
        Exporter.cmake.packageName: "Bar"
        name: "Foo"
        files: ["Foo.cpp"]
        version: "1.2.3"
        cpp.includePaths: "."
        cpp.defines: "FOO_LIB"
        Group {
            name: "API headers"
            files: ["Foo.h"]
            qbs.install: true
            qbs.installDir: project.headersInstallDir
        }
        install: true
        installImportLib: true
        Group {
            fileTagsFilter: ["Exporter.cmake.package"]
            qbs.install: true
            qbs.installDir: "/lib/cmake/Bar"
        }
        Export {
            Depends { name: "cpp" }
            cpp.includePaths: FileInfo.joinPaths(
                exportingProduct.qbs.installRoot,
                exportingProduct.qbs.installPrefix,
                project.headersInstallDir)
            cpp.defines: ["FOO=1"].concat(project.isStatic ? ["FOO_LIB_STATIC"] : [])
            cpp.commonCompilerFlags: "-DOTHER_DEF=1"
            cpp.linkerFlags: exportingProduct.qbs.toolchain.contains("gcc") ? ["-s"] : []
        }

        Depends { name: 'bundle' }
        bundle.isBundle: qbs.targetOS.includes("darwin") && project.isBundle
    }
}