import qbs import "tools/qbs/GitRepo.js" as GitRepo Project { id: project minimumQbsVersion: "1.8.0" property bool gitVersion: true // The following define makes your compiler emit warnings if you use any // feature of Qt which as been marked as deprecated (the exact warnings // depend on your compiler). property bool deprecatedWarnings: true // The code also fails to compile if you use APIs deprecated before Qt 5.9. property string deprecatedBefore: "0x050900" references: [ "src/lib/bookmarks/bookmarks.qbs", "src/lib/navigation/navigation.qbs" ] CppApplication { id: poi name: "poi" property stringList defines: [] Depends { name: "Qt" versionAtLeast: "5.9.0" submodules: ["core", "widgets", "webengine", "webenginewidgets"] } Depends { name: "navigation" } Depends { name: "bookmarks" } Probe { id: git property string version: "" property string describe: "" configure: { if(project.gitVersion) { var meta = GitRepo.read(project.sourceDirectory); version = meta.version; describe = meta.describe; found = true; } } } // enable clazy if using clang Properties { condition: cpp.compilerName.contains("clang") cpp.cxxFlags: ["-Xclang", "-load", "-Xclang", "ClangLazy.so", "-Xclang", "-add-plugin", "-Xclang", "clang-lazy"] } // global includes cpp.includePaths: ['src', 'src/3rd-party', 'src/lib'] // global defines cpp.defines: { if(project.deprecatedWarnings) defines.push("QT_DEPRECATED_WARNINGS", "QT_DISABLE_DEPRECATED_BEFORE="+project.deprecatedBefore); return defines; } Group { name: "main" files: [ "src/browser.cpp", "src/browser.h", "src/interfaces.h", "src/main.cpp", "src/settings.cpp", "src/settings.h", "src/singleapplication.cpp", "src/singleapplication.h", ] cpp.defines: { if(project.deprecatedWarnings) defines.push("QT_DEPRECATED_WARNINGS", "QT_DISABLE_DEPRECATED_BEFORE="+project.deprecatedBefore); if(git.found) defines.push('GIT_VERSION="'+git.version+'"', 'GIT_DESCRIBE="'+git.describe+'"'); return defines; } } Group { name: "Main Window" files: [ "src/mainwindow.cpp", "src/mainwindow.h", "src/mainwindow.ui", "src/forms/aboutdialog.cpp", "src/forms/aboutdialog.h", "src/forms/aboutdialog.ui", "src/webengine/webview.cpp", "src/webengine/webview.h", "src/widgets/dockingwidget.cpp", "src/widgets/dockingwidget.h", "src/widgets/loadingbar.cpp", "src/widgets/loadingbar.h", "src/widgets/mainwindowmenubar.cpp", "src/widgets/mainwindowmenubar.h", "src/widgets/webviewtabbar.cpp", "src/widgets/webviewtabbar.h", ] } Group { name: "downloads" files: [ "src/forms/downloadsform.ui", "src/forms/downloadswidget.cpp", "src/forms/downloadswidget.h", "src/widgets/downloaditemform.ui", "src/widgets/downloaditemwidget.cpp", "src/widgets/downloaditemwidget.h", ] } Group { name: "Request Filter" files: [ "src/filter/blockermanager.cpp", "src/filter/blockermanager.h", "src/filter/filter.cpp", "src/filter/filter.h", "src/filter/filtercollection.cpp", "src/filter/filtercollection.h", "src/filter/filtertree.cpp", "src/filter/filtertree.h", "src/filter/regexp.cpp", "src/filter/regexp.h", "src/filter/subscriptiondialog.ui", "src/filter/subscriptionform.ui", "src/webengine/urlinterceptor.cpp", "src/webengine/urlinterceptor.h", ] cpp.defines: { if(project.deprecatedWarnings) defines.push("QT_DEPRECATED_WARNINGS", "QT_DISABLE_DEPRECATED_BEFORE="+project.deprecatedBefore); defines.push("DEBUG_VERBOSE") return defines; } } Group { name: "Profile" files: [ "src/forms/cookiesform.cpp", "src/forms/cookiesform.h", "src/forms/cookiesform.ui", "src/forms/profilesdialog.cpp", "src/forms/profilesdialog.h", "src/forms/profilesdialog.ui", "src/forms/profileview.cpp", "src/forms/profileview.h", "src/forms/profileview.ui", "src/webengine/webengineprofile.cpp", "src/webengine/webengineprofile.h", ] } files: [ "data/resources.qrc", ] Group { name: "Executable" fileTagsFilter: product.type qbs.install: true qbs.installDir: "bin" } Group { name: "Configuration" files: [ "data/poi.toml", ] qbs.install: true qbs.installDir: "share/smolbote" } } // CppApplication poi SubProject { filePath: "src/plugins/plugins.qbs" } }