diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-05-22 14:45:25 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-09-23 11:32:23 +0000 |
commit | e87dd50dd5a74d0ddc8f9753a67a0a2500947e5f (patch) | |
tree | cd3085b0a6f5e8ec08b14ff166210e632e6b2a32 /tests/auto/pkgconfig/testdata/requires-test.json | |
parent | 91e0274d265a8ce7070c3d039700341b8d31cf5c (diff) | |
download | qbs-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 'tests/auto/pkgconfig/testdata/requires-test.json')
-rw-r--r-- | tests/auto/pkgconfig/testdata/requires-test.json | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/pkgconfig/testdata/requires-test.json b/tests/auto/pkgconfig/testdata/requires-test.json new file mode 100644 index 000000000..32acf4b91 --- /dev/null +++ b/tests/auto/pkgconfig/testdata/requires-test.json @@ -0,0 +1,18 @@ +{ + "Name": "Requires test package", + "Description": "Dummy pkgconfig test package for testing Requires/Requires.private", + "Version": "1.0.0", + "Libs": [ + {"Type": "LibraryPath", "Value": "/requires-test/lib"}, + {"Type": "LibraryName", "Value": "requires-test"} + ], + "Cflags": [ + {"Type": "IncludePath", "Value": "/requires-test/include"} + ], + "Requires": [ + {"Comparison": "GreaterThanEqual", "Name": "public-dep", "Version": "1"} + ], + "RequiresPrivate": [ + {"Comparison": "GreaterThanEqual", "Name": "private-dep", "Version": "1"} + ] +} |