pgsql: meson: add install-{quiet, world} targets

Started by Andres Freundover 3 years ago7 messagescomitters
Jump to latest
#1Andres Freund
andres@anarazel.de

meson: add install-{quiet, world} targets

To define our own install target, we need dependencies on the i18n targets,
which we did not collect so far.

Discussion: /messages/by-id/3fc3bb9b-f7f8-d442-35c1-ec82280c564a@enterprisedb.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e522049f23998e64fd0b88cd66de8e8f42100bf1

Modified Files
--------------
meson.build | 76 ++++++++++++++++++++++++------
src/backend/po/meson.build | 2 +-
src/bin/initdb/po/meson.build | 2 +-
src/bin/pg_amcheck/po/meson.build | 2 +-
src/bin/pg_archivecleanup/po/meson.build | 2 +-
src/bin/pg_basebackup/po/meson.build | 2 +-
src/bin/pg_checksums/po/meson.build | 2 +-
src/bin/pg_config/po/meson.build | 2 +-
src/bin/pg_controldata/po/meson.build | 2 +-
src/bin/pg_ctl/po/meson.build | 2 +-
src/bin/pg_dump/po/meson.build | 2 +-
src/bin/pg_resetwal/po/meson.build | 2 +-
src/bin/pg_rewind/po/meson.build | 2 +-
src/bin/pg_test_fsync/po/meson.build | 2 +-
src/bin/pg_test_timing/po/meson.build | 2 +-
src/bin/pg_upgrade/po/meson.build | 2 +-
src/bin/pg_verifybackup/po/meson.build | 2 +-
src/bin/pg_waldump/po/meson.build | 2 +-
src/bin/psql/po/meson.build | 2 +-
src/bin/scripts/po/meson.build | 2 +-
src/interfaces/ecpg/ecpglib/po/meson.build | 2 +-
src/interfaces/ecpg/preproc/po/meson.build | 2 +-
src/interfaces/libpq/po/meson.build | 2 +-
src/interfaces/libpq/test/meson.build | 4 +-
src/pl/plperl/po/meson.build | 2 +-
src/pl/plpgsql/src/po/meson.build | 2 +-
src/pl/plpython/po/meson.build | 2 +-
src/pl/tcl/po/meson.build | 2 +-
28 files changed, 89 insertions(+), 43 deletions(-)

#2Andrew Dunstan
andrew@dunslane.net
In reply to: Andres Freund (#1)
Re: pgsql: meson: add install-{quiet, world} targets

On 2023-03-24 Fr 00:30, Andres Freund wrote:

meson: add install-{quiet, world} targets

To define our own install target, we need dependencies on the i18n targets,
which we did not collect so far.

Discussion:/messages/by-id/3fc3bb9b-f7f8-d442-35c1-ec82280c564a@enterprisedb.com

For some reason that's not clear to me, this appears to have upset
drongo, which complains like this:

pgsql\\meson.build:2941:0: ERROR: Program 'install' not found or not executable

cheers

andrew

--
Andrew Dunstan
EDB:https://www.enterprisedb.com

#3Andres Freund
andres@anarazel.de
In reply to: Andrew Dunstan (#2)
Re: pgsql: meson: add install-{quiet, world} targets

Hi,

On 2023-03-24 09:21:40 -0400, Andrew Dunstan wrote:

On 2023-03-24 Fr 00:30, Andres Freund wrote:

meson: add install-{quiet, world} targets

To define our own install target, we need dependencies on the i18n targets,
which we did not collect so far.

Discussion:/messages/by-id/3fc3bb9b-f7f8-d442-35c1-ec82280c564a@enterprisedb.com

For some reason that's not clear to me, this appears to have upset drongo,
which complains like this:

pgsql\\meson.build:2941:0: ERROR: Program 'install' not found or not executable

Oh - that's a legit bug on my side. Oops. It's only an accident it worked on
other platforms. I forgot to add meson_bin to the command, which worked on
other platforms because that'll commonly be just python (with the path to
meson.py in the arguments), but on drongo it's meson.exe (leaving 'install' as
the command). Pushed a fix.

