blob: 6fc6c77913eb5c4ab788d25627beefc781e50e7f (
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
|
import qbs.FileInfo
import qbs.Utilities
QbsProduct {
Depends { name: "cpp" }
Depends { name: "Exporter.pkgconfig"; condition: generatePkgConfigFile }
Depends { name: "Exporter.qbs"; condition: generateQbsModule }
Depends { name: "cpp" }
property string visibilityType: staticBuild ? "static" : "dynamic"
property string headerInstallPrefix: "/include/qbs"
property bool hasExporter: Utilities.versionCompare(qbs.version, "1.12") >= 0
property bool generatePkgConfigFile: qbsbuildconfig.generatePkgConfigFiles && hasExporter
property bool generateQbsModule: install && qbsbuildconfig.generateQbsModules && hasExporter
property bool staticBuild: Qt.core.staticBuild || qbsbuildconfig.staticBuild
property stringList libType: [staticBuild ? "staticlibrary" : "dynamiclibrary"]
version: qbsversion.version
type: libType
targetName: (qbs.enableDebugCode && qbs.targetOS.contains("windows")) ? (name + 'd') : name
cpp.visibility: "minimal"
cpp.defines: base.concat(visibilityType === "static" ? ["QBS_STATIC_LIB"] : ["QBS_LIBRARY"])
cpp.sonamePrefix: qbs.targetOS.contains("darwin") ? "@rpath" : undefined
Properties {
condition: qbs.toolchain.contains("gcc")
cpp.soVersion: version.replace(/\.\d+$/, '')
}
Group {
fileTagsFilter: libType.concat("dynamiclibrary_symlink")
.concat(qbs.buildVariant === "debug" ? ["debuginfo_dll"] : [])
qbs.install: install
qbs.installDir: targetInstallDir
qbs.installSourceBase: buildDirectory
}
targetInstallDir: qbsbuildconfig.libInstallDir
Group {
fileTagsFilter: ["dynamiclibrary_import"]
qbs.install: install
qbs.installDir: qbsbuildconfig.importLibInstallDir
}
Group {
fileTagsFilter: "Exporter.pkgconfig.pc"
qbs.install: install
qbs.installDir: qbsbuildconfig.pkgConfigInstallDir
}
Group {
fileTagsFilter: "Exporter.qbs.module"
qbs.install: install
qbs.installDir: FileInfo.joinPaths(qbsbuildconfig.qbsModulesBaseDir, product.name)
}
Properties {
condition: qbs.targetOS.contains("darwin")
bundle.isBundle: false
cpp.linkerFlags: ["-compatibility_version", cpp.soVersion]
}
Export {
Depends { name: "cpp" }
Depends { name: "Qt"; submodules: ["core"] }
Properties {
condition: product.hasExporter
prefixMapping: [{
prefix: product.sourceDirectory,
replacement: FileInfo.joinPaths(product.qbs.installPrefix,
product.headerInstallPrefix)
}]
}
cpp.includePaths: [product.sourceDirectory]
cpp.defines: product.visibilityType === "static" ? ["QBS_STATIC_LIB"] : []
}
}
|