aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * GitHub actions: fix QtC versionIvan Komissarov2024-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | The '9.0.1' version was removed from the mirror we use to install QtC. Bump version to '11.0.3' to use newer Qbs. Change-Id: If884d8b2cf9c1d2844ad01a80ebb37c3fc94eff9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * clang-cl: Check that registry path wasn't in extra pathsDmitrii Meshkov2024-02-151-1/+1
| | | | | | | | | | Change-Id: Id477de4750ac3bce8e39abe5d2195c75ca0addef Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * GitHub actions: Add Jammy-qt6 jobIvan Komissarov2024-02-151-6/+20
| | | | | | | | | | Change-Id: I38fa9d66a8e136c498f5826e2d3d84fe06bafe89 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * docker: Add Ubuntu Jammy imageIvan Komissarov2024-02-153-0/+226
| | | | | | | | | | | | | | | | | | | | Ubuntu Focal is almost 4 years old now; some packages, like LLVM, are quite old as well - it would be nice to use the same llvm verion that macos github runners use (which is 15, the latest is 17), while only llvm-12 is available on focal. Change-Id: I5f033abb41ab62c58e204307f04b2a224f8e59bf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * json: use snprintfIvan Komissarov2024-02-151-1/+1
| | | | | | | | | | | | | | Brew clang complains about deprecated sprintf. Change-Id: I814b2ba4bf37616ff98aeef81efd6965ee680073 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * qbsexporter: move prefix functions to a separate fileIvan Komissarov2024-02-132-31/+69
| | | | | | | | | | Change-Id: Ib1edb43b9361f866a9ed5f2110c51945c32db5fa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix wildcard change trackingChristian Kandeler2024-02-138-8/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | We recorded both too many and not enough time stamps for wildcards: - We should not try to track changes regarding recursive wildcards ("**/"), as that can easily pull in large parts of the source tree and/or the project root directory, likely resulting in unwanted re-resolvings. - We should track the parent dir of a wildcard pattern, even if the last evaluation yielded no matches. Change-Id: I8e5521a2fcb7fd1f54103e0df566f33dd6f2a972 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * GitHub actions: bump macOS versionIvan Komissarov2024-02-132-2/+2
| | | | | | | | | | | | | | macos-11 is deprecated Change-Id: I4ce2c5373e09fe1396d58ff8ffd318eb037f13c0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Do not run module validators for erroneous products in IDE modeChristian Kandeler2024-02-133-16/+19
| | | | | | | | | | | | | | | | Otherwise, we will potentially emit unwanted warning messages. Amends 5af4f376f88e7859667de6be0eff8f8af304528d. Change-Id: Icf55cfde089ae9f371c125bdad3eb79768070578 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * mingw: fix PATH variableIvan Komissarov2024-02-121-1/+1
| | | | | | | | | | | | | | | | PATH should be a ';'-separated string on Windows, not a JS array. Change-Id: If4711fc76c530376812328bced971babb26abac9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Loader: Fix modification time for wrong directory being storedChristian Kandeler2024-02-091-1/+1
|/ | | | | | | | | ... when resolving wildcards. Somehow, this seemingly long-standing typo appears to have been exposed by the refactoring in 1490cf65966007ec7564475da9d606d3ae6475fc. Change-Id: If4e9e19476cb25bcbc966d2ca525ff0530d0b419 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Language server: Add completion supportChristian Kandeler2024-02-0834-117/+480
| | | | | | | | | | This feature uncovered some sloppiness in our handling of QVariant types, which has now been fixed. Task-number: QBS-395 Change-Id: I687cef7470d97fe7887e4a7a1dbe672b2b9c79ec Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: David Schulz <david.schulz@qt.io>
* Fix linking error with msvcIvan Komissarov2024-02-051-1/+4
| | | | | Change-Id: If069568ecae202ea5a2280ed43c42607f9433648 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Loader: Deprecate the fallback providerChristian Kandeler2024-01-314-21/+14
| | | | | | | | | | | The fallback provider creates modules for all named dependencies that were not found and only later checks during validation whether such a pkg-config module exists. This breaks assumptions all over the place. Since we have a superior replacement in qbspkgconfig, we now deprecate the fallback provider. Change-Id: I3694515865d63e7308cfab7778068aa2e480fe23 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add git-clang-format scriptChristian Kandeler2024-01-311-0/+683
| | | | | | | | | | | | | Now that our CI complains about formatting, we need a simple way to fix it beforehand. Therefore, we import this helpful script from LLVM. Copy it into some directory in PATH and then invoke it like this to format the last commit according to our coding style: $ git clang-format HEAD~ The -h option gives more usage examples. We might also want to add a pre-commit hook later. Change-Id: I0fe775a32fc841848288ecea330bde303d9e8323 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* examples: add Exporters exampleIvan Komissarov2024-01-318-0/+502
| | | | | | | | This example contains two libs that are exported using multiple exporters (both qbs and pkgconfig). Change-Id: I67a4a2461d81be7931767e8cc0b968d05cbdf48c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Tutorial. Part 1Ivan Komissarov2024-01-3035-2/+821
| | | | | | | | This change adds a step-by step tutorial that helps to explain Qbs concepts and best practices for new users. Change-Id: I5c669f8fa0f89b8300f241bb8e4ed7cd4b3bb4c6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* examples: install app in app-and-libIvan Komissarov2024-01-291-0/+1
| | | | | Change-Id: I4c52ae7b9c255b23028d1cd6c77ff4fdf4c00e42 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove qbspkgconfig.mergeDependenciesChristian Kandeler2024-01-2910-244/+2
| | | | | | | As promised. Change-Id: I2e13d220057225f1afcad0cab1e5e049313cae2b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Remove project.withExamplesIvan Komissarov2024-01-292-28/+3
| | | | | | | | | | | We have a dedicated test that checks that examples are built. It makes little sense to build examples as a part of Qbs since it prevents us from installing example binaries which makes examples incomplete. Change-Id: Ie14ba8bf12daa05f6de12d8a8873a704020852c2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 2.2 into masterChristian Kandeler2024-01-264-10/+33
|\ | | | | | | Change-Id: If3a5e7af6e23d2f5d6b2c3e1e2531ba55090a625
| * qbspkgconfig: fix mergeDependencies propv2.2.22.2Ivan Komissarov2024-01-221-0/+1
| | | | | | | | | | | | | | | | | | This prop was broken during refactoring. This amends d99256dd79460628aafb5fa34a8dde7761ff7b1c. Change-Id: I7932fc22e97c7af18bb269ddc2344c8745a82002 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * qbspkgconfig: do not run qmake when not requestedIvan Komissarov2024-01-223-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | Fix the probe by returning only paths to qmake which are later passed to real Qmake probe which checks if it should be run (e,g. for Qt modules). This amends d99256dd79460628aafb5fa34a8dde7761ff7b1c. Fixes: QBS-1779 Change-Id: Ie901befcc74713a41258ba18c436435fe50cfb4d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add changelog for 2.2.2Christian Kandeler2024-01-191-0/+18
| | | | | | | | | | Change-Id: I1ebd7fd0266bc058d3bef725abb664662d749600 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | clang-format: tweak penaltiesIvan Komissarov2024-01-232-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that clang-format enforces 100 character limit by setting PenaltyExcessCharacter. Also lower the penalty for breaking before function args so that it does not break after the first . for member functions. Note that current penalty values are way too high - everything over 100 is used for "Stuff You Really Don't Want". Change-Id: I5bff316b98237ceb22929e4ed1f26a314d31a562 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | clang-format: set AlignAfterOpenBracket: AlwaysBreakIvan Komissarov2024-01-232-66/+74
| | | | | | | | | | | | | | | | | | | | | | | | pros: - when renaming a function, arguments are not realigned - can have more long/complex expressions as arguments especially with long function names cons: - code huddles to the left side which migh seem weird Change-Id: I9f1d1632dffcf29d08da8b9417d2c521096a1e9b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Implement allowedValues in ProvidersIvan Komissarov2024-01-228-3/+73
| | | | | | | | | | | | Fixes: QBS-1748 Change-Id: Ib8a0fb8eaa6076934396eeb209133411d0384f15 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Do not traverse private depsIvan Komissarov2024-01-196-5/+87
| | | | | | | | | | | | | | | | | | | | | | | | Previously, recursion was not terminated for private dynamic libraries leading to slow performance. Also, remove now redundant deduplication that happened later. Fixes: QBS-1714 Change-Id: Ia28f9993de8a55d6615c4ba0f7a4ef90721e31ff Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 2.2 into masterChristian Kandeler2024-01-1930-31/+157
|\| | | | | | | Change-Id: Id7e1b77e70eb04ff84699d2f32ec80f55c8b7ec0
| * DependenciesResolver: Fix module name prefix collision checkChristian Kandeler2024-01-1916-10/+66
| | | | | | | | | | | | | | | | | | The algorithm did not properly handle names with more than two components. Fixes: QBS-1772 Change-Id: Ia680c69907c449e46977f2c5615707805a3b785f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * DependenciesResolver: Don't attach properties on non-present modulesChristian Kandeler2024-01-1813-19/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to do that anyway and then suppress the resulting exception, but that can lead to an unexpected state later. The sequence that triggered the linked bug was as follows: - load module via non-required dependency in other module - exchange placeholder item in the product item and try to attach non-existing property on the module instance - suppress the resulting exception (because the dependency was not required) and continue - load module again (required this time) on product level - exchange placeholder item again -> assertion, because we have a module instance instead of the expected placeholder Another way to fix this would have been to revert exchanging the placeholder item after encountering an error, but that would be more complex, and there is no reason to attach properties to non-existing modules anyway. Fixes: QBS-1776 Change-Id: I581a076d1d872616b186e4015873baeea211b647 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * Fix qbspkgconfig Qt provider in case there is no QtIvan Komissarov2024-01-154-2/+17
| | | | | | | | | | | | | | | | | | | | | | Our tests did not cover the case when there is obviously no Qt that come from this provider. Add this case and check that we only get the error about missing module but no error come from the provider. Fixes: QBS-1777 Change-Id: Id3e80fd54e1519c91be37346276fd781d9f81b0a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 2.2 into masterChristian Kandeler2024-01-1223-54/+287
|\| | | | | | | Change-Id: I98cbee39cba1acd8a16eca1c9a11476e09011c15
| * protobuf: Usable without qbspkgconfigproviderBjörn Schäpers2024-01-116-17/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It only fails with "Can't find cpp protobuf runtime. Make sure .pc files are present" which is not helpful, since they are present. Additionally remove the grpcpp to grpc++ mapping in both pkg-config probes. This kind of amends 1772df50a3bacd91ba8125ececf774aa0e6311f9, I readded the tests. Task-number: QBS-1663 Change-Id: I73b7b76a66cc2b8eea5dddd57e5221715b6e6014 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * qbspkgconfig: Add support for the definePrefix optionIvan Komissarov2024-01-1013-34/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On windows/msys, it is crucial to use autodetection for package paths - otherwise, Qbs is not able to detect e.g. protobuf package. The pkg-config has the --define-prefix switch that overrides the ${prefix} variables on the package with one based on the .pc file locaiton. Implement similar option and set it to true on Windows. Also fix setting sysroot to avoid duplication of sysroot in paths when prefix is autodetected. Change-Id: I2754e48a96cb2e5f01ecace616188782cb5b0d7a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * msvc: fix asm flagsIvan Komissarov2024-01-096-3/+23
| | | | | | | | | | | | | | | | Filename should be the last argument. Fixes: QBS-1774 Change-Id: I6a45df6deacdba44bbb28d54ec8a90c2ade4525d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add clang-format jobIvan Komissarov2024-01-111-0/+16
| | | | | | | | | | Change-Id: I325a3843e9b35eb92d911d3f8c6ed55976962950 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Import .clang-format file from QtCIvan Komissarov2024-01-106-0/+791
| | | | | | | | | | Change-Id: Ifb61a6ac785ec605a3912b87b176251d342df958 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge branch '2.2' into masterIvan Komissarov2024-01-096-23/+46
|\| | | | | | | Change-Id: I03789600e30aaa8d01d56777f08319d78813a260
| * GitHub actions: bump Xcode versionIvan Komissarov2024-01-081-19/+19
| | | | | | | | | | Change-Id: I1527740715b362fa4ff0be176e1b813baebad557 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Bump versionChristian Kandeler2023-12-131-1/+1
| | | | | | | | | | Change-Id: I6205f1ad4955966e8dbc5a93bc94d84490c6d011 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * qbspkgconfig: Fix issues with msys/mingwIvan Komissarov2023-12-121-3/+8
| | | | | | | | | | | | | | | | | | The pkgconf in MSYS reports relative paths which we treat as relative to the binary. Also, on windows, ';' is used as a separator between paths. Change-Id: I3425ce896e42f87da0cab3f8f06892e28d4e5727 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * GitHub actions: fix Windows buildIvan Komissarov2023-12-111-0/+1
| | | | | | | | | | Change-Id: I52622831cf9d0641ce1c24f53697baf24c891528 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * apple: disable lazy linker mode for Xcode 15Ivan Komissarov2023-12-112-0/+4
| | | | | | | | | | | | | | | | | | | | According to the ld man, this mode is deprecated; with clang 15.0.0, it is no longer possible to pass this option via compiler frontend (it treats -lazy_library flag as -l flag and tries to link to "azy_library"). Change-Id: I74a877c359ae3550d372486e055a9b4c3e9be997 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix linkerMode test with recent clangIvan Komissarov2023-12-111-0/+1
| | | | | | | | | | | | | | | | For some reason, Apple clang complains about missing _main; adding single ret instruction fixes this. Change-Id: I286f774e462e747dcff9e0c9e44b1e6a68fa432f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Evaluator: Do not let C++ exceptions travel through QuickJSv2.2.1Christian Kandeler2023-12-011-1/+13
| | | | | | | | | | | | | | | | We have to turn them into JS values at the API border. Task-number: QBS-1770 Change-Id: Ia3178c9cc7611b9609cb8d006c742434d299873c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Loader: Make module properties accessible for groups in modulesChristian Kandeler2023-12-057-5/+25
| | | | | | | | | | | | | | | | | | | | | | It's not only cumbersome having to write out the name of the surrounding module, but it actually prevents some legitimate use cases, e.g. when using a Module base item where the name of the derived module is not statically known. Task-number: QBS-1770 Change-Id: Iad4f6a16a27c51b303f26bc98fd9b2a4174d5f42 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Merge 2.2 into masterChristian Kandeler2023-12-016-6/+29
|\| | | | | | | Change-Id: Ibd6fef8ad780af22bd39e583ca36f8994fb6510c
| * Add 2.2.1 change logChristian Kandeler2023-11-291-0/+12
| | | | | | | | | | Change-Id: Ifb7b2f6de53db9f709952439749d89ff1234d1f9 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * quickjs: Fix current date on WindowsChristian Kandeler2023-11-281-1/+2
| | | | | | | | | | | | | | | | Microsoft's baseline is a couple of hundred years before Unix's. Fixes: QBS-1768 Change-Id: I1845036b59665cbc1640887840a7d03edbc0cb54 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>