diff options
Diffstat (limited to 'tutorial/chapter-9/qbs')
-rw-r--r-- | tutorial/chapter-9/qbs/imports/MyApplication.qbs | 10 | ||||
-rw-r--r-- | tutorial/chapter-9/qbs/imports/MyAutoTest.qbs | 3 | ||||
-rw-r--r-- | tutorial/chapter-9/qbs/imports/MyLibrary.qbs | 26 | ||||
-rw-r--r-- | tutorial/chapter-9/qbs/modules/mybuildconfig/mybuildconfig.qbs | 30 |
4 files changed, 69 insertions, 0 deletions
diff --git a/tutorial/chapter-9/qbs/imports/MyApplication.qbs b/tutorial/chapter-9/qbs/imports/MyApplication.qbs new file mode 100644 index 000000000..451065190 --- /dev/null +++ b/tutorial/chapter-9/qbs/imports/MyApplication.qbs @@ -0,0 +1,10 @@ +CppApplication { + Depends { name: "mybuildconfig" } + version: mybuildconfig.productVersion + + cpp.rpaths: mybuildconfig.libRPaths + consoleApplication: true + installDir: mybuildconfig.appInstallDir + install: true + installDebugInformation: project.installDebugInformation +} diff --git a/tutorial/chapter-9/qbs/imports/MyAutoTest.qbs b/tutorial/chapter-9/qbs/imports/MyAutoTest.qbs new file mode 100644 index 000000000..1faecdc33 --- /dev/null +++ b/tutorial/chapter-9/qbs/imports/MyAutoTest.qbs @@ -0,0 +1,3 @@ +MyApplication { + type: ["application", "autotest"] +} diff --git a/tutorial/chapter-9/qbs/imports/MyLibrary.qbs b/tutorial/chapter-9/qbs/imports/MyLibrary.qbs new file mode 100644 index 000000000..9f2590f50 --- /dev/null +++ b/tutorial/chapter-9/qbs/imports/MyLibrary.qbs @@ -0,0 +1,26 @@ +// ![0] +Library { + Depends { name: "cpp" } + Depends { name: "mybuildconfig" } + type: mybuildconfig.staticBuild ? "staticlibrary" : "dynamiclibrary" + version: mybuildconfig.productVersion + install: !mybuildconfig.staticBuild || mybuildconfig.installStaticLib + installDir: mybuildconfig.libInstallDir + + readonly property string _nameUpper : name.replace(" ", "_").toUpperCase() + property string libraryMacro: _nameUpper + "_LIBRARY" + property string staticLibraryMacro: _nameUpper + "_STATIC_LIBRARY" + cpp.defines: mybuildconfig.staticBuild ? [staticLibraryMacro] : [libraryMacro] + cpp.sonamePrefix: qbs.targetOS.contains("darwin") ? "@rpath" : undefined + + Export { + Depends { name: "cpp" } + cpp.includePaths: [exportingProduct.sourceDirectory] + cpp.defines: exportingProduct.mybuildconfig.staticBuild + ? [exportingProduct.staticLibraryMacro] : [] + } + + Depends { name: "bundle" } + bundle.isBundle: false +} +// ![0] diff --git a/tutorial/chapter-9/qbs/modules/mybuildconfig/mybuildconfig.qbs b/tutorial/chapter-9/qbs/modules/mybuildconfig/mybuildconfig.qbs new file mode 100644 index 000000000..7aed8f7eb --- /dev/null +++ b/tutorial/chapter-9/qbs/modules/mybuildconfig/mybuildconfig.qbs @@ -0,0 +1,30 @@ +import qbs.FileInfo + +//! [0] +// qbs/modules/mybuildconfig/mybuildconfig.qbs +Module { + Depends { name: "cpp" } + + property string productVersion: "1.0.0" + // ... + //! [0] + property string appInstallDir: "bin" + property string libDirName: "lib" + property string libInstallDir: qbs.targetOS.contains("windows") ? "bin" : libDirName + property bool staticBuild: false + property bool installStaticLib: true + property bool enableRPath: true + + property stringList libRPaths: { + if (enableRPath && cpp.rpathOrigin && product.installDir) { + return [ + FileInfo.joinPaths( + cpp.rpathOrigin, + FileInfo.relativePath( + FileInfo.joinPaths('/', product.installDir), + FileInfo.joinPaths('/', libDirName))) + ]; + } + return []; + } +} |