Greetings,

Andres Freund

#4Justin Pryzby
pryzby@telsasoft.com
In reply to: Andres Freund (#1)
Re: pgsql: meson: add install-{quiet, world} targets

On Fri, Mar 24, 2023 at 04:30:52AM +0000, Andres Freund wrote:

meson: add install-{quiet, world} targets

if docs.length() == 0
run_target('docs', command: [missing, 'xsltproc'])
else
alias_target('docs', docs)
+ alias_target('install-docs', installdocs)
endif

This fails to handle installdocs.length() == 0

#5Andres Freund
andres@anarazel.de
In reply to: Justin Pryzby (#4)
Re: pgsql: meson: add install-{quiet, world} targets

Hi,

On 2023-03-25 12:51:32 -0500, Justin Pryzby wrote:

On Fri, Mar 24, 2023 at 04:30:52AM +0000, Andres Freund wrote:

meson: add install-{quiet, world} targets

if docs.length() == 0
run_target('docs', command: [missing, 'xsltproc'])
else
alias_target('docs', docs)
+ alias_target('install-docs', installdocs)
endif

This fails to handle installdocs.length() == 0

You mean in the sense of causing a failure in meson, or not providing the
install-docs target? For the latter: Yea. I wasn't sure what the behaviour
we'd want there. Should install-docs succeed if we don't have any of the
tools? There's also an subdir_done() earlier on that we should probably
remove...

Greetings,

Andres Freund

#6Justin Pryzby
pryzby@telsasoft.com
In reply to: Andres Freund (#5)
Re: pgsql: meson: add install-{quiet, world} targets

On Sat, Mar 25, 2023 at 11:03:10AM -0700, Andres Freund wrote:

Hi,

On 2023-03-25 12:51:32 -0500, Justin Pryzby wrote:

On Fri, Mar 24, 2023 at 04:30:52AM +0000, Andres Freund wrote:

meson: add install-{quiet, world} targets

if docs.length() == 0
run_target('docs', command: [missing, 'xsltproc'])
else
alias_target('docs', docs)
+ alias_target('install-docs', installdocs)
endif

This fails to handle installdocs.length() == 0

You mean in the sense of causing a failure in meson, or not providing the
install-docs target? For the latter: Yea. I wasn't sure what the behaviour

The former, I guess. I was going to look into the windows python header
warnings, but the configure step failed like:

[17:27:16.781] doc\src\sgml\meson.build:327:2: ERROR: alias_target takes at least 2 arguments, but got 1.

#7Andres Freund
andres@anarazel.de
In reply to: Justin Pryzby (#6)
Re: pgsql: meson: add install-{quiet, world} targets

Hi,

On 2023-03-25 13:05:19 -0500, Justin Pryzby wrote:

On Sat, Mar 25, 2023 at 11:03:10AM -0700, Andres Freund wrote:

Hi,

On 2023-03-25 12:51:32 -0500, Justin Pryzby wrote:

On Fri, Mar 24, 2023 at 04:30:52AM +0000, Andres Freund wrote:

meson: add install-{quiet, world} targets

if docs.length() == 0
run_target('docs', command: [missing, 'xsltproc'])
else
alias_target('docs', docs)
+ alias_target('install-docs', installdocs)
endif

This fails to handle installdocs.length() == 0

You mean in the sense of causing a failure in meson, or not providing the
install-docs target? For the latter: Yea. I wasn't sure what the behaviour

The former, I guess. I was going to look into the windows python header
warnings, but the configure step failed like:

[17:27:16.781] doc\src\sgml\meson.build:327:2: ERROR: alias_target takes at least 2 arguments, but got 1.

Huh - I thought that wouldn't be possible, because docs would also be empty in
that case. But it's not, because I added postgres-full.xml to docs (probably
so you can see docs xml validity issues with just xmllint available). So
"your" error happens if just xmllint, but not xsltproc is available.

I think the easiest "fix" might be to just define install-docs to also include
docs - that way install-docs at least checks the validity of xml, even if we
can't build any docs.

Greetings,

Andres Freund