summaryrefslogtreecommitdiff
path: root/qbs.pro
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-05-22 14:45:25 +0200
committerIvan Komissarov <ABBAPOH@gmail.com>2021-09-23 11:32:23 +0000
commite87dd50dd5a74d0ddc8f9753a67a0a2500947e5f (patch)
treecd3085b0a6f5e8ec08b14ff166210e632e6b2a32 /qbs.pro
parent91e0274d265a8ce7070c3d039700341b8d31cf5c (diff)
downloadqbs-e87dd50dd5a74d0ddc8f9753a67a0a2500947e5f.tar.gz
Long live qbs-pkgconfig!
This patchset introduce a static library for parsing .pc files. Code is based on the original pkg-config source code https:// gitlab.freedesktop.org/pkg-config/pkg-config and is written in pure C++ (except for the places where we need access to filesystem as std::filesystem is not available for all platforms - in that case, Qt classes are used) Parsing .pc files manually allows to have more control over dependencies between modules, e.g. to generate a standalone module per one .pc file and merge properties using Qbs itself, not via pkg-config. Library is almost feature-complete and all tests copied from pkg-config pass. Some functionality is omitted (e.g. prefix variables (what is this?) or validating dependencies since Qbs does this as well) Bechmark shows that parsing ~100 files takes about 10-15ms. Running pkg-config on the same set of files takes ~4 seconds: RESULT : TestPkgConfig::benchSystem(): 14 msecs per iteration (total: 57, iterations: 4) Fixes: QBS-1615 Change-Id: I5bfdfa588aa04d9d69fd738dd2beea14174c0242 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'qbs.pro')
-rw-r--r--qbs.pro5
1 files changed, 4 insertions, 1 deletions
diff --git a/qbs.pro b/qbs.pro
index 0ec8d07b9..9777615f4 100644
--- a/qbs.pro
+++ b/qbs.pro
@@ -30,7 +30,9 @@ defineTest(minQtVersion) {
}
TEMPLATE = subdirs
+pkgconfig.file = src/lib/pkgconfig/pkgconfig.pro
corelib.file = src/lib/corelib/corelib.pro
+corelib.depends = pkgconfig
msbuildlib.subdir = src/lib/msbuild
msbuildlib.depends = corelib
src_app.subdir = src/app
@@ -45,10 +47,11 @@ static_res.file = static-res.pro
static_res.depends = src_app src_libexec src_plugins static.pro
qbs_use_bundled_qtscript {
scriptenginelib.file = src/lib/scriptengine/scriptengine.pro
- corelib.depends = scriptenginelib
+ corelib.depends += scriptenginelib
SUBDIRS += scriptenginelib
}
SUBDIRS += \
+ pkgconfig \
corelib\
msbuildlib\
src_app\