diff options
| author | Alexey Edelev <alexey.edelev@qt.io> | 2024-03-12 15:15:06 +0100 |
|---|---|---|
| committer | Alexey Edelev <alexey.edelev@qt.io> | 2024-03-14 15:54:54 +0100 |
| commit | 31a91d2e932a123836b5862bf43a8e79c3071245 (patch) | |
| tree | b376f87102d58e4ca2ada8950234fc125ae8a86d /src/plugins/sqldrivers/mysql/qsql_mysql.cpp | |
| parent | a92c195dd4e1cd56940d1a6bdd118fb7380e2c2c (diff) | |
Ensure that per-ABI builds are sequential
The current approach doesn't work correctly because external project
steps that we run on per-ABI build directories look as
'cmake --build <abi/build/dir> --target <target_name>'. When the
project has a single APK this works perfectly fine. But when building
more than one apk this leads to the simultanous build in the same
'abi/build/dir' which causes undefined behavior and concurrent access
to the build artifacts. This is especially sensible when APK targets
have the common dependencies.
The solution is split for two usecases:
- Ninja-like generators, that support job pools.
- Other generator.
For Ninja-like generators we now create job pools per-ABI with job number 1,
this convinces ninja to run only one 'cmake --build' command in single ABI
scope.
For other generators the solution is not that good. We create the dependency
chain between all APK targets and this leads to the build of the unwanted
dependencies. For example if project has apkA and apkB targets, then
apkB_x86 will depend on apkA_x86(assuming x86 is not the main ABI). This is
the only way we may ensure that 'cmake --build' commands won't be running
simultanously.
Fixes: QTBUG-122838
Pick-to: 6.7
Change-Id: I6f48fae57047a29129836168c28e14cde4eaa958
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/plugins/sqldrivers/mysql/qsql_mysql.cpp')
0 files changed, 0 insertions, 0 deletions
