[libpq] Revise, use meson for all targets#51250
[libpq] Revise, use meson for all targets#51250dg0yt wants to merge 12 commits intomicrosoft:masterfrom
Conversation
Evergreen |
|
When I updated the libpq 18 port (as my first ever port) it was too much. Impossible to know all the nuances of every build as well as the meson build system. It took two weeks to get all builds working so it was a miracle at that point that anything worked. Thanks for fixing this. |
| backend_link_depends = [] | ||
|
|
||
| +subdir_done() | ||
| +if false # vcpkg_abi_info |
There was a problem hiding this comment.
| +if false # vcpkg_abi_info | |
| +if false # vcpkg |
oops, VS Code autocomplete 🤦
There was a problem hiding this comment.
I agree with the suggestion but don't see reason to force a rebuild over it.
There was a reason why the port wasn't already updated by people who were familar with the port :-) It is not a candidate for "my first ever port" update, with both upstream and vcpkg being tricky. My work was completely done on non-Windows. Using meson for both worlds should be an improvement. OTOH the state of the meson build isn't optimal, and vcpkg needs a subset not foreseen by upstream. |
|
Of course dropping the features which don't make sense for the client is a significant simplification. |
BillyONeal
left a comment
There was a problem hiding this comment.
Approving but not merging in case @dg0yt wants to address nitpicks
| backend_link_depends = [] | ||
|
|
||
| +subdir_done() | ||
| +if false # vcpkg_abi_info |
There was a problem hiding this comment.
I agree with the suggestion but don't see reason to force a rebuild over it.
| # Copyright (c) 2022-2025, PostgreSQL Global Development Group | ||
|
|
||
| -subdir('initdb') | ||
| +# vcpkg: Reduced to documented "Client applications" (and scripts) |
There was a problem hiding this comment.
Can you include a link somewhere to where that document is so we know to keep this consistent across updates?
There was a problem hiding this comment.
| +# vcpkg: Reduced to documented "Client applications" (and scripts) | |
| +# vcpkg: Reduced to documented "Client applications" (and scripts) | |
| +# Cf. https://www.postgresql.org/docs/current/reference-client.html |
dg0yt
left a comment
There was a problem hiding this comment.
@BillyONeal Either we merge as is quickly and I can reenable feature testing of the qtbase libpq SQL plugin in the zlib update PR. Or we apply the additional changes and merge after the zlib update, after forcing another qtbase feature test as part of this PR.
Given the zlib PR build time, I would prefer to have zlib merged first.
| # Copyright (c) 2022-2025, PostgreSQL Global Development Group | ||
|
|
||
| -subdir('initdb') | ||
| +# vcpkg: Reduced to documented "Client applications" (and scripts) |
There was a problem hiding this comment.
| +# vcpkg: Reduced to documented "Client applications" (and scripts) | |
| +# vcpkg: Reduced to documented "Client applications" (and scripts) | |
| +# Cf. https://www.postgresql.org/docs/current/reference-client.html |
| "client": { | ||
| "description": "Build all client tools and libraries", |
There was a problem hiding this comment.
... this feature might be renamed to tools to better reflect its purpose ("Client Applications"). There isn't much about client li which isn't core ("Client Interface": libpq, ecpg).
|
To be continued after the zlib update is merged. |
Just did :) |
Meson is the official build system for PostgreSQL for Windows, but still unofficial elsewhere (https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=5afaba6297a8dd6999c8bc9f517a3ad38bd39652). Vcpkg port libpq is broken for Windows (#51102, probably also breaking qt5-base in #51235). Instead of poorly patching two build systems, leverage the meson build for all targets.
Caveat: libpq's meson uses features deprecated in meson:
zicas a manual tool to be reused in cross builds. Fixes [libpq] build error on arm64-linux #51252. Fixes [libpq] build error on x64-linux #48024. Closes [libpq] Fix x64-linux build (#48024) #49238.