public inbox for [email protected]
help / color / mirror / Atom feedpgsql: Clean up after TAP tests in oid2name and vacuumlo.
18+ messages / 6 participants
[nested] [flat]
* pgsql: Clean up after TAP tests in oid2name and vacuumlo.
@ 2018-09-04 14:52 Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Tom Lane @ 2018-09-04 14:52 UTC (permalink / raw)
To: [email protected]
Clean up after TAP tests in oid2name and vacuumlo.
Oversights in commits 1aaf532de and bfea331a5. Unlike the case for
traditional-style REGRESS tests, pgxs.mk doesn't have any builtin support
for TAP tests, so it doesn't realize it should remove tmp_check/.
Maybe we should build some actual pgxs infrastructure for TAP tests ...
but for the moment, just remove explicitly.
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/f30c6f523f9caa73c9ba6ebd82c8d29fe45866a3
Modified Files
--------------
contrib/oid2name/Makefile | 2 ++
contrib/vacuumlo/Makefile | 2 ++
2 files changed, 4 insertions(+)
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
@ 2018-09-04 17:29 ` Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Michael Paquier @ 2018-09-04 17:29 UTC (permalink / raw)
To: Tom Lane <[email protected]>; +Cc: [email protected]
On Tue, Sep 04, 2018 at 02:52:07PM +0000, Tom Lane wrote:
> Clean up after TAP tests in oid2name and vacuumlo.
>
> Oversights in commits 1aaf532de and bfea331a5. Unlike the case for
> traditional-style REGRESS tests, pgxs.mk doesn't have any builtin support
> for TAP tests, so it doesn't realize it should remove tmp_check/.
> Maybe we should build some actual pgxs infrastructure for TAP tests ...
> but for the moment, just remove explicitly.
Thanks for fixing this. I think that there is an argument for just
moving the cleanup of $(pg_regress_clean_files) in pgxs.mk out of the
REGRESS portion instead? I see little need for new infrastructure
here.
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, ../../[email protected]/2-signature.asc)
download
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
@ 2018-09-04 17:41 ` Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Tom Lane @ 2018-09-04 17:41 UTC (permalink / raw)
To: Michael Paquier <[email protected]>; +Cc: [email protected]
Michael Paquier <[email protected]> writes:
> On Tue, Sep 04, 2018 at 02:52:07PM +0000, Tom Lane wrote:
>> Oversights in commits 1aaf532de and bfea331a5. Unlike the case for
>> traditional-style REGRESS tests, pgxs.mk doesn't have any builtin support
>> for TAP tests, so it doesn't realize it should remove tmp_check/.
>> Maybe we should build some actual pgxs infrastructure for TAP tests ...
>> but for the moment, just remove explicitly.
> Thanks for fixing this. I think that there is an argument for just
> moving the cleanup of $(pg_regress_clean_files) in pgxs.mk out of the
> REGRESS portion instead? I see little need for new infrastructure
> here.
It's really accidental that $(pg_regress_clean_files) happens to be a
superset of what the TAP tests need to have cleaned; we shouldn't build
that assumption in further.
If we're gonna do anything here, I think it'd be better to invent some new
symbol like HAVE_TAP_TESTS for calling Makefiles to define, then move all
the support into pgxs.mk, including the prove_[install]check rules.
regards, tom lane
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
@ 2018-09-04 19:03 ` Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Michael Paquier @ 2018-09-04 19:03 UTC (permalink / raw)
To: Tom Lane <[email protected]>; +Cc: [email protected]
On Tue, Sep 04, 2018 at 01:41:53PM -0400, Tom Lane wrote:
> It's really accidental that $(pg_regress_clean_files) happens to be a
> superset of what the TAP tests need to have cleaned; we shouldn't build
> that assumption in further.
Fine for me.
> If we're gonna do anything here, I think it'd be better to invent some new
> symbol like HAVE_TAP_TESTS for calling Makefiles to define, then move all
> the support into pgxs.mk, including the prove_[install]check rules.
Okay, I don't want to create a dependency between REGRESS and
HAVE_TAP_TESTS either, but modules specifying both should be able to
trigger both regressions and tap tests. So I would be inclined to
create two new rules, say check-regress and installcheck-regress, which
are invoked if check is called, and trigger pg_regress stuff. Then add
on top of it the existing prove-check and prove-installcheck. What do
you think? check and installcheck become this way the centralized place
for all types of test suites.
This would clean up src/test/modules/test_pg_dump/Makefile as well.
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, ../../[email protected]/2-signature.asc)
download
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
@ 2018-09-04 19:16 ` Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Tom Lane @ 2018-09-04 19:16 UTC (permalink / raw)
To: Michael Paquier <[email protected]>; +Cc: [email protected]
Michael Paquier <[email protected]> writes:
> Okay, I don't want to create a dependency between REGRESS and
> HAVE_TAP_TESTS either, but modules specifying both should be able to
> trigger both regressions and tap tests.
Agreed ...
> So I would be inclined to
> create two new rules, say check-regress and installcheck-regress, which
> are invoked if check is called, and trigger pg_regress stuff. Then add
> on top of it the existing prove-check and prove-installcheck. What do
> you think? check and installcheck become this way the centralized place
> for all types of test suites.
Why would we invent a different target name? I was thinking something
roughly like
check: submake $(REGRESS_PREP)
ifdef REGRESS
$(pg_regress_check) $(REGRESS_OPTS) $(REGRESS)
endif
ifdef TAP_TESTS
$(prove_check)
endif
although getting it to print a useful response when neither symbol
is set would require complicating things a bit. Still, as long as
there's just one copy of this rule, messiness isn't a big problem.
regards, tom lane
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
@ 2018-09-04 20:58 ` Michael Paquier <[email protected]>
2018-09-05 14:39 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Michael Paquier @ 2018-09-04 20:58 UTC (permalink / raw)
To: Tom Lane <[email protected]>; +Cc: [email protected]
On Tue, Sep 04, 2018 at 03:16:55PM -0400, Tom Lane wrote:
> Why would we invent a different target name? I was thinking something
> roughly like
>
> check: submake $(REGRESS_PREP)
> ifdef REGRESS
> $(pg_regress_check) $(REGRESS_OPTS) $(REGRESS)
> endif
> ifdef TAP_TESTS
> $(prove_check)
> endif
>
> although getting it to print a useful response when neither symbol
> is set would require complicating things a bit. Still, as long as
> there's just one copy of this rule, messiness isn't a big problem.
OK. I have dug into that, and finished with the attached. What do you
think? One thing is that the definition of submake is moving out of
REGRESS, and .PHONY gets defined.
--
Michael
Attachments:
[text/x-diff] tap-pgxs.patch (4.2K, ../../[email protected]/2-tap-pgxs.patch)
download | inline diff:
diff --git a/contrib/oid2name/Makefile b/contrib/oid2name/Makefile
index 908e078714..361a80a7a1 100644
--- a/contrib/oid2name/Makefile
+++ b/contrib/oid2name/Makefile
@@ -6,11 +6,11 @@ PGAPPICON = win32
PROGRAM = oid2name
OBJS = oid2name.o $(WIN32RES)
+TAP_TESTS = 1
+
PG_CPPFLAGS = -I$(libpq_srcdir)
PG_LIBS_INTERNAL = $(libpq_pgport)
-EXTRA_CLEAN = tmp_check
-
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
@@ -21,9 +21,3 @@ top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
-
-check:
- $(prove_check)
-
-installcheck:
- $(prove_installcheck)
diff --git a/contrib/vacuumlo/Makefile b/contrib/vacuumlo/Makefile
index 5de506151e..3efcb46735 100644
--- a/contrib/vacuumlo/Makefile
+++ b/contrib/vacuumlo/Makefile
@@ -6,11 +6,11 @@ PGAPPICON = win32
PROGRAM = vacuumlo
OBJS = vacuumlo.o $(WIN32RES)
+TAP_TESTS = 1
+
PG_CPPFLAGS = -I$(libpq_srcdir)
PG_LIBS_INTERNAL = $(libpq_pgport)
-EXTRA_CLEAN = tmp_check
-
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
@@ -21,9 +21,3 @@ top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
-
-check:
- $(prove_check)
-
-installcheck:
- $(prove_installcheck)
diff --git a/doc/src/sgml/extend.sgml b/doc/src/sgml/extend.sgml
index d5731621e7..4759d09823 100644
--- a/doc/src/sgml/extend.sgml
+++ b/doc/src/sgml/extend.sgml
@@ -1283,6 +1283,15 @@ include $(PGXS)
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>TAP_TESTS</varname></term>
+ <listitem>
+ <para>
+ switch defining if TAP tests need to be run
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>NO_INSTALLCHECK</varname></term>
<listitem>
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index 8deb356958..453b117dc5 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -44,6 +44,7 @@
# listed in MODULES or MODULE_big
# REGRESS -- list of regression test cases (without suffix)
# REGRESS_OPTS -- additional switches to pass to pg_regress
+# TAP_TESTS -- switch to enable TAP tests
# NO_INSTALLCHECK -- don't define an installcheck target, useful e.g. if
# tests require special configuration, or don't use pg_regress
# EXTRA_CLEAN -- extra files to remove in 'make clean'
@@ -305,6 +306,9 @@ ifeq ($(PORTNAME), win)
rm -f regress.def
endif
endif # REGRESS
+ifdef TAP_TESTS
+ rm -rf tmp_check/
+endif
ifdef MODULE_big
clean: clean-lib
@@ -339,6 +343,7 @@ $(test_files_build): $(abs_builddir)/%: $(srcdir)/%
$(MKDIR_P) $(dir $@)
ln -s $< $@
endif # VPATH
+endif # REGRESS
.PHONY: submake
submake:
@@ -346,21 +351,32 @@ ifndef PGXS
$(MAKE) -C $(top_builddir)/src/test/regress pg_regress$(X)
endif
-# against installed postmaster
+# Standard rules to run regression tests including multiple test suites.
+# Runs against an installed postmaster
ifndef NO_INSTALLCHECK
installcheck: submake $(REGRESS_PREP)
+ifdef REGRESS
$(pg_regress_installcheck) $(REGRESS_OPTS) $(REGRESS)
endif
+ifdef TAP_TESTS
+ $(prove_installcheck)
+endif
+endif # NO_INSTALLCHECK
+# Runs independently of any installation
ifdef PGXS
check:
@echo '"$(MAKE) check" is not supported.'
@echo 'Do "$(MAKE) install", then "$(MAKE) installcheck" instead.'
else
check: submake $(REGRESS_PREP)
+ifdef REGRESS
$(pg_regress_check) $(REGRESS_OPTS) $(REGRESS)
endif
-endif # REGRESS
+ifdef TAP_TESTS
+ $(prove_check)
+endif
+endif # PGXS
ifndef NO_TEMP_INSTALL
temp-install: EXTRA_INSTALL+=$(subdir)
diff --git a/src/test/modules/test_pg_dump/Makefile b/src/test/modules/test_pg_dump/Makefile
index c64b353707..6123b994f6 100644
--- a/src/test/modules/test_pg_dump/Makefile
+++ b/src/test/modules/test_pg_dump/Makefile
@@ -7,6 +7,7 @@ EXTENSION = test_pg_dump
DATA = test_pg_dump--1.0.sql
REGRESS = test_pg_dump
+TAP_TESTS = 1
ifdef USE_PGXS
PG_CONFIG = pg_config
@@ -18,8 +19,3 @@ top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
-
-check: prove-check
-
-prove-check: | temp-install
- $(prove_check)
[application/pgp-signature] signature.asc (833B, ../../[email protected]/3-signature.asc)
download
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
@ 2018-09-05 14:39 ` Alvaro Herrera <[email protected]>
2018-09-05 17:45 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Alvaro Herrera @ 2018-09-05 14:39 UTC (permalink / raw)
To: Michael Paquier <[email protected]>; +Cc: Tom Lane <[email protected]>; [email protected]
On 2018-Sep-04, Michael Paquier wrote:
> OK. I have dug into that, and finished with the attached. What do you
> think? One thing is that the definition of submake is moving out of
> REGRESS, and .PHONY gets defined.
Should this be used in src/test/modules/{brin,test_commit_ts} also?
Why do you guys design Makefile rules in pgsql-committers?
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 14:39 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
@ 2018-09-05 17:45 ` Michael Paquier <[email protected]>
2018-09-05 17:49 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-05 18:20 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
0 siblings, 2 replies; 18+ messages in thread
From: Michael Paquier @ 2018-09-05 17:45 UTC (permalink / raw)
To: Alvaro Herrera <[email protected]>; +Cc: Tom Lane <[email protected]>; [email protected]
On Wed, Sep 05, 2018 at 11:39:50AM -0300, Alvaro Herrera wrote:
> Should this be used in src/test/modules/{brin,test_commit_ts} also?
Hmm, I have not thought those two ones. commit_ts relies on REGRESS to
be defined so as it does its cleanup. brin is more interesting, it
directly quotes that it needs to tweak its Makefile to do the cleanup,
and it uses isolation tests. Wouldn't it be more adapted to add a
second extra switch for isolation tests similar to REGRESS? We could
call it ISOLATION, and it would list the set of isolation tests you
could run from an extension. That would be useful for a lot of folks.
Thoughts? It would be better to start a new thread rather than posting
a new patch, but I'd rather take the temperature first.
> Why do you guys design Makefile rules in pgsql-committers?
That was a bad idea, and a reaction to what Tom has committed for the
cleanup of the new TAP tests I have added previously.
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, ../../[email protected]/2-signature.asc)
download
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 14:39 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
2018-09-05 17:45 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
@ 2018-09-05 17:49 ` Tom Lane <[email protected]>
1 sibling, 0 replies; 18+ messages in thread
From: Tom Lane @ 2018-09-05 17:49 UTC (permalink / raw)
To: Michael Paquier <[email protected]>; +Cc: Alvaro Herrera <[email protected]>; [email protected]
Michael Paquier <[email protected]> writes:
> On Wed, Sep 05, 2018 at 11:39:50AM -0300, Alvaro Herrera wrote:
>> Should this be used in src/test/modules/{brin,test_commit_ts} also?
> Hmm, I have not thought those two ones. commit_ts relies on REGRESS to
> be defined so as it does its cleanup. brin is more interesting, it
> directly quotes that it needs to tweak its Makefile to do the cleanup,
> and it uses isolation tests. Wouldn't it be more adapted to add a
> second extra switch for isolation tests similar to REGRESS? We could
> call it ISOLATION, and it would list the set of isolation tests you
> could run from an extension. That would be useful for a lot of folks.
> Thoughts? It would be better to start a new thread rather than posting
> a new patch, but I'd rather take the temperature first.
Yeah, if we're going to introduce infrastructure for TAP tests, it'd
make sense to do so for isolation tests as well.
regards, tom lane
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 14:39 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
2018-09-05 17:45 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
@ 2018-09-05 18:20 ` Alvaro Herrera <[email protected]>
2018-09-05 20:05 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
1 sibling, 1 reply; 18+ messages in thread
From: Alvaro Herrera @ 2018-09-05 18:20 UTC (permalink / raw)
To: Michael Paquier <[email protected]>; +Cc: Tom Lane <[email protected]>; [email protected]
On 2018-Sep-05, Michael Paquier wrote:
> On Wed, Sep 05, 2018 at 11:39:50AM -0300, Alvaro Herrera wrote:
> > Should this be used in src/test/modules/{brin,test_commit_ts} also?
>
> Hmm, I have not thought those two ones. commit_ts relies on REGRESS to
> be defined so as it does its cleanup. brin is more interesting, it
> directly quotes that it needs to tweak its Makefile to do the cleanup,
> and it uses isolation tests. Wouldn't it be more adapted to add a
> second extra switch for isolation tests similar to REGRESS? We could
> call it ISOLATION, and it would list the set of isolation tests you
> could run from an extension. That would be useful for a lot of folks.
>
> Thoughts?
Yeah, +1 for that.
> It would be better to start a new thread rather than posting
> a new patch, but I'd rather take the temperature first.
Slightly feverish, it appears.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 14:39 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
2018-09-05 17:45 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 18:20 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
@ 2018-09-05 20:05 ` Michael Paquier <[email protected]>
2018-09-06 01:50 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Michael Paquier @ 2018-09-05 20:05 UTC (permalink / raw)
To: Alvaro Herrera <[email protected]>; +Cc: Tom Lane <[email protected]>; [email protected]
On Wed, Sep 05, 2018 at 03:20:03PM -0300, Alvaro Herrera wrote:
> On 2018-Sep-05, Michael Paquier wrote:
> > It would be better to start a new thread rather than posting
> > a new patch, but I'd rather take the temperature first.
>
> Slightly feverish, it appears.
As far as I can see, the proposal is not cold to death and could have a
future, so I'll begin a new thread with a more complete patch.
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, ../../[email protected]/2-signature.asc)
download
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo.
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 17:41 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 19:03 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-04 19:16 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 20:58 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 14:39 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
2018-09-05 17:45 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
2018-09-05 18:20 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Alvaro Herrera <[email protected]>
2018-09-05 20:05 ` Re: pgsql: Clean up after TAP tests in oid2name and vacuumlo. Michael Paquier <[email protected]>
@ 2018-09-06 01:50 ` Michael Paquier <[email protected]>
0 siblings, 0 replies; 18+ messages in thread
From: Michael Paquier @ 2018-09-06 01:50 UTC (permalink / raw)
To: Alvaro Herrera <[email protected]>; +Cc: Tom Lane <[email protected]>; [email protected]
On Wed, Sep 05, 2018 at 01:05:42PM -0700, Michael Paquier wrote:
> As far as I can see, the proposal is not cold to death and could have a
> future, so I'll begin a new thread with a more complete patch.
Done. Let's move the discussion here then:
https://www.postgresql.org/message-id/[email protected]
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, ../../[email protected]/2-signature.asc)
download
^ permalink raw reply [nested|flat] 18+ messages in thread
* Add DBState to pg_control_system function
@ 2022-02-01 04:22 Bharath Rupireddy <[email protected]>
2022-02-21 18:01 ` Re: Add DBState to pg_control_system function Fujii Masao <[email protected]>
0 siblings, 1 reply; 18+ messages in thread
From: Bharath Rupireddy @ 2022-02-01 04:22 UTC (permalink / raw)
To: PostgreSQL Hackers <[email protected]>
Hi,
I think emitting DBState (staring up, shut down, shut down in
recovery, shutting down, in crash recovery, in archive recovery, in
production) via the pg_control_system function would help know the
database state, especially during PITR/archive recovery. During
archive recovery, the server can open up for read-only connections
even before the archive recovery finishes. Having, pg_control_system
emit database state would help the users/service layers know it and so
they can take some actions based on it.
Attaching a patch herewith.
Thoughts?
Regards,
Bharath Rupireddy.
Attachments:
[application/octet-stream] v1-0001-Add-DBState-to-pg_control_system-function.patch (6.6K, ../../CALj2ACWBFEDA4a6EGn6F6ADLUqn-XieUy-wWvLdzR6R_yVknGw@mail.gmail.com/2-v1-0001-Add-DBState-to-pg_control_system-function.patch)
download | inline diff:
From b23f134363d33040249ca3c09b3d5de23aae5792 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <[email protected]>
Date: Tue, 1 Feb 2022 04:16:52 +0000
Subject: [PATCH v1] Add DBState to pg_control_system function
Add DBState as a column to the pg_control_system function which
would help know the database state, especially during PITR/archive
recovery. During archive recovery, the server can open up for
read-only connections even before the archive recovery finishes.
Having, pg_control_system emit database state would help the
users/service layers know it and so they can take some actions
based on it.
---
doc/src/sgml/func.sgml | 5 +++++
src/backend/utils/misc/pg_controldata.c | 11 +++++++---
src/bin/pg_controldata/pg_controldata.c | 26 +----------------------
src/common/controldata_utils.c | 28 +++++++++++++++++++++++++
src/include/catalog/pg_proc.dat | 6 +++---
src/include/common/controldata_utils.h | 1 +
6 files changed, 46 insertions(+), 31 deletions(-)
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 8754f2f89b..0d2bd44f49 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -25166,6 +25166,11 @@ SELECT collation for ('foo' COLLATE "de_DE");
<entry><type>timestamp with time zone</type></entry>
</row>
+ <row>
+ <entry><structfield>database_cluster_state</structfield></entry>
+ <entry><type>text</type></entry>
+ </row>
+
</tbody>
</tgroup>
</table>
diff --git a/src/backend/utils/misc/pg_controldata.c b/src/backend/utils/misc/pg_controldata.c
index 781f8b8758..09bda4b9d6 100644
--- a/src/backend/utils/misc/pg_controldata.c
+++ b/src/backend/utils/misc/pg_controldata.c
@@ -31,8 +31,8 @@
Datum
pg_control_system(PG_FUNCTION_ARGS)
{
- Datum values[4];
- bool nulls[4];
+ Datum values[5];
+ bool nulls[5];
TupleDesc tupdesc;
HeapTuple htup;
ControlFileData *ControlFile;
@@ -42,7 +42,7 @@ pg_control_system(PG_FUNCTION_ARGS)
* Construct a tuple descriptor for the result row. This must match this
* function's pg_proc entry!
*/
- tupdesc = CreateTemplateTupleDesc(4);
+ tupdesc = CreateTemplateTupleDesc(5);
TupleDescInitEntry(tupdesc, (AttrNumber) 1, "pg_control_version",
INT4OID, -1, 0);
TupleDescInitEntry(tupdesc, (AttrNumber) 2, "catalog_version_no",
@@ -51,6 +51,8 @@ pg_control_system(PG_FUNCTION_ARGS)
INT8OID, -1, 0);
TupleDescInitEntry(tupdesc, (AttrNumber) 4, "pg_control_last_modified",
TIMESTAMPTZOID, -1, 0);
+ TupleDescInitEntry(tupdesc, (AttrNumber) 5, "database_cluster_state",
+ TEXTOID, -1, 0);
tupdesc = BlessTupleDesc(tupdesc);
/* read the control file */
@@ -71,6 +73,9 @@ pg_control_system(PG_FUNCTION_ARGS)
values[3] = TimestampTzGetDatum(time_t_to_timestamptz(ControlFile->time));
nulls[3] = false;
+ values[4] = CStringGetTextDatum(get_dbstate(ControlFile->state));
+ nulls[4] = false;
+
htup = heap_form_tuple(tupdesc, values, nulls);
PG_RETURN_DATUM(HeapTupleGetDatum(htup));
diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c
index f911f98d94..1d20843391 100644
--- a/src/bin/pg_controldata/pg_controldata.c
+++ b/src/bin/pg_controldata/pg_controldata.c
@@ -45,30 +45,6 @@ usage(const char *progname)
printf(_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL);
}
-
-static const char *
-dbState(DBState state)
-{
- switch (state)
- {
- case DB_STARTUP:
- return _("starting up");
- case DB_SHUTDOWNED:
- return _("shut down");
- case DB_SHUTDOWNED_IN_RECOVERY:
- return _("shut down in recovery");
- case DB_SHUTDOWNING:
- return _("shutting down");
- case DB_IN_CRASH_RECOVERY:
- return _("in crash recovery");
- case DB_IN_ARCHIVE_RECOVERY:
- return _("in archive recovery");
- case DB_IN_PRODUCTION:
- return _("in production");
- }
- return _("unrecognized status code");
-}
-
static const char *
wal_level_str(WalLevel wal_level)
{
@@ -232,7 +208,7 @@ main(int argc, char *argv[])
printf(_("Database system identifier: %llu\n"),
(unsigned long long) ControlFile->system_identifier);
printf(_("Database cluster state: %s\n"),
- dbState(ControlFile->state));
+ get_dbstate(ControlFile->state));
printf(_("pg_control last modified: %s\n"),
pgctime_str);
printf(_("Latest checkpoint location: %X/%X\n"),
diff --git a/src/common/controldata_utils.c b/src/common/controldata_utils.c
index 348f046a44..b51b693965 100644
--- a/src/common/controldata_utils.c
+++ b/src/common/controldata_utils.c
@@ -265,3 +265,31 @@ update_controlfile(const char *DataDir,
#endif
}
}
+
+/*
+ * get_dbstate()
+ *
+ * Get the database cluster state.
+ */
+const char *
+get_dbstate(DBState state)
+{
+ switch (state)
+ {
+ case DB_STARTUP:
+ return _("starting up");
+ case DB_SHUTDOWNED:
+ return _("shut down");
+ case DB_SHUTDOWNED_IN_RECOVERY:
+ return _("shut down in recovery");
+ case DB_SHUTDOWNING:
+ return _("shutting down");
+ case DB_IN_CRASH_RECOVERY:
+ return _("in crash recovery");
+ case DB_IN_ARCHIVE_RECOVERY:
+ return _("in archive recovery");
+ case DB_IN_PRODUCTION:
+ return _("in production");
+ }
+ return _("unrecognized status code");
+}
diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
index 7024dbe10a..159421ce0e 100644
--- a/src/include/catalog/pg_proc.dat
+++ b/src/include/catalog/pg_proc.dat
@@ -11561,9 +11561,9 @@
{ oid => '3441',
descr => 'pg_controldata general state information as a function',
proname => 'pg_control_system', provolatile => 'v', prorettype => 'record',
- proargtypes => '', proallargtypes => '{int4,int4,int8,timestamptz}',
- proargmodes => '{o,o,o,o}',
- proargnames => '{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified}',
+ proargtypes => '', proallargtypes => '{int4,int4,int8,timestamptz,text}',
+ proargmodes => '{o,o,o,o,o}',
+ proargnames => '{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified,database_cluster_state}',
prosrc => 'pg_control_system' },
{ oid => '3442',
diff --git a/src/include/common/controldata_utils.h b/src/include/common/controldata_utils.h
index b1dab7547c..1ac0147724 100644
--- a/src/include/common/controldata_utils.h
+++ b/src/include/common/controldata_utils.h
@@ -15,5 +15,6 @@
extern ControlFileData *get_controlfile(const char *DataDir, bool *crc_ok_p);
extern void update_controlfile(const char *DataDir,
ControlFileData *ControlFile, bool do_sync);
+extern const char *get_dbstate(DBState state);
#endif /* COMMON_CONTROLDATA_UTILS_H */
--
2.25.1
^ permalink raw reply [nested|flat] 18+ messages in thread
* Re: Add DBState to pg_control_system function
2022-02-01 04:22 Add DBState to pg_control_system function Bharath Rupireddy <[email protected]>
@ 2022-02-21 18:01 ` Fujii Masao <[email protected]>
0 siblings, 0 replies; 18+ messages in thread
From: Fujii Masao @ 2022-02-21 18:01 UTC (permalink / raw)
To: Bharath Rupireddy <[email protected]>; PostgreSQL Hackers <[email protected]>
On 2022/02/01 13:22, Bharath Rupireddy wrote:
> Hi,
>
> I think emitting DBState (staring up, shut down, shut down in
> recovery, shutting down, in crash recovery, in archive recovery, in
> production) via the pg_control_system function would help know the
> database state, especially during PITR/archive recovery. During
> archive recovery, the server can open up for read-only connections
> even before the archive recovery finishes. Having, pg_control_system
> emit database state would help the users/service layers know it and so
> they can take some actions based on it.
>
> Attaching a patch herewith.
>
> Thoughts?
This information seems not so helpful because only "in production" and "archive recovery" can be reported during normal running and recovery, respectively. No? In the state other than them, we cannot connect to the server and execute pg_control_system().
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION
^ permalink raw reply [nested|flat] 18+ messages in thread
* [PATCH v16 04/16] meson: Add windows resource files
@ 2022-09-21 18:03 Andres Freund <[email protected]>
0 siblings, 0 replies; 18+ messages in thread
From: Andres Freund @ 2022-09-21 18:03 UTC (permalink / raw)
Author: Andres Freund <[email protected]>
Author: Nazir Bilal Yavuz <[email protected]>
---
src/backend/jit/llvm/meson.build | 6 +
.../replication/libpqwalreceiver/meson.build | 6 +
src/backend/replication/pgoutput/meson.build | 6 +
src/backend/snowball/meson.build | 6 +
.../utils/mb/conversion_procs/meson.build | 144 ++++++++++++++----
src/bin/initdb/meson.build | 6 +
src/bin/pg_amcheck/meson.build | 8 +-
src/bin/pg_archivecleanup/meson.build | 12 +-
src/bin/pg_basebackup/meson.build | 38 ++++-
src/bin/pg_checksums/meson.build | 12 +-
src/bin/pg_config/meson.build | 12 +-
src/bin/pg_controldata/meson.build | 12 +-
src/bin/pg_ctl/meson.build | 12 +-
src/bin/pg_dump/meson.build | 18 +++
src/bin/pg_resetwal/meson.build | 12 +-
src/bin/pg_rewind/meson.build | 6 +
src/bin/pg_test_fsync/meson.build | 10 +-
src/bin/pg_test_timing/meson.build | 12 +-
src/bin/pg_upgrade/meson.build | 6 +
src/bin/pg_verifybackup/meson.build | 6 +
src/bin/pg_waldump/meson.build | 6 +
src/bin/pgbench/meson.build | 6 +
src/bin/pgevent/meson.build | 6 +
src/bin/psql/meson.build | 6 +
src/bin/scripts/meson.build | 10 +-
src/interfaces/libpq/meson.build | 5 +
src/interfaces/libpq/test/meson.build | 25 ++-
src/pl/plperl/meson.build | 7 +
src/pl/plpgsql/src/meson.build | 6 +
src/pl/plpython/meson.build | 6 +
src/pl/tcl/meson.build | 6 +
contrib/adminpack/meson.build | 12 +-
contrib/amcheck/meson.build | 17 ++-
contrib/auth_delay/meson.build | 12 +-
contrib/auto_explain/meson.build | 12 +-
contrib/basebackup_to_shell/meson.build | 6 +
contrib/basic_archive/meson.build | 6 +
contrib/bloom/meson.build | 6 +
contrib/bool_plperl/meson.build | 6 +
contrib/btree_gin/meson.build | 12 +-
contrib/btree_gist/meson.build | 6 +
contrib/citext/meson.build | 6 +
contrib/cube/meson.build | 6 +
contrib/dblink/meson.build | 6 +
contrib/dict_int/meson.build | 12 +-
contrib/dict_xsyn/meson.build | 12 +-
contrib/earthdistance/meson.build | 12 +-
contrib/file_fdw/meson.build | 12 +-
contrib/fuzzystrmatch/meson.build | 16 +-
contrib/hstore/meson.build | 24 ++-
contrib/hstore_plperl/meson.build | 6 +
contrib/hstore_plpython/meson.build | 6 +
contrib/intarray/meson.build | 6 +
contrib/isn/meson.build | 6 +
contrib/jsonb_plperl/meson.build | 6 +
contrib/jsonb_plpython/meson.build | 6 +
contrib/lo/meson.build | 6 +
contrib/ltree/meson.build | 6 +
contrib/ltree_plpython/meson.build | 6 +
contrib/oid2name/meson.build | 12 +-
contrib/old_snapshot/meson.build | 6 +
contrib/pageinspect/meson.build | 6 +
contrib/passwordcheck/meson.build | 6 +
contrib/pg_buffercache/meson.build | 14 +-
contrib/pg_freespacemap/meson.build | 14 +-
contrib/pg_prewarm/meson.build | 16 +-
contrib/pg_stat_statements/meson.build | 12 +-
contrib/pg_surgery/meson.build | 14 +-
contrib/pg_trgm/meson.build | 20 ++-
contrib/pg_visibility/meson.build | 14 +-
contrib/pg_walinspect/meson.build | 6 +
contrib/pgcrypto/meson.build | 6 +
contrib/pgrowlocks/meson.build | 14 +-
contrib/pgstattuple/meson.build | 18 ++-
contrib/postgres_fdw/meson.build | 6 +
contrib/seg/meson.build | 6 +
contrib/sepgsql/meson.build | 6 +
contrib/spi/meson.build | 48 +++++-
contrib/sslinfo/meson.build | 14 +-
contrib/tablefunc/meson.build | 14 +-
contrib/tcn/meson.build | 14 +-
contrib/test_decoding/meson.build | 6 +
contrib/tsm_system_rows/meson.build | 14 +-
contrib/tsm_system_time/meson.build | 14 +-
contrib/unaccent/meson.build | 14 +-
contrib/uuid-ossp/meson.build | 14 +-
contrib/vacuumlo/meson.build | 12 +-
contrib/xml2/meson.build | 16 +-
src/interfaces/ecpg/compatlib/meson.build | 6 +-
src/interfaces/ecpg/preproc/meson.build | 6 +
src/interfaces/ecpg/test/meson.build | 6 +
src/test/isolation/meson.build | 13 ++
src/test/modules/delay_execution/meson.build | 13 +-
src/test/modules/dummy_index_am/meson.build | 13 +-
src/test/modules/dummy_seclabel/meson.build | 13 +-
src/test/modules/libpq_pipeline/meson.build | 14 +-
src/test/modules/plsample/meson.build | 13 +-
src/test/modules/spgist_name_ops/meson.build | 13 +-
.../ssl_passphrase_callback/meson.build | 13 +-
src/test/modules/test_bloomfilter/meson.build | 13 +-
src/test/modules/test_ddl_deparse/meson.build | 13 +-
.../modules/test_ginpostinglist/meson.build | 13 +-
src/test/modules/test_integerset/meson.build | 13 +-
src/test/modules/test_lfind/meson.build | 13 +-
src/test/modules/test_oat_hooks/meson.build | 13 +-
src/test/modules/test_parser/meson.build | 13 +-
src/test/modules/test_predtest/meson.build | 13 +-
src/test/modules/test_rbtree/meson.build | 13 +-
src/test/modules/test_regex/meson.build | 13 +-
src/test/modules/test_rls_hooks/meson.build | 13 +-
src/test/modules/test_shm_mq/meson.build | 19 ++-
src/test/modules/worker_spi/meson.build | 15 +-
src/test/regress/meson.build | 6 +
meson.build | 61 ++++++++
src/timezone/meson.build | 6 +
src/tools/rcgen | 99 ++++++++++++
116 files changed, 1383 insertions(+), 159 deletions(-)
create mode 100755 src/tools/rcgen
diff --git a/src/backend/jit/llvm/meson.build b/src/backend/jit/llvm/meson.build
index de2e624ab58..5fb63768358 100644
--- a/src/backend/jit/llvm/meson.build
+++ b/src/backend/jit/llvm/meson.build
@@ -20,6 +20,12 @@ llvmjit_sources += files(
'llvmjit_expr.c',
)
+if host_system == 'windows'
+ llvmjit_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'llvmjit',
+ '--FILEDESC', 'llvmjit - JIT using LLVM',])
+endif
+
llvmjit = shared_module('llvmjit',
llvmjit_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/libpqwalreceiver/meson.build b/src/backend/replication/libpqwalreceiver/meson.build
index 3fc786c80a0..4c653a05d36 100644
--- a/src/backend/replication/libpqwalreceiver/meson.build
+++ b/src/backend/replication/libpqwalreceiver/meson.build
@@ -2,6 +2,12 @@ libpqwalreceiver_sources = files(
'libpqwalreceiver.c',
)
+if host_system == 'windows'
+ libpqwalreceiver_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pqwalreceiver',
+ '--FILEDESC', 'libpqwalreceiver - receive WAL during streaming replication',])
+endif
+
libpqwalreceiver = shared_module('pqwalreceiver',
libpqwalreceiver_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/pgoutput/meson.build b/src/backend/replication/pgoutput/meson.build
index ab956361a62..5df27d7b764 100644
--- a/src/backend/replication/pgoutput/meson.build
+++ b/src/backend/replication/pgoutput/meson.build
@@ -2,6 +2,12 @@ pgoutput_sources = files(
'pgoutput.c',
)
+if host_system == 'windows'
+ pgoutput_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgoutput',
+ '--FILEDESC', 'pgoutput - standard logical replication output plugin',])
+endif
+
pgoutput = shared_module('pgoutput',
pgoutput_sources,
kwargs: pg_mod_args,
diff --git a/src/backend/snowball/meson.build b/src/backend/snowball/meson.build
index 8c6f685cb32..974401d187e 100644
--- a/src/backend/snowball/meson.build
+++ b/src/backend/snowball/meson.build
@@ -58,6 +58,12 @@ dict_snowball_sources += files(
# see comment in src/include/snowball/header.h
stemmer_inc = include_directories('../../include/snowball')
+if host_system == 'windows'
+ dict_snowball_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_snowball',
+ '--FILEDESC', 'snowball - natural language stemmers',])
+endif
+
dict_snowball = shared_module('dict_snowball',
dict_snowball_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/utils/mb/conversion_procs/meson.build b/src/backend/utils/mb/conversion_procs/meson.build
index 1bc971d1945..00e721a2453 100644
--- a/src/backend/utils/mb/conversion_procs/meson.build
+++ b/src/backend/utils/mb/conversion_procs/meson.build
@@ -1,36 +1,122 @@
encodings = {
- 'cyrillic_and_mic': ['cyrillic_and_mic/cyrillic_and_mic.c'],
- 'euc2004_sjis2004': ['euc2004_sjis2004/euc2004_sjis2004.c'],
- 'euc_cn_and_mic': ['euc_cn_and_mic/euc_cn_and_mic.c'],
- 'euc_jp_and_sjis': ['euc_jp_and_sjis/euc_jp_and_sjis.c'],
- 'euc_kr_and_mic': ['euc_kr_and_mic/euc_kr_and_mic.c'],
- 'euc_tw_and_big5': [
- 'euc_tw_and_big5/euc_tw_and_big5.c',
- 'euc_tw_and_big5/big5.c',
- ],
- 'latin2_and_win1250': ['latin2_and_win1250/latin2_and_win1250.c'],
- 'latin_and_mic': ['latin_and_mic/latin_and_mic.c'],
- 'utf8_and_big5': ['utf8_and_big5/utf8_and_big5.c'],
- 'utf8_and_cyrillic': ['utf8_and_cyrillic/utf8_and_cyrillic.c'],
- 'utf8_and_euc2004': ['utf8_and_euc2004/utf8_and_euc2004.c'],
- 'utf8_and_euc_cn': ['utf8_and_euc_cn/utf8_and_euc_cn.c'],
- 'utf8_and_euc_jp': ['utf8_and_euc_jp/utf8_and_euc_jp.c'],
- 'utf8_and_euc_kr': ['utf8_and_euc_kr/utf8_and_euc_kr.c'],
- 'utf8_and_euc_tw': ['utf8_and_euc_tw/utf8_and_euc_tw.c'],
- 'utf8_and_gb18030': ['utf8_and_gb18030/utf8_and_gb18030.c'],
- 'utf8_and_gbk': ['utf8_and_gbk/utf8_and_gbk.c'],
- 'utf8_and_iso8859': ['utf8_and_iso8859/utf8_and_iso8859.c'],
- 'utf8_and_iso8859_1': ['utf8_and_iso8859_1/utf8_and_iso8859_1.c'],
- 'utf8_and_johab': ['utf8_and_johab/utf8_and_johab.c'],
- 'utf8_and_sjis': ['utf8_and_sjis/utf8_and_sjis.c'],
- 'utf8_and_sjis2004': ['utf8_and_sjis2004/utf8_and_sjis2004.c'],
- 'utf8_and_uhc': ['utf8_and_uhc/utf8_and_uhc.c'],
- 'utf8_and_win': ['utf8_and_win/utf8_and_win.c'],
+ 'cyrillic_and_mic': {
+ 'sources': ['cyrillic_and_mic/cyrillic_and_mic.c'],
+ 'description': 'cyrillic <-> mic text conversions',
+ },
+ 'euc2004_sjis2004': {
+ 'sources': ['euc2004_sjis2004/euc2004_sjis2004.c'],
+ 'description': 'euc2004 <-> sjis2004 text conversions',
+ },
+ 'euc_cn_and_mic': {
+ 'sources': ['euc_cn_and_mic/euc_cn_and_mic.c'],
+ 'description': 'euc_cn <-> mic text conversions',
+ },
+ 'euc_jp_and_sjis': {
+ 'sources': ['euc_jp_and_sjis/euc_jp_and_sjis.c'],
+ 'description': 'euc_jp <-> sjis text conversions',
+ },
+ 'euc_kr_and_mic': {
+ 'sources': ['euc_kr_and_mic/euc_kr_and_mic.c'],
+ 'description': 'euc_kr <-> mic text conversions',
+ },
+ 'euc_tw_and_big5': {
+ 'sources': [
+ 'euc_tw_and_big5/euc_tw_and_big5.c',
+ 'euc_tw_and_big5/big5.c',
+ ],
+ 'description': 'euc_tw <-> big5 text conversions',
+ },
+ 'latin2_and_win1250': {
+ 'sources': ['latin2_and_win1250/latin2_and_win1250.c'],
+ 'description': 'latin2 <-> win1250 text conversions',
+ },
+ 'latin_and_mic': {
+ 'sources': ['latin_and_mic/latin_and_mic.c'],
+ 'description': 'latin <-> mic text conversions',
+ },
+ 'utf8_and_big5': {
+ 'sources': ['utf8_and_big5/utf8_and_big5.c'],
+ 'description': 'utf8 <-> big5 text conversions',
+ },
+ 'utf8_and_cyrillic': {
+ 'sources': ['utf8_and_cyrillic/utf8_and_cyrillic.c'],
+ 'description': 'utf8 <-> cyrillic text conversions',
+ },
+ 'utf8_and_euc2004': {
+ 'sources': ['utf8_and_euc2004/utf8_and_euc2004.c'],
+ 'description': 'utf8 <-> euc2004 text conversions',
+ },
+ 'utf8_and_euc_cn': {
+ 'sources': ['utf8_and_euc_cn/utf8_and_euc_cn.c'],
+ 'description': 'utf8 <-> euc_cn text conversions',
+ },
+ 'utf8_and_euc_jp': {
+ 'sources': ['utf8_and_euc_jp/utf8_and_euc_jp.c'],
+ 'description': 'utf8 <-> euc_jp text conversions',
+ },
+ 'utf8_and_euc_kr': {
+ 'sources': ['utf8_and_euc_kr/utf8_and_euc_kr.c'],
+ 'description': 'utf8 <-> euc_kr text conversions',
+ },
+ 'utf8_and_euc_tw': {
+ 'sources': ['utf8_and_euc_tw/utf8_and_euc_tw.c'],
+ 'description': 'utf8 <-> euc_tw text conversions',
+ },
+ 'utf8_and_gb18030': {
+ 'sources': ['utf8_and_gb18030/utf8_and_gb18030.c'],
+ 'description': 'utf8 <-> gb18030 text conversions',
+ },
+ 'utf8_and_gbk': {
+ 'sources': ['utf8_and_gbk/utf8_and_gbk.c'],
+ 'description': 'utf8 <-> gbk text conversions',
+ },
+ 'utf8_and_iso8859': {
+ 'sources': ['utf8_and_iso8859/utf8_and_iso8859.c'],
+ 'description': 'utf8 <-> iso8859 text conversions',
+ },
+ 'utf8_and_iso8859_1': {
+ 'sources': ['utf8_and_iso8859_1/utf8_and_iso8859_1.c'],
+ 'description': 'utf8 <-> iso8859_1 text conversions',
+ },
+ 'utf8_and_johab': {
+ 'sources': ['utf8_and_johab/utf8_and_johab.c'],
+ 'description': 'utf8 <-> johab text conversions',
+ },
+ 'utf8_and_sjis': {
+ 'sources': ['utf8_and_sjis/utf8_and_sjis.c'],
+ 'description': 'utf8 <-> sjis text conversions',
+ },
+ 'utf8_and_sjis2004': {
+ 'sources': ['utf8_and_sjis2004/utf8_and_sjis2004.c'],
+ 'description': 'utf8 <-> sjis2004 text conversions',
+ },
+ 'utf8_and_uhc': {
+ 'sources': ['utf8_and_uhc/utf8_and_uhc.c'],
+ 'description': 'utf8 <-> uhc text conversions',
+ },
+ 'utf8_and_win': {
+ 'sources': ['utf8_and_win/utf8_and_win.c'],
+ 'description': 'utf8 <-> win text conversions',
+ },
}
-foreach encoding, sources : encodings
+foreach encoding, values: encodings
+ sources = values['sources']
+ description = values['description']
+
+ source_files = files()
+ foreach source: sources
+ source_files += files(source)
+ endforeach
+
+ if host_system == 'windows'
+ source_files += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', encoding,
+ '--FILEDESC', description,])
+ endif
+
backend_targets += shared_module(encoding,
- sources,
+ source_files,
kwargs: pg_mod_args,
)
endforeach
diff --git a/src/bin/initdb/meson.build b/src/bin/initdb/meson.build
index 9f213274d2f..6ced9a31b80 100644
--- a/src/bin/initdb/meson.build
+++ b/src/bin/initdb/meson.build
@@ -7,6 +7,12 @@ initdb_sources += timezone_localtime_source
#fixme: reimplement libpq_pgport logic
+if host_system == 'windows'
+ initdb_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'initdb',
+ '--FILEDESC', 'initdb - initialize a new database cluster',])
+endif
+
initdb = executable('initdb',
initdb_sources,
include_directories: [timezone_inc],
diff --git a/src/bin/pg_amcheck/meson.build b/src/bin/pg_amcheck/meson.build
index 8e197eba5f3..25f5e7a0948 100644
--- a/src/bin/pg_amcheck/meson.build
+++ b/src/bin/pg_amcheck/meson.build
@@ -1,7 +1,13 @@
pg_amcheck_sources = files(
- 'pg_amcheck.c'
+ 'pg_amcheck.c',
)
+if host_system == 'windows'
+ pg_amcheck_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_amcheck',
+ '--FILEDESC', 'pg_amcheck - detect corruption within database relations',])
+endif
+
pg_amcheck = executable('pg_amcheck',
pg_amcheck_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_archivecleanup/meson.build b/src/bin/pg_archivecleanup/meson.build
index 87a0d980c4f..aaa2e76977f 100644
--- a/src/bin/pg_archivecleanup/meson.build
+++ b/src/bin/pg_archivecleanup/meson.build
@@ -1,5 +1,15 @@
+pg_archivecleanup_sources = files(
+ 'pg_archivecleanup.c',
+)
+
+if host_system == 'windows'
+ pg_archivecleanup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_archivecleanup',
+ '--FILEDESC', 'pg_archivecleanup - cleans archive when used with streaming replication',])
+endif
+
pg_archivecleanup = executable('pg_archivecleanup',
- ['pg_archivecleanup.c'],
+ pg_archivecleanup_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_basebackup/meson.build b/src/bin/pg_basebackup/meson.build
index d26fed9cd8a..2c934e0c26e 100644
--- a/src/bin/pg_basebackup/meson.build
+++ b/src/bin/pg_basebackup/meson.build
@@ -17,24 +17,56 @@ pg_basebackup_common = static_library('libpg_basebackup_common',
kwargs: internal_lib_args,
)
-pg_basebackup = executable('pg_basebackup',
+pg_basebackup_sources = files(
'pg_basebackup.c',
+)
+
+if host_system == 'windows'
+ pg_basebackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_basebackup',
+ '--FILEDESC', 'pg_basebackup - streaming WAL and backup receivers',])
+endif
+
+pg_basebackup = executable('pg_basebackup',
+ pg_basebackup_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_basebackup
-pg_receivewal = executable('pg_receivewal',
+
+pg_receivewal_sources = files(
'pg_receivewal.c',
+)
+
+if host_system == 'windows'
+ pg_receivewal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_receivewal',
+ '--FILEDESC', 'pg_receivewal - streaming WAL and backup receivers',])
+endif
+
+pg_receivewal = executable('pg_receivewal',
+ pg_receivewal_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_receivewal
-pg_recvlogical = executable('pg_recvlogical',
+
+pg_recvlogical_sources = files(
'pg_recvlogical.c',
+)
+
+if host_system == 'windows'
+ pg_recvlogical_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_recvlogical',
+ '--FILEDESC', 'pg_recvlogical - streaming WAL and backup receivers',])
+endif
+
+pg_recvlogical = executable('pg_recvlogical',
+ pg_recvlogical_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
diff --git a/src/bin/pg_checksums/meson.build b/src/bin/pg_checksums/meson.build
index ee1f367bac3..d07ebc999b3 100644
--- a/src/bin/pg_checksums/meson.build
+++ b/src/bin/pg_checksums/meson.build
@@ -1,5 +1,15 @@
+pg_checksums_sources = files(
+ 'pg_checksums.c',
+)
+
+if host_system == 'windows'
+ pg_checksums_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_checksums',
+ '--FILEDESC', 'pg_checksums - verify data checksums in an offline cluster',])
+endif
+
pg_checksums = executable('pg_checksums',
- ['pg_checksums.c'],
+ pg_checksums_sources,
include_directories: [timezone_inc],
dependencies: [frontend_code],
kwargs: default_bin_args,
diff --git a/src/bin/pg_config/meson.build b/src/bin/pg_config/meson.build
index 0ecbf2f9d28..4be2fdc84ae 100644
--- a/src/bin/pg_config/meson.build
+++ b/src/bin/pg_config/meson.build
@@ -1,5 +1,15 @@
+pg_config_sources = files(
+ 'pg_config.c',
+)
+
+if host_system == 'windows'
+ pg_config_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_config',
+ '--FILEDESC', 'pg_config - report configuration information',])
+endif
+
pg_config = executable('pg_config',
- ['pg_config.c'],
+ pg_config_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_controldata/meson.build b/src/bin/pg_controldata/meson.build
index 557e672beb7..7fc239dbe65 100644
--- a/src/bin/pg_controldata/meson.build
+++ b/src/bin/pg_controldata/meson.build
@@ -1,5 +1,15 @@
+pg_controldata_sources = files(
+ 'pg_controldata.c',
+)
+
+if host_system == 'windows'
+ pg_controldata_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_controldata',
+ '--FILEDESC', 'pg_controldata - reads the data from pg_control',])
+endif
+
pg_controldata = executable('pg_controldata',
- ['pg_controldata.c'],
+ pg_controldata_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_ctl/meson.build b/src/bin/pg_ctl/meson.build
index 6812e73e329..96f962fa762 100644
--- a/src/bin/pg_ctl/meson.build
+++ b/src/bin/pg_ctl/meson.build
@@ -1,5 +1,15 @@
+pg_ctl_sources = files(
+ 'pg_ctl.c',
+)
+
+if host_system == 'windows'
+ pg_ctl_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_ctl',
+ '--FILEDESC', 'pg_ctl - starts/stops/restarts the PostgreSQL server',])
+endif
+
pg_ctl = executable('pg_ctl',
- ['pg_ctl.c'],
+ pg_ctl_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build
index 785ec094dbd..3527a25c288 100644
--- a/src/bin/pg_dump/meson.build
+++ b/src/bin/pg_dump/meson.build
@@ -24,6 +24,12 @@ pg_dump_sources = files(
'pg_dump_sort.c',
)
+if host_system == 'windows'
+ pg_dump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dump',
+ '--FILEDESC', 'pg_dump - backup one PostgreSQL database',])
+endif
+
pg_dump = executable('pg_dump',
pg_dump_sources,
link_with: [pg_dump_common],
@@ -37,6 +43,12 @@ pg_dumpall_sources = files(
'pg_dumpall.c',
)
+if host_system == 'windows'
+ pg_dumpall_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dumpall',
+ '--FILEDESC', 'pg_dumpall - backup PostgreSQL databases'])
+endif
+
pg_dumpall = executable('pg_dumpall',
pg_dumpall_sources,
link_with: [pg_dump_common],
@@ -50,6 +62,12 @@ pg_restore_sources = files(
'pg_restore.c',
)
+if host_system == 'windows'
+ pg_restore_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_restore',
+ '--FILEDESC', 'pg_restore - restore PostgreSQL databases'])
+endif
+
pg_restore = executable('pg_restore',
pg_restore_sources,
link_with: [pg_dump_common],
diff --git a/src/bin/pg_resetwal/meson.build b/src/bin/pg_resetwal/meson.build
index 7c5de134ac0..d503db97b71 100644
--- a/src/bin/pg_resetwal/meson.build
+++ b/src/bin/pg_resetwal/meson.build
@@ -1,5 +1,15 @@
+pg_resetwal_sources = files(
+ 'pg_resetwal.c',
+)
+
+if host_system == 'windows'
+ pg_resetwal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_resetwal',
+ '--FILEDESC', 'pg_resetwal - reset PostgreSQL WAL log'])
+endif
+
pg_resetwal = executable('pg_resetwal',
- files('pg_resetwal.c'),
+ pg_resetwal_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_rewind/meson.build b/src/bin/pg_rewind/meson.build
index d8ec9e482d5..6cd970909a2 100644
--- a/src/bin/pg_rewind/meson.build
+++ b/src/bin/pg_rewind/meson.build
@@ -11,6 +11,12 @@ pg_rewind_sources = files(
pg_rewind_sources += xlogreader_sources
+if host_system == 'windows'
+ pg_rewind_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_rewind',
+ '--FILEDESC', 'pg_rewind - synchronize a data directory with another one forked from'])
+endif
+
pg_rewind = executable('pg_rewind',
pg_rewind_sources,
dependencies: [frontend_code, libpq, lz4, zstd],
diff --git a/src/bin/pg_test_fsync/meson.build b/src/bin/pg_test_fsync/meson.build
index 2c01831e11f..31d288ba6da 100644
--- a/src/bin/pg_test_fsync/meson.build
+++ b/src/bin/pg_test_fsync/meson.build
@@ -1,4 +1,12 @@
-test_fsync_sources = files('pg_test_fsync.c')
+test_fsync_sources = files(
+ 'pg_test_fsync.c',
+)
+
+if host_system == 'windows'
+ test_fsync_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_fsync',
+ '--FILEDESC', 'pg_test_fsync - test various disk sync methods'])
+endif
pg_test_fsync = executable('pg_test_fsync',
test_fsync_sources,
diff --git a/src/bin/pg_test_timing/meson.build b/src/bin/pg_test_timing/meson.build
index 0a3068f1657..0aed03ea32f 100644
--- a/src/bin/pg_test_timing/meson.build
+++ b/src/bin/pg_test_timing/meson.build
@@ -1,5 +1,15 @@
+pg_test_timing_sources = files(
+ 'pg_test_timing.c'
+)
+
+if host_system == 'windows'
+ pg_test_timing_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_timing',
+ '--FILEDESC', 'pg_test_timing - test timing overhead'])
+endif
+
pg_test_timing = executable('pg_test_timing',
- ['pg_test_timing.c'],
+ pg_test_timing_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_upgrade/meson.build b/src/bin/pg_upgrade/meson.build
index 02f030e0ccf..a7b927a45c7 100644
--- a/src/bin/pg_upgrade/meson.build
+++ b/src/bin/pg_upgrade/meson.build
@@ -16,6 +16,12 @@ pg_upgrade_sources = files(
'version.c',
)
+if host_system == 'windows'
+ pg_upgrade_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_upgrade',
+ '--FILEDESC', 'pg_upgrade - an in-place binary upgrade utility'])
+endif
+
pg_upgrade = executable('pg_upgrade',
pg_upgrade_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_verifybackup/meson.build b/src/bin/pg_verifybackup/meson.build
index 4c3b2bb5f97..b934a408443 100644
--- a/src/bin/pg_verifybackup/meson.build
+++ b/src/bin/pg_verifybackup/meson.build
@@ -3,6 +3,12 @@ pg_verifybackup_sources = files(
'pg_verifybackup.c'
)
+if host_system == 'windows'
+ pg_verifybackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_verifybackup',
+ '--FILEDESC', 'pg_verifybackup - verify a backup against using a backup manifest'])
+endif
+
pg_verifybackup = executable('pg_verifybackup',
pg_verifybackup_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_waldump/meson.build b/src/bin/pg_waldump/meson.build
index 95872652ffd..9605976870d 100644
--- a/src/bin/pg_waldump/meson.build
+++ b/src/bin/pg_waldump/meson.build
@@ -8,6 +8,12 @@ pg_waldump_sources += rmgr_desc_sources
pg_waldump_sources += xlogreader_sources
pg_waldump_sources += files('../../backend/access/transam/xlogstats.c')
+if host_system == 'windows'
+ pg_waldump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_waldump',
+ '--FILEDESC', 'pg_waldump - decode and display WA'])
+endif
+
pg_waldump = executable('pg_waldump',
pg_waldump_sources,
dependencies: [frontend_code, lz4, zstd],
diff --git a/src/bin/pgbench/meson.build b/src/bin/pgbench/meson.build
index 6564e54029c..a32eb51fe07 100644
--- a/src/bin/pgbench/meson.build
+++ b/src/bin/pgbench/meson.build
@@ -17,6 +17,12 @@ exprparse = custom_target('exprparse',
generated_sources += exprparse.to_list()
pgbench_sources += exprparse
+if host_system == 'windows'
+ pgbench_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgbench',
+ '--FILEDESC', 'pgbench - a simple program for running benchmark tests'])
+endif
+
pgbench = executable('pgbench',
pgbench_sources,
dependencies: [frontend_code, libpq, thread_dep],
diff --git a/src/bin/pgevent/meson.build b/src/bin/pgevent/meson.build
index 7a468879fd2..2e9aea4b0e1 100644
--- a/src/bin/pgevent/meson.build
+++ b/src/bin/pgevent/meson.build
@@ -6,6 +6,12 @@ pgevent_sources = files(
'pgevent.c',
)
+pgevent_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgevent',
+ '--FILEDESC', 'Eventlog message formatter',])
+
+pgevent_sources += windows.compile_resources('pgmsgevent.rc')
+
# FIXME: copied from Mkvcbuild.pm, but I don't think that's the right approach
pgevent_link_args = []
if cc.get_id() == 'msvc'
diff --git a/src/bin/psql/meson.build b/src/bin/psql/meson.build
index 410788e4767..1264fc19fbd 100644
--- a/src/bin/psql/meson.build
+++ b/src/bin/psql/meson.build
@@ -36,6 +36,12 @@ sql_help = custom_target('psql_help',
generated_sources += sql_help.to_list()
psql_sources += sql_help
+if host_system == 'windows'
+ psql_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'psql',
+ '--FILEDESC', 'psql - the PostgreSQL interactive terminal',])
+endif
+
psql = executable('psql',
psql_sources,
include_directories: include_directories('.'),
diff --git a/src/bin/scripts/meson.build b/src/bin/scripts/meson.build
index eaf250c7f73..837562c24e5 100644
--- a/src/bin/scripts/meson.build
+++ b/src/bin/scripts/meson.build
@@ -16,8 +16,16 @@ binaries = [
]
foreach binary : binaries
+ binary_sources = files('@[email protected]'.format(binary))
+
+ if host_system == 'windows'
+ binary_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', binary,
+ '--FILEDESC', '@0@ - PostgreSQL utility'.format(binary),])
+ endif
+
binary = executable(binary,
- files(binary + '.c'),
+ binary_sources,
link_with: [scripts_common],
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build
index bc047e00d62..2c9edeaa088 100644
--- a/src/interfaces/libpq/meson.build
+++ b/src/interfaces/libpq/meson.build
@@ -16,9 +16,13 @@ libpq_sources = files(
'libpq-events.c',
'pqexpbuffer.c',
)
+libpq_so_sources = [] # only for shared lib, in addition to above
if host_system == 'windows'
libpq_sources += files('pthread-win32.c', 'win32.c')
+ libpq_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq',
+ '--FILEDESC', 'PostgreSQL Access Library',])
endif
if ssl.found()
@@ -52,6 +56,7 @@ libpq_st = static_library('libpq',
# not using both_libraries here, causes problems with precompiled headers and
# resource files with msbuild
libpq_so = shared_library('libpq',
+ libpq_so_sources,
dependencies: libpq_deps,
include_directories: [libpq_inc, postgres_inc],
c_args: ['-DSO_MAJOR_VERSION=5'],
diff --git a/src/interfaces/libpq/test/meson.build b/src/interfaces/libpq/test/meson.build
index 16f94c1ed8b..017f729d435 100644
--- a/src/interfaces/libpq/test/meson.build
+++ b/src/interfaces/libpq/test/meson.build
@@ -1,13 +1,34 @@
+libpq_uri_regress_sources = files(
+ 'libpq_uri_regress.c',
+)
+
+if host_system == 'windows'
+ libpq_uri_regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_uri_regress',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_uri_regress',
- files('libpq_uri_regress.c'),
+ libpq_uri_regress_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
}
)
+
+libpq_testclient_sources = files(
+ 'libpq_testclient.c',
+)
+
+if host_system == 'windows'
+ libpq_testclient_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_testclient',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_testclient',
- files('libpq_testclient.c'),
+ libpq_testclient_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/pl/plperl/meson.build b/src/pl/plperl/meson.build
index 73b733dd50b..535660085dd 100644
--- a/src/pl/plperl/meson.build
+++ b/src/pl/plperl/meson.build
@@ -36,6 +36,13 @@ foreach n : ['SPI', 'Util']
endforeach
plperl_inc = include_directories('.')
+
+if host_system == 'windows'
+ plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plperl',
+ '--FILEDESC', 'PL/Perl - procedural language',])
+endif
+
plperl = shared_module('plperl',
plperl_sources,
include_directories: [plperl_inc, postgres_inc],
diff --git a/src/pl/plpgsql/src/meson.build b/src/pl/plpgsql/src/meson.build
index dd499fdd151..c46c0a1da2a 100644
--- a/src/pl/plpgsql/src/meson.build
+++ b/src/pl/plpgsql/src/meson.build
@@ -40,6 +40,12 @@ pl_unreserved = custom_target('pl_unreserved_kwlist',
generated_sources += pl_unreserved
plpgsql_sources += pl_unreserved
+if host_system == 'windows'
+ plpgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpgsql',
+ '--FILEDESC', 'PL/pgSQL - procedural language',])
+endif
+
plpgsql = shared_module('plpgsql',
plpgsql_sources,
include_directories: include_directories('.'),
diff --git a/src/pl/plpython/meson.build b/src/pl/plpython/meson.build
index 366b3b171ac..40888386b5f 100644
--- a/src/pl/plpython/meson.build
+++ b/src/pl/plpython/meson.build
@@ -28,6 +28,12 @@ plpython_sources += custom_target('spiexceptions.h',
# FIXME: need to duplicate import library ugliness?
plpython_inc = include_directories('.')
+if host_system == 'windows'
+ plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpython3',
+ '--FILEDESC', 'PL/Python - procedural language',])
+endif
+
plpython = shared_module('plpython3',
plpython_sources,
include_directories: [plpython_inc, postgres_inc],
diff --git a/src/pl/tcl/meson.build b/src/pl/tcl/meson.build
index 9b6addd7fd5..f09bb14c950 100644
--- a/src/pl/tcl/meson.build
+++ b/src/pl/tcl/meson.build
@@ -14,6 +14,12 @@ pltcl_sources += custom_target('pltclerrcodes.h',
command: [perl, gen_pltclerrcodes, '@INPUT@']
)
+if host_system == 'windows'
+ pltcl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pltcl',
+ '--FILEDESC', 'PL/Tcl - procedural language',])
+endif
+
pltcl = shared_module('pltcl',
pltcl_sources,
include_directories: [include_directories('.'), postgres_inc],
diff --git a/contrib/adminpack/meson.build b/contrib/adminpack/meson.build
index fc2368d02cf..7efec0efbc0 100644
--- a/contrib/adminpack/meson.build
+++ b/contrib/adminpack/meson.build
@@ -1,5 +1,15 @@
+adminpack_sources = files(
+ 'adminpack.c',
+)
+
+if host_system == 'windows'
+ adminpack_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'adminpack',
+ '--FILEDESC', 'adminpack - support functions for pgAdmin',])
+endif
+
adminpack = shared_module('adminpack',
- ['adminpack.c'],
+ adminpack_sources,
kwargs: contrib_mod_args,
)
contrib_targets += adminpack
diff --git a/contrib/amcheck/meson.build b/contrib/amcheck/meson.build
index 1db3d20349e..fa807b72d98 100644
--- a/contrib/amcheck/meson.build
+++ b/contrib/amcheck/meson.build
@@ -1,7 +1,16 @@
-amcheck = shared_module('amcheck', [
- 'verify_heapam.c',
- 'verify_nbtree.c',
- ],
+amcheck_sources = files(
+ 'verify_heapam.c',
+ 'verify_nbtree.c',
+)
+
+if host_system == 'windows'
+ amcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'amcheck',
+ '--FILEDESC', 'amcheck - function for verifying relation integrity',])
+endif
+
+amcheck = shared_module('amcheck',
+ amcheck_sources,
kwargs: contrib_mod_args,
)
contrib_targets += amcheck
diff --git a/contrib/auth_delay/meson.build b/contrib/auth_delay/meson.build
index d2e01968f54..c4ffb0663bc 100644
--- a/contrib/auth_delay/meson.build
+++ b/contrib/auth_delay/meson.build
@@ -1,5 +1,15 @@
+auth_delay_sources = files(
+ 'auth_delay.c',
+)
+
+if host_system == 'windows'
+ auth_delay_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auth_delay',
+ '--FILEDESC', 'auth_delay - delay authentication failure reports',])
+endif
+
autoinc = shared_module('auth_delay',
- ['auth_delay.c'],
+ auth_delay_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
diff --git a/contrib/auto_explain/meson.build b/contrib/auto_explain/meson.build
index 249a8376faa..76f86617850 100644
--- a/contrib/auto_explain/meson.build
+++ b/contrib/auto_explain/meson.build
@@ -1,5 +1,15 @@
+auto_explain_sources = files(
+ 'auto_explain.c',
+)
+
+if host_system == 'windows'
+ auto_explain_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auto_explain',
+ '--FILEDESC', 'auto_explain - logging facility for execution plans',])
+endif
+
auto_explain = shared_module('auto_explain',
- files('auto_explain.c'),
+ auto_explain_sources,
kwargs: contrib_mod_args,
)
contrib_targets += auto_explain
diff --git a/contrib/basebackup_to_shell/meson.build b/contrib/basebackup_to_shell/meson.build
index 9f0517f1701..3a389de9175 100644
--- a/contrib/basebackup_to_shell/meson.build
+++ b/contrib/basebackup_to_shell/meson.build
@@ -2,6 +2,12 @@ basebackup_to_shell_sources = files(
'basebackup_to_shell.c',
)
+if host_system == 'windows'
+ basebackup_to_shell_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basebackup_to_shell',
+ '--FILEDESC', 'basebackup_to_shell - target basebackup to shell command',])
+endif
+
basebackup_to_shell = shared_module('basebackup_to_shell',
basebackup_to_shell_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/basic_archive/meson.build b/contrib/basic_archive/meson.build
index b67cbef60bd..c30dcfa5d41 100644
--- a/contrib/basic_archive/meson.build
+++ b/contrib/basic_archive/meson.build
@@ -2,6 +2,12 @@ basic_archive_sources = files(
'basic_archive.c',
)
+if host_system == 'windows'
+ basic_archive_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basic_archive',
+ '--FILEDESC', 'basic_archive - basic archive module',])
+endif
+
basic_archive = shared_module('basic_archive',
basic_archive_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bloom/meson.build b/contrib/bloom/meson.build
index 1fe7632bdbe..16f3b83e4d2 100644
--- a/contrib/bloom/meson.build
+++ b/contrib/bloom/meson.build
@@ -7,6 +7,12 @@ bloom_sources = files(
'blvalidate.c',
)
+if host_system == 'windows'
+ bloom_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bloom',
+ '--FILEDESC', 'bloom access method - signature file based index',])
+endif
+
bloom = shared_module('bloom',
bloom_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bool_plperl/meson.build b/contrib/bool_plperl/meson.build
index c20b667d75f..a68daab0dcd 100644
--- a/contrib/bool_plperl/meson.build
+++ b/contrib/bool_plperl/meson.build
@@ -6,6 +6,12 @@ bool_plperl_sources = files(
'bool_plperl.c',
)
+if host_system == 'windows'
+ bool_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bool_plperl',
+ '--FILEDESC', 'bool_plperl - bool transform for plperl',])
+endif
+
bool_plperl = shared_module('bool_plperl',
bool_plperl_sources,
include_directories: [plperl_inc, include_directories('.')],
diff --git a/contrib/btree_gin/meson.build b/contrib/btree_gin/meson.build
index 15d6d31a6ee..fd4c76767a7 100644
--- a/contrib/btree_gin/meson.build
+++ b/contrib/btree_gin/meson.build
@@ -1,5 +1,15 @@
+btree_gin_sources = files(
+ 'btree_gin.c',
+)
+
+if host_system == 'windows'
+ btree_gin_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gin',
+ '--FILEDESC', 'btree_gin - B-tree equivalent GIN operator classes',])
+endif
+
btree_gin = shared_module('btree_gin',
- files('btree_gin.c'),
+ btree_gin_sources,
kwargs: contrib_mod_args,
)
contrib_targets += btree_gin
diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build
index c0a8d238540..e98c91dacc8 100644
--- a/contrib/btree_gist/meson.build
+++ b/contrib/btree_gist/meson.build
@@ -25,6 +25,12 @@ btree_gist_sources = files(
'btree_uuid.c',
)
+if host_system == 'windows'
+ btree_gist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gist',
+ '--FILEDESC', 'btree_gist - B-tree equivalent GiST operator classes',])
+endif
+
btree_gist = shared_module('btree_gist',
btree_gist_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/citext/meson.build b/contrib/citext/meson.build
index ca60eded80b..26a101a19bd 100644
--- a/contrib/citext/meson.build
+++ b/contrib/citext/meson.build
@@ -2,6 +2,12 @@ citext_sources = files(
'citext.c',
)
+if host_system == 'windows'
+ citext_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'citext',
+ '--FILEDESC', 'citext - case-insensitive character string data type',])
+endif
+
citext = shared_module('citext',
citext_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/cube/meson.build b/contrib/cube/meson.build
index 72342b0c82c..041acf95a90 100644
--- a/contrib/cube/meson.build
+++ b/contrib/cube/meson.build
@@ -17,6 +17,12 @@ cube_parse = custom_target('cubeparse',
generated_sources += cube_parse.to_list()
cube_sources += cube_parse
+if host_system == 'windows'
+ cube_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'cube',
+ '--FILEDESC', 'cube - multidimensional cube data type',])
+endif
+
cube = shared_module('cube',
cube_sources,
include_directories: include_directories('.'),
diff --git a/contrib/dblink/meson.build b/contrib/dblink/meson.build
index d35f7b5d49e..66eeb03b736 100644
--- a/contrib/dblink/meson.build
+++ b/contrib/dblink/meson.build
@@ -2,6 +2,12 @@ dblink_sources = files(
'dblink.c',
)
+if host_system == 'windows'
+ dblink_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dblink',
+ '--FILEDESC', 'dblink - connect to other PostgreSQL databases',])
+endif
+
dblink = shared_module('dblink',
dblink_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/dict_int/meson.build b/contrib/dict_int/meson.build
index f00e8085619..6fff921adda 100644
--- a/contrib/dict_int/meson.build
+++ b/contrib/dict_int/meson.build
@@ -1,5 +1,15 @@
+dict_int_sources = files(
+ 'dict_int.c',
+)
+
+if host_system == 'windows'
+ dict_int_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_int',
+ '--FILEDESC', 'dict_int - add-on dictionary template for full-text search',])
+endif
+
dict_int = shared_module('dict_int',
- files('dict_int.c'),
+ dict_int_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_int
diff --git a/contrib/dict_xsyn/meson.build b/contrib/dict_xsyn/meson.build
index be53f55bb79..fabd505a7df 100644
--- a/contrib/dict_xsyn/meson.build
+++ b/contrib/dict_xsyn/meson.build
@@ -1,5 +1,15 @@
+dict_xsyn_sources = files(
+ 'dict_xsyn.c',
+)
+
+if host_system == 'windows'
+ dict_xsyn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_xsyn',
+ '--FILEDESC', 'dict_xsyn - add-on dictionary template for full-text search',])
+endif
+
dict_xsyn = shared_module('dict_xsyn',
- files('dict_xsyn.c'),
+ dict_xsyn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_xsyn
diff --git a/contrib/earthdistance/meson.build b/contrib/earthdistance/meson.build
index 807f5cb7de3..78dc29c3da3 100644
--- a/contrib/earthdistance/meson.build
+++ b/contrib/earthdistance/meson.build
@@ -1,5 +1,15 @@
+earthdistance_sources = files(
+ 'earthdistance.c',
+)
+
+if host_system == 'windows'
+ earthdistance_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'earthdistance',
+ '--FILEDESC', 'earthdistance - calculate distances on the surface of the Earth',])
+endif
+
earthdistance = shared_module('earthdistance',
- files('earthdistance.c'),
+ earthdistance_sources,
kwargs: contrib_mod_args,
)
contrib_targets += earthdistance
diff --git a/contrib/file_fdw/meson.build b/contrib/file_fdw/meson.build
index f13efb6e38e..c4071faa669 100644
--- a/contrib/file_fdw/meson.build
+++ b/contrib/file_fdw/meson.build
@@ -1,5 +1,15 @@
+file_fdw_sources = files(
+ 'file_fdw.c',
+)
+
+if host_system == 'windows'
+ file_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'file_fdw',
+ '--FILEDESC', 'file_fdw - foreign data wrapper for files',])
+endif
+
file_fdw = shared_module('file_fdw',
- files('file_fdw.c'),
+ file_fdw_sources,
kwargs: contrib_mod_args,
)
contrib_targets += file_fdw
diff --git a/contrib/fuzzystrmatch/meson.build b/contrib/fuzzystrmatch/meson.build
index ec278a6211e..e6d06149cec 100644
--- a/contrib/fuzzystrmatch/meson.build
+++ b/contrib/fuzzystrmatch/meson.build
@@ -1,8 +1,16 @@
+fuzzystrmatch_sources = files(
+ 'fuzzystrmatch.c',
+ 'dmetaphone.c',
+)
+
+if host_system == 'windows'
+ fuzzystrmatch_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'fuzzystrmatch',
+ '--FILEDESC', 'fuzzystrmatch - similarities and distance between strings',])
+endif
+
fuzzystrmatch = shared_module('fuzzystrmatch',
- files(
- 'fuzzystrmatch.c',
- 'dmetaphone.c'
- ),
+ fuzzystrmatch_sources,
kwargs: contrib_mod_args,
)
contrib_targets += fuzzystrmatch
diff --git a/contrib/hstore/meson.build b/contrib/hstore/meson.build
index 07c59f40a97..2bb26bb772b 100644
--- a/contrib/hstore/meson.build
+++ b/contrib/hstore/meson.build
@@ -1,15 +1,23 @@
# .. so that includes of hstore/hstore.h work
hstore_inc = include_directories('.', '../')
+hstore_sources = files(
+ 'hstore_compat.c',
+ 'hstore_gin.c',
+ 'hstore_gist.c',
+ 'hstore_io.c',
+ 'hstore_op.c',
+ 'hstore_subs.c',
+)
+
+if host_system == 'windows'
+ hstore_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore',
+ '--FILEDESC', 'hstore - key/value pair data type',])
+endif
+
hstore = shared_module('hstore',
- files(
- 'hstore_compat.c',
- 'hstore_gin.c',
- 'hstore_gist.c',
- 'hstore_io.c',
- 'hstore_op.c',
- 'hstore_subs.c',
- ),
+ hstore_sources,
kwargs: contrib_mod_args,
)
contrib_targets += hstore
diff --git a/contrib/hstore_plperl/meson.build b/contrib/hstore_plperl/meson.build
index bbafa0221bd..a238fee6a26 100644
--- a/contrib/hstore_plperl/meson.build
+++ b/contrib/hstore_plperl/meson.build
@@ -6,6 +6,12 @@ hstore_plperl_sources = files(
'hstore_plperl.c',
)
+if host_system == 'windows'
+ hstore_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plperl',
+ '--FILEDESC', 'hstore_plperl - hstore transform for plperl',])
+endif
+
hstore_plperl = shared_module('hstore_plperl',
hstore_plperl_sources,
include_directories: [plperl_inc, hstore_inc],
diff --git a/contrib/hstore_plpython/meson.build b/contrib/hstore_plpython/meson.build
index 214b48519a9..6071aaeb4b3 100644
--- a/contrib/hstore_plpython/meson.build
+++ b/contrib/hstore_plpython/meson.build
@@ -6,6 +6,12 @@ hstore_plpython_sources = files(
'hstore_plpython.c',
)
+if host_system == 'windows'
+ hstore_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plpython3',
+ '--FILEDESC', 'hstore_plpython - hstore transform for plpython',])
+endif
+
hstore_plpython = shared_module('hstore_plpython3',
hstore_plpython_sources,
include_directories: [plpython_inc, hstore_inc, ],
diff --git a/contrib/intarray/meson.build b/contrib/intarray/meson.build
index 1655bcbb3fd..b7cf1ce0cad 100644
--- a/contrib/intarray/meson.build
+++ b/contrib/intarray/meson.build
@@ -8,6 +8,12 @@ intarray_sources = files(
'_intbig_gist.c',
)
+if host_system == 'windows'
+ intarray_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', '_int',
+ '--FILEDESC', 'intarray - functions and operators for arrays of integers',])
+endif
+
intarray = shared_module('_int',
intarray_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/isn/meson.build b/contrib/isn/meson.build
index cc30bbeb55c..db68a718313 100644
--- a/contrib/isn/meson.build
+++ b/contrib/isn/meson.build
@@ -2,6 +2,12 @@ isn_sources = files(
'isn.c',
)
+if host_system == 'windows'
+ isn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isn',
+ '--FILEDESC', 'isn - data types for international product numbering standards',])
+endif
+
isn = shared_module('isn',
isn_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/jsonb_plperl/meson.build b/contrib/jsonb_plperl/meson.build
index 5c915d8ed94..071a7a98d2c 100644
--- a/contrib/jsonb_plperl/meson.build
+++ b/contrib/jsonb_plperl/meson.build
@@ -6,6 +6,12 @@ jsonb_plperl_sources = files(
'jsonb_plperl.c',
)
+if host_system == 'windows'
+ jsonb_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plperl',
+ '--FILEDESC', 'jsonb_plperl - jsonb transform for plperl',])
+endif
+
jsonb_plperl = shared_module('jsonb_plperl',
jsonb_plperl_sources,
include_directories: [plperl_inc],
diff --git a/contrib/jsonb_plpython/meson.build b/contrib/jsonb_plpython/meson.build
index de8e1105c6a..84dc1161e8b 100644
--- a/contrib/jsonb_plpython/meson.build
+++ b/contrib/jsonb_plpython/meson.build
@@ -6,6 +6,12 @@ jsonb_plpython_sources = files(
'jsonb_plpython.c',
)
+if host_system == 'windows'
+ jsonb_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plpython3',
+ '--FILEDESC', 'jsonb_plpython - jsonb transform for plpython',])
+endif
+
jsonb_plpython = shared_module('jsonb_plpython3',
jsonb_plpython_sources,
include_directories: [plpython_inc],
diff --git a/contrib/lo/meson.build b/contrib/lo/meson.build
index 9082d5713c7..61ae131f1cc 100644
--- a/contrib/lo/meson.build
+++ b/contrib/lo/meson.build
@@ -2,6 +2,12 @@ lo_sources = files(
'lo.c',
)
+if host_system == 'windows'
+ lo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'lo',
+ '--FILEDESC', 'lo - management for large objects',])
+endif
+
lo = shared_module('lo',
lo_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree/meson.build b/contrib/ltree/meson.build
index 9463fc2c5e5..421292cea9d 100644
--- a/contrib/ltree/meson.build
+++ b/contrib/ltree/meson.build
@@ -13,6 +13,12 @@ ltree_sources = files(
# .. so that includes of ltree/ltree.h work
ltree_inc = include_directories('.', '../')
+if host_system == 'windows'
+ ltree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree',
+ '--FILEDESC', 'ltree - hierarchical label data type',])
+endif
+
ltree = shared_module('ltree',
ltree_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree_plpython/meson.build b/contrib/ltree_plpython/meson.build
index 429d75006aa..acf5e4a6fc8 100644
--- a/contrib/ltree_plpython/meson.build
+++ b/contrib/ltree_plpython/meson.build
@@ -6,6 +6,12 @@ ltree_plpython_sources = files(
'ltree_plpython.c',
)
+if host_system == 'windows'
+ ltree_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree_plpython3',
+ '--FILEDESC', 'ltree_plpython - ltree transform for plpython',])
+endif
+
ltree_plpython = shared_module('ltree_plpython3',
ltree_plpython_sources,
include_directories: [plpython_inc, ltree_inc],
diff --git a/contrib/oid2name/meson.build b/contrib/oid2name/meson.build
index 1dad5d8f6e7..1a248f19260 100644
--- a/contrib/oid2name/meson.build
+++ b/contrib/oid2name/meson.build
@@ -1,5 +1,15 @@
+oid2name_sources = files(
+ 'oid2name.c',
+)
+
+if host_system == 'windows'
+ oid2name_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'oid2name',
+ '--FILEDESC', 'oid2name - examine the file structure',])
+endif
+
oid2name = executable('oid2name',
- ['oid2name.c'],
+ oid2name_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/old_snapshot/meson.build b/contrib/old_snapshot/meson.build
index 8e7ee09a43a..77276c3715a 100644
--- a/contrib/old_snapshot/meson.build
+++ b/contrib/old_snapshot/meson.build
@@ -2,6 +2,12 @@ old_snapshot_sources = files(
'time_mapping.c',
)
+if host_system == 'windows'
+ old_snapshot_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'old_snapshot',
+ '--FILEDESC', 'old_snapshot - utilities in support of old_snapshot_threshold',])
+endif
+
old_snapshot = shared_module('old_snapshot',
old_snapshot_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/pageinspect/meson.build b/contrib/pageinspect/meson.build
index 4af8153e4fd..3ec50b9445e 100644
--- a/contrib/pageinspect/meson.build
+++ b/contrib/pageinspect/meson.build
@@ -9,6 +9,12 @@ pageinspect_sources = files(
'rawpage.c',
)
+if host_system == 'windows'
+ pageinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pageinspect',
+ '--FILEDESC', 'pageinspect - functions to inspect contents of database pages',])
+endif
+
pageinspect = shared_module('pageinspect',
pageinspect_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/passwordcheck/meson.build b/contrib/passwordcheck/meson.build
index 7da47d02f1d..383d7df372a 100644
--- a/contrib/passwordcheck/meson.build
+++ b/contrib/passwordcheck/meson.build
@@ -9,6 +9,12 @@ passwordcheck_deps = []
# passwordcheck_c_args += ['-DUSE_CRACKLIB', '-DCRACKLIB_DICTPATH="/usr/lib/cracklib_dict"']
# passwordcheck_deps += [cc.find_library('crack')]
+if host_system == 'windows'
+ passwordcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'passwordcheck',
+ '--FILEDESC', 'passwordcheck - strengthen user password checks',])
+endif
+
passwordcheck = shared_module('passwordcheck',
passwordcheck_sources,
c_args: passwordcheck_c_args,
diff --git a/contrib/pg_buffercache/meson.build b/contrib/pg_buffercache/meson.build
index 2c69eae3ea2..dd9948e5f0b 100644
--- a/contrib/pg_buffercache/meson.build
+++ b/contrib/pg_buffercache/meson.build
@@ -1,7 +1,15 @@
+pg_buffercache_sources = files(
+ 'pg_buffercache_pages.c',
+)
+
+if host_system == 'windows'
+ pg_buffercache_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_buffercache',
+ '--FILEDESC', 'pg_buffercache - monitoring of shared buffer cache in real-time',])
+endif
+
pg_buffercache = shared_module('pg_buffercache',
- files(
- 'pg_buffercache_pages.c',
- ),
+ pg_buffercache_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_buffercache
diff --git a/contrib/pg_freespacemap/meson.build b/contrib/pg_freespacemap/meson.build
index f795014d7ca..904b37b6e9b 100644
--- a/contrib/pg_freespacemap/meson.build
+++ b/contrib/pg_freespacemap/meson.build
@@ -1,7 +1,15 @@
+pg_freespacemap_sources = files(
+ 'pg_freespacemap.c',
+)
+
+if host_system == 'windows'
+ pg_freespacemap_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_freespacemap',
+ '--FILEDESC', 'pg_freespacemap - monitoring of free space map',])
+endif
+
pg_freespacemap = shared_module('pg_freespacemap',
- files(
- 'pg_freespacemap.c',
- ),
+ pg_freespacemap_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_freespacemap
diff --git a/contrib/pg_prewarm/meson.build b/contrib/pg_prewarm/meson.build
index bdca9af4f27..b7140cee34b 100644
--- a/contrib/pg_prewarm/meson.build
+++ b/contrib/pg_prewarm/meson.build
@@ -1,8 +1,16 @@
+pg_prewarm_sources = files(
+ 'autoprewarm.c',
+ 'pg_prewarm.c',
+)
+
+if host_system == 'windows'
+ pg_prewarm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_prewarm',
+ '--FILEDESC', 'pg_prewarm - preload relation data into system buffer cache',])
+endif
+
pg_prewarm = shared_module('pg_prewarm',
- files(
- 'autoprewarm.c',
- 'pg_prewarm.c',
- ),
+ pg_prewarm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_prewarm
diff --git a/contrib/pg_stat_statements/meson.build b/contrib/pg_stat_statements/meson.build
index ac117d2fc1d..854df138e76 100644
--- a/contrib/pg_stat_statements/meson.build
+++ b/contrib/pg_stat_statements/meson.build
@@ -1,5 +1,15 @@
+pg_stat_statements_sources = files(
+ 'pg_stat_statements.c',
+)
+
+if host_system == 'windows'
+ pg_stat_statements_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_stat_statements',
+ '--FILEDESC', 'pg_stat_statements - execution statistics of SQL statements',])
+endif
+
pg_stat_statements = shared_module('pg_stat_statements',
- files('pg_stat_statements.c'),
+ pg_stat_statements_sources,
kwargs: contrib_mod_args + {
'dependencies': contrib_mod_args['dependencies'],
},
diff --git a/contrib/pg_surgery/meson.build b/contrib/pg_surgery/meson.build
index ac71caa5276..7b5c5999f4b 100644
--- a/contrib/pg_surgery/meson.build
+++ b/contrib/pg_surgery/meson.build
@@ -1,7 +1,15 @@
+pg_surgery_sources = files(
+ 'heap_surgery.c',
+)
+
+if host_system == 'windows'
+ pg_surgery_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_surgery',
+ '--FILEDESC', 'pg_surgery - perform surgery on a damaged relation',])
+endif
+
pg_surgery = shared_module('pg_surgery',
- files(
- 'heap_surgery.c',
- ),
+ pg_surgery_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_surgery
diff --git a/contrib/pg_trgm/meson.build b/contrib/pg_trgm/meson.build
index a90628d23c6..c8c7c07b308 100644
--- a/contrib/pg_trgm/meson.build
+++ b/contrib/pg_trgm/meson.build
@@ -1,10 +1,18 @@
+pg_trgm_sources = files(
+ 'trgm_gin.c',
+ 'trgm_gist.c',
+ 'trgm_op.c',
+ 'trgm_regexp.c',
+)
+
+if host_system == 'windows'
+ pg_trgm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_trgm',
+ '--FILEDESC', 'pg_trgm - trigram matching',])
+endif
+
pg_trgm = shared_module('pg_trgm',
- files(
- 'trgm_gin.c',
- 'trgm_gist.c',
- 'trgm_op.c',
- 'trgm_regexp.c',
- ),
+ pg_trgm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_trgm
diff --git a/contrib/pg_visibility/meson.build b/contrib/pg_visibility/meson.build
index 933dc99ac4d..263a0d08b82 100644
--- a/contrib/pg_visibility/meson.build
+++ b/contrib/pg_visibility/meson.build
@@ -1,7 +1,15 @@
+pg_visibility_sources = files(
+ 'pg_visibility.c',
+)
+
+if host_system == 'windows'
+ pg_visibility_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_visibility',
+ '--FILEDESC', 'pg_visibility - page visibility information',])
+endif
+
pg_visibility = shared_module('pg_visibility',
- files(
- 'pg_visibility.c',
- ),
+ pg_visibility_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_visibility
diff --git a/contrib/pg_walinspect/meson.build b/contrib/pg_walinspect/meson.build
index d6b27877dd0..4314a3182a2 100644
--- a/contrib/pg_walinspect/meson.build
+++ b/contrib/pg_walinspect/meson.build
@@ -1,5 +1,11 @@
pg_walinspect_sources = files('pg_walinspect.c')
+if host_system == 'windows'
+ pg_walinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_walinspect',
+ '--FILEDESC', 'pg_walinspect - functions to inspect contents of PostgreSQL Write-Ahead Log',])
+endif
+
pg_walinspect = shared_module('pg_walinspect',
pg_walinspect_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/pgcrypto/meson.build b/contrib/pgcrypto/meson.build
index fe0851bf8e8..7fc7bbc7ca1 100644
--- a/contrib/pgcrypto/meson.build
+++ b/contrib/pgcrypto/meson.build
@@ -69,6 +69,12 @@ else
pgcrypto_regress += 'pgp-zlib-DISABLED'
endif
+if host_system == 'windows'
+ pgcrypto_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgcrypto',
+ '--FILEDESC', 'pgcrypto - cryptographic functions',])
+endif
+
pgcrypto = shared_module('pgcrypto',
pgcrypto_sources,
link_with: pgcrypto_link_with,
diff --git a/contrib/pgrowlocks/meson.build b/contrib/pgrowlocks/meson.build
index 1b41691a2a3..8092f0d4a64 100644
--- a/contrib/pgrowlocks/meson.build
+++ b/contrib/pgrowlocks/meson.build
@@ -1,7 +1,15 @@
+pgrowlocks_sources = files(
+ 'pgrowlocks.c',
+)
+
+if host_system == 'windows'
+ pgrowlocks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgrowlocks',
+ '--FILEDESC', 'pgrowlocks - display row locking information',])
+endif
+
pgrowlocks = shared_module('pgrowlocks',
- files(
- 'pgrowlocks.c',
- ),
+ pgrowlocks_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgrowlocks
diff --git a/contrib/pgstattuple/meson.build b/contrib/pgstattuple/meson.build
index 8e828692d5c..05e4cd46a5c 100644
--- a/contrib/pgstattuple/meson.build
+++ b/contrib/pgstattuple/meson.build
@@ -1,9 +1,17 @@
+pgstattuple_sources = files(
+ 'pgstatapprox.c',
+ 'pgstatindex.c',
+ 'pgstattuple.c',
+)
+
+if host_system == 'windows'
+ pgstattuple_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgstattuple',
+ '--FILEDESC', 'pgstattuple - tuple-level statistics',])
+endif
+
pgstattuple = shared_module('pgstattuple',
- files(
- 'pgstatapprox.c',
- 'pgstatindex.c',
- 'pgstattuple.c',
- ),
+ pgstattuple_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgstattuple
diff --git a/contrib/postgres_fdw/meson.build b/contrib/postgres_fdw/meson.build
index 378885ec93b..d3746ff135c 100644
--- a/contrib/postgres_fdw/meson.build
+++ b/contrib/postgres_fdw/meson.build
@@ -6,6 +6,12 @@ postgres_fdw_sources = files(
'shippable.c',
)
+if host_system == 'windows'
+ postgres_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'postgres_fdw',
+ '--FILEDESC', 'postgres_fdw - foreign data wrapper for PostgreSQL',])
+endif
+
postgres_fdw = shared_module('postgres_fdw',
postgres_fdw_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/seg/meson.build b/contrib/seg/meson.build
index e476eab2a77..c6fbb22999b 100644
--- a/contrib/seg/meson.build
+++ b/contrib/seg/meson.build
@@ -17,6 +17,12 @@ seg_parse = custom_target('segparse',
generated_sources += seg_parse.to_list()
seg_sources += seg_parse
+if host_system == 'windows'
+ seg_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'seg',
+ '--FILEDESC', 'seg - line segment data type',])
+endif
+
seg = shared_module('seg',
seg_sources,
include_directories: include_directories('.'),
diff --git a/contrib/sepgsql/meson.build b/contrib/sepgsql/meson.build
index 60a95e17c2f..8bef239e3c2 100644
--- a/contrib/sepgsql/meson.build
+++ b/contrib/sepgsql/meson.build
@@ -14,6 +14,12 @@ sepgsql_sources = files(
'uavc.c',
)
+if host_system == 'windows'
+ sepgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sepgsql',
+ '--FILEDESC', 'sepgsql - SELinux integration',])
+endif
+
sepgsql = shared_module('sepgsql',
sepgsql_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build
index 98008980ec2..e7d78189ef5 100644
--- a/contrib/spi/meson.build
+++ b/contrib/spi/meson.build
@@ -1,5 +1,15 @@
+autoinc_sources = files(
+ 'autoinc.c',
+)
+
+if host_system == 'windows'
+ autoinc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'autoinc',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
autoinc = shared_module('autoinc',
- ['autoinc.c'],
+ autoinc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
@@ -9,8 +19,18 @@ install_data('autoinc.control', 'autoinc--1.0.sql',
)
+insert_username_sources = files(
+ 'insert_username.c',
+)
+
+if host_system == 'windows'
+ insert_username_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'insert_username',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
insert_username = shared_module('insert_username',
- ['insert_username.c'],
+ insert_username_sources,
kwargs: contrib_mod_args,
)
contrib_targets += insert_username
@@ -22,8 +42,18 @@ install_data(
)
+moddatetime_sources = files(
+ 'moddatetime.c',
+)
+
+if host_system == 'windows'
+ moddatetime_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'moddatetime',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
moddatetime = shared_module('moddatetime',
- ['moddatetime.c'],
+ moddatetime_sources,
kwargs: contrib_mod_args,
)
contrib_targets += moddatetime
@@ -38,8 +68,18 @@ install_data(
# comment out if you want a quieter refint package for other uses
refint_cflags = ['-DREFINT_VERBOSE']
+refint_sources = files(
+ 'refint.c',
+)
+
+if host_system == 'windows'
+ refint_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'refint',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
refint = shared_module('refint',
- ['refint.c'],
+ refint_sources,
c_args: refint_cflags,
kwargs: contrib_mod_args,
)
diff --git a/contrib/sslinfo/meson.build b/contrib/sslinfo/meson.build
index 53f752a08ac..136983e783d 100644
--- a/contrib/sslinfo/meson.build
+++ b/contrib/sslinfo/meson.build
@@ -2,10 +2,18 @@ if not ssl.found()
subdir_done()
endif
+sslinfo_sources = files(
+ 'sslinfo.c',
+)
+
+if host_system == 'windows'
+ sslinfo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sslinfo',
+ '--FILEDESC', 'sslinfo - information about client SSL certificate',])
+endif
+
sslinfo = shared_module('sslinfo',
- files(
- 'sslinfo.c',
- ),
+ sslinfo_sources,
kwargs: contrib_mod_args + {
'dependencies': [ssl, contrib_mod_args['dependencies']],
}
diff --git a/contrib/tablefunc/meson.build b/contrib/tablefunc/meson.build
index f4230096c0c..d2ddc8d3b39 100644
--- a/contrib/tablefunc/meson.build
+++ b/contrib/tablefunc/meson.build
@@ -1,7 +1,15 @@
+tablefunc_sources = files(
+ 'tablefunc.c',
+)
+
+if host_system == 'windows'
+ tablefunc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tablefunc',
+ '--FILEDESC', 'tablefunc - various functions that return tables',])
+endif
+
tablefunc = shared_module('tablefunc',
- files(
- 'tablefunc.c',
- ),
+ tablefunc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tablefunc
diff --git a/contrib/tcn/meson.build b/contrib/tcn/meson.build
index c3a025247d4..71261c3b0a2 100644
--- a/contrib/tcn/meson.build
+++ b/contrib/tcn/meson.build
@@ -1,7 +1,15 @@
+tcn_sources = files(
+ 'tcn.c',
+)
+
+if host_system == 'windows'
+ tcn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tcn',
+ '--FILEDESC', 'tcn - trigger function notifying listeners',])
+endif
+
tcn = shared_module('tcn',
- files(
- 'tcn.c',
- ),
+ tcn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tcn
diff --git a/contrib/test_decoding/meson.build b/contrib/test_decoding/meson.build
index dd7cb0101ad..6376103c689 100644
--- a/contrib/test_decoding/meson.build
+++ b/contrib/test_decoding/meson.build
@@ -2,6 +2,12 @@ test_decoding_sources = files(
'test_decoding.c',
)
+if host_system == 'windows'
+ test_decoding_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_decoding',
+ '--FILEDESC', 'test_decoding - example of a logical decoding output plugin',])
+endif
+
test_decoding = shared_module('test_decoding',
test_decoding_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/tsm_system_rows/meson.build b/contrib/tsm_system_rows/meson.build
index b9cd42115a8..380abb49883 100644
--- a/contrib/tsm_system_rows/meson.build
+++ b/contrib/tsm_system_rows/meson.build
@@ -1,7 +1,15 @@
+tsm_system_rows_sources = files(
+ 'tsm_system_rows.c',
+)
+
+if host_system == 'windows'
+ tsm_system_rows_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_rows',
+ '--FILEDESC', 'tsm_system_rows - TABLESAMPLE method which accepts number of rows as a limit',])
+endif
+
tsm_system_rows = shared_module('tsm_system_rows',
- files(
- 'tsm_system_rows.c',
- ),
+ tsm_system_rows_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_rows
diff --git a/contrib/tsm_system_time/meson.build b/contrib/tsm_system_time/meson.build
index 18015912ffb..e57a2702c60 100644
--- a/contrib/tsm_system_time/meson.build
+++ b/contrib/tsm_system_time/meson.build
@@ -1,7 +1,15 @@
+tsm_system_time_sources = files(
+ 'tsm_system_time.c',
+)
+
+if host_system == 'windows'
+ tsm_system_time_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_time',
+ '--FILEDESC', 'tsm_system_time - TABLESAMPLE method which accepts time in milliseconds as a limit',])
+endif
+
tsm_system_time = shared_module('tsm_system_time',
- files(
- 'tsm_system_time.c',
- ),
+ tsm_system_time_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_time
diff --git a/contrib/unaccent/meson.build b/contrib/unaccent/meson.build
index 872b76e3223..438035132f8 100644
--- a/contrib/unaccent/meson.build
+++ b/contrib/unaccent/meson.build
@@ -1,7 +1,15 @@
+unaccent_sources = files(
+ 'unaccent.c',
+)
+
+if host_system == 'windows'
+ unaccent_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'unaccent',
+ '--FILEDESC', 'unaccent - text search dictionary that removes accents',])
+endif
+
unaccent = shared_module('unaccent',
- files(
- 'unaccent.c',
- ),
+ unaccent_sources,
kwargs: contrib_mod_args,
)
contrib_targets += unaccent
diff --git a/contrib/uuid-ossp/meson.build b/contrib/uuid-ossp/meson.build
index da6d1d75c12..28730f398f0 100644
--- a/contrib/uuid-ossp/meson.build
+++ b/contrib/uuid-ossp/meson.build
@@ -2,10 +2,18 @@ if not uuid.found()
subdir_done()
endif
+uuid_ossp_sources = files(
+ 'uuid-ossp.c',
+)
+
+if host_system == 'windows'
+ uuid_ossp_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'uuid-ossp',
+ '--FILEDESC', 'uuid-ossp - UUID generation',])
+endif
+
uuid_ossp = shared_module('uuid-ossp',
- files(
- 'uuid-ossp.c',
- ),
+ uuid_ossp_sources,
kwargs: contrib_mod_args + {
'dependencies': [uuid, contrib_mod_args['dependencies']],
},
diff --git a/contrib/vacuumlo/meson.build b/contrib/vacuumlo/meson.build
index 7a632b87d1b..846de47dbd1 100644
--- a/contrib/vacuumlo/meson.build
+++ b/contrib/vacuumlo/meson.build
@@ -1,5 +1,15 @@
+vacuumlo_sources = files(
+ 'vacuumlo.c',
+)
+
+if host_system == 'windows'
+ vacuumlo_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'vacuumlo',
+ '--FILEDESC', 'vacuumlo - removes orphaned large objects',])
+endif
+
vacuumlo = executable('vacuumlo',
- ['vacuumlo.c'],
+ vacuumlo_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/xml2/meson.build b/contrib/xml2/meson.build
index 9c0b56f01f6..89b0d677516 100644
--- a/contrib/xml2/meson.build
+++ b/contrib/xml2/meson.build
@@ -2,11 +2,19 @@ if not libxml.found()
subdir_done()
endif
+xml2_sources = files(
+ 'xpath.c',
+ 'xslt_proc.c',
+)
+
+if host_system == 'windows'
+ xml2_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgxml',
+ '--FILEDESC', 'xml2 - XPath querying and XSLT',])
+endif
+
xml2 = shared_module('pgxml',
- files(
- 'xpath.c',
- 'xslt_proc.c',
- ),
+ xml2_sources,
kwargs: contrib_mod_args + {
'dependencies': [libxml, libxslt, contrib_mod_args['dependencies']],
},
diff --git a/src/interfaces/ecpg/compatlib/meson.build b/src/interfaces/ecpg/compatlib/meson.build
index 5887cb92b52..e5dc0edc04b 100644
--- a/src/interfaces/ecpg/compatlib/meson.build
+++ b/src/interfaces/ecpg/compatlib/meson.build
@@ -1,7 +1,11 @@
export_file = custom_target('libpq.exports', kwargs: gen_export_kwargs)
-ecpg_compat = both_libraries('libecpg_compat',
+ecpg_compat_sources = files(
'informix.c',
+)
+
+ecpg_compat = both_libraries('libecpg_compat',
+ ecpg_compat_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
c_args: ['-DSO_MAJOR_VERSION=3'],
dependencies: [frontend_code, thread_dep],
diff --git a/src/interfaces/ecpg/preproc/meson.build b/src/interfaces/ecpg/preproc/meson.build
index 1be49c8c27f..74876f039c9 100644
--- a/src/interfaces/ecpg/preproc/meson.build
+++ b/src/interfaces/ecpg/preproc/meson.build
@@ -93,6 +93,12 @@ ecpg_kwlist = custom_target('ecpg_kwlist_d.h',
generated_sources += ecpg_kwlist
ecpg_sources += ecpg_kwlist
+if host_system == 'windows'
+ ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ecpg',
+ '--FILEDESC', 'ecpg - embedded SQL precompiler for C',])
+endif
+
ecpg_exe = executable('ecpg',
ecpg_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
diff --git a/src/interfaces/ecpg/test/meson.build b/src/interfaces/ecpg/test/meson.build
index f0ace641f0c..f67f2dffb71 100644
--- a/src/interfaces/ecpg/test/meson.build
+++ b/src/interfaces/ecpg/test/meson.build
@@ -7,6 +7,12 @@ pg_regress_ecpg_sources = pg_regress_c + files(
'pg_regress_ecpg.c',
)
+if host_system == 'windows'
+ pg_regress_ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress_ecpg',
+ '--FILEDESC', 'ECPG Test - regression tests for ECPG',])
+endif
+
pg_regress_ecpg = executable('pg_regress_ecpg',
pg_regress_ecpg_sources,
c_args: pg_regress_cflags,
diff --git a/src/test/isolation/meson.build b/src/test/isolation/meson.build
index c7656fd4609..ba27b8c1d44 100644
--- a/src/test/isolation/meson.build
+++ b/src/test/isolation/meson.build
@@ -23,6 +23,12 @@ spec_parser = custom_target('specparse',
isolationtester_sources += spec_parser
generated_sources += spec_parser.to_list()
+if host_system == 'windows'
+ isolation_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_isolation_regress',
+ '--FILEDESC', 'pg_isolation_regress - multi-client test driver',])
+endif
+
pg_isolation_regress = executable('pg_isolation_regress',
isolation_sources,
c_args: pg_regress_cflags,
@@ -34,6 +40,13 @@ pg_isolation_regress = executable('pg_isolation_regress',
)
bin_targets += pg_isolation_regress
+
+if host_system == 'windows'
+ isolationtester_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isolationtester',
+ '--FILEDESC', 'isolationtester - multi-client test driver',])
+endif
+
isolationtester = executable('isolationtester',
isolationtester_sources,
include_directories: include_directories('.'),
diff --git a/src/test/modules/delay_execution/meson.build b/src/test/modules/delay_execution/meson.build
index cf4bdaba637..a0c3ab6afe7 100644
--- a/src/test/modules/delay_execution/meson.build
+++ b/src/test/modules/delay_execution/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+delay_execution_sources = files(
+ 'delay_execution.c',
+)
+
+if host_system == 'windows'
+ delay_execution_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'delay_execution',
+ '--FILEDESC', 'delay_execution - allow delay between parsing and execution',])
+endif
+
delay_execution = shared_module('delay_execution',
- ['delay_execution.c'],
+ delay_execution_sources,
kwargs: pg_mod_args,
)
testprep_targets += delay_execution
diff --git a/src/test/modules/dummy_index_am/meson.build b/src/test/modules/dummy_index_am/meson.build
index 56ff5f48001..4ce82491135 100644
--- a/src/test/modules/dummy_index_am/meson.build
+++ b/src/test/modules/dummy_index_am/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_index_am_sources = files(
+ 'dummy_index_am.c',
+)
+
+if host_system == 'windows'
+ dummy_index_am_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_index_am',
+ '--FILEDESC', 'dummy_index_am - index access method template',])
+endif
+
dummy_index_am = shared_module('dummy_index_am',
- ['dummy_index_am.c'],
+ dummy_index_am_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_index_am
diff --git a/src/test/modules/dummy_seclabel/meson.build b/src/test/modules/dummy_seclabel/meson.build
index 21b7cf8f353..81b626e496c 100644
--- a/src/test/modules/dummy_seclabel/meson.build
+++ b/src/test/modules/dummy_seclabel/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_seclabel_sources = files(
+ 'dummy_seclabel.c',
+)
+
+if host_system == 'windows'
+ dummy_seclabel_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_seclabel',
+ '--FILEDESC', 'dummy_seclabel - regression testing of the SECURITY LABEL statement',])
+endif
+
dummy_seclabel = shared_module('dummy_seclabel',
- ['dummy_seclabel.c'],
+ dummy_seclabel_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_seclabel
diff --git a/src/test/modules/libpq_pipeline/meson.build b/src/test/modules/libpq_pipeline/meson.build
index 8384b6e3b2a..de0e2d15626 100644
--- a/src/test/modules/libpq_pipeline/meson.build
+++ b/src/test/modules/libpq_pipeline/meson.build
@@ -1,7 +1,15 @@
+libpq_pipeline_sources = files(
+ 'libpq_pipeline.c',
+)
+
+if host_system == 'windows'
+ libpq_pipeline_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_pipeline',
+ '--FILEDESC', 'libpq_pipeline - test program for pipeline execution',])
+endif
+
libpq_pipeline = executable('libpq_pipeline',
- files(
- 'libpq_pipeline.c',
- ),
+ libpq_pipeline_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/test/modules/plsample/meson.build b/src/test/modules/plsample/meson.build
index 45de3f1990d..e1ea2c7a16f 100644
--- a/src/test/modules/plsample/meson.build
+++ b/src/test/modules/plsample/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+plsample_sources = files(
+ 'plsample.c',
+)
+
+if host_system == 'windows'
+ plsample_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plsample',
+ '--FILEDESC', 'PL/Sample - template for procedural language',])
+endif
+
plsample = shared_module('plsample',
- ['plsample.c'],
+ plsample_sources,
kwargs: pg_mod_args,
)
testprep_targets += plsample
diff --git a/src/test/modules/spgist_name_ops/meson.build b/src/test/modules/spgist_name_ops/meson.build
index 857fc7e140e..445296fee0b 100644
--- a/src/test/modules/spgist_name_ops/meson.build
+++ b/src/test/modules/spgist_name_ops/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+spgist_name_ops_sources = files(
+ 'spgist_name_ops.c',
+)
+
+if host_system == 'windows'
+ spgist_name_ops_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'spgist_name_ops',
+ '--FILEDESC', 'spgist_name_ops - test opclass for SP-GiST',])
+endif
+
spgist_name_ops = shared_module('spgist_name_ops',
- ['spgist_name_ops.c'],
+ spgist_name_ops_sources,
kwargs: pg_mod_args,
)
testprep_targets += spgist_name_ops
diff --git a/src/test/modules/ssl_passphrase_callback/meson.build b/src/test/modules/ssl_passphrase_callback/meson.build
index a57bd0693a3..a9eb4c564da 100644
--- a/src/test/modules/ssl_passphrase_callback/meson.build
+++ b/src/test/modules/ssl_passphrase_callback/meson.build
@@ -3,8 +3,19 @@ if not ssl.found()
endif
# FIXME: prevent install during main install, but not during test :/
+
+ssl_passphrase_callback_sources = files(
+ 'ssl_passphrase_func.c',
+)
+
+if host_system == 'windows'
+ ssl_passphrase_callback_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ssl_passphrase_func',
+ '--FILEDESC', 'callback function to provide a passphrase',])
+endif
+
ssl_passphrase_callback = shared_module('ssl_passphrase_func',
- ['ssl_passphrase_func.c'],
+ ssl_passphrase_callback_sources,
kwargs: pg_mod_args + {
'dependencies': [ssl, pg_mod_args['dependencies']],
},
diff --git a/src/test/modules/test_bloomfilter/meson.build b/src/test/modules/test_bloomfilter/meson.build
index 945eb5a70c4..3cf6b05754f 100644
--- a/src/test/modules/test_bloomfilter/meson.build
+++ b/src/test/modules/test_bloomfilter/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_bloomfilter_sources = files(
+ 'test_bloomfilter.c',
+)
+
+if host_system == 'windows'
+ test_bloomfilter_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_bloomfilter',
+ '--FILEDESC', 'test_bloomfilter - test code for Bloom filter library',])
+endif
+
test_bloomfilter = shared_module('test_bloomfilter',
- ['test_bloomfilter.c'],
+ test_bloomfilter_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_bloomfilter
diff --git a/src/test/modules/test_ddl_deparse/meson.build b/src/test/modules/test_ddl_deparse/meson.build
index 81ad5adc526..54d44f9b2b4 100644
--- a/src/test/modules/test_ddl_deparse/meson.build
+++ b/src/test/modules/test_ddl_deparse/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ddl_deparse_sources = files(
+ 'test_ddl_deparse.c',
+)
+
+if host_system == 'windows'
+ test_ddl_deparse_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ddl_deparse',
+ '--FILEDESC', 'test_ddl_deparse - regression testing for DDL deparsing',])
+endif
+
test_ddl_deparse = shared_module('test_ddl_deparse',
- ['test_ddl_deparse.c'],
+ test_ddl_deparse_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ddl_deparse
diff --git a/src/test/modules/test_ginpostinglist/meson.build b/src/test/modules/test_ginpostinglist/meson.build
index abf0a3b0430..b3b49c56122 100644
--- a/src/test/modules/test_ginpostinglist/meson.build
+++ b/src/test/modules/test_ginpostinglist/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ginpostinglist_sources = files(
+ 'test_ginpostinglist.c',
+)
+
+if host_system == 'windows'
+ test_ginpostinglist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ginpostinglist',
+ '--FILEDESC', 'test_ginpostinglist - test code for src/backend/access/gin//ginpostinglist.c',])
+endif
+
test_ginpostinglist = shared_module('test_ginpostinglist',
- ['test_ginpostinglist.c'],
+ test_ginpostinglist_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ginpostinglist
diff --git a/src/test/modules/test_integerset/meson.build b/src/test/modules/test_integerset/meson.build
index c32c469c69a..4bd75af4b5e 100644
--- a/src/test/modules/test_integerset/meson.build
+++ b/src/test/modules/test_integerset/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_integerset_sources = files(
+ 'test_integerset.c',
+)
+
+if host_system == 'windows'
+ test_integerset_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_integerset',
+ '--FILEDESC', 'test_integerset - test code for src/backend/lib/integerset.c',])
+endif
+
test_integerset = shared_module('test_integerset',
- ['test_integerset.c'],
+ test_integerset_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_integerset
diff --git a/src/test/modules/test_lfind/meson.build b/src/test/modules/test_lfind/meson.build
index a388de1156a..c5405b8f878 100644
--- a/src/test/modules/test_lfind/meson.build
+++ b/src/test/modules/test_lfind/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_lfind_sources = files(
+ 'test_lfind.c',
+)
+
+if host_system == 'windows'
+ test_lfind_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_lfind',
+ '--FILEDESC', 'test_lfind - test code for optimized linear search functions',])
+endif
+
test_lfind = shared_module('test_lfind',
- ['test_lfind.c'],
+ test_lfind_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_lfind
diff --git a/src/test/modules/test_oat_hooks/meson.build b/src/test/modules/test_oat_hooks/meson.build
index 5faf0459777..8802bbbac55 100644
--- a/src/test/modules/test_oat_hooks/meson.build
+++ b/src/test/modules/test_oat_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_oat_hooks_sources = files(
+ 'test_oat_hooks.c',
+)
+
+if host_system == 'windows'
+ test_oat_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_oat_hooks',
+ '--FILEDESC', 'test_oat_hooks - example use of object access hooks',])
+endif
+
test_oat_hooks = shared_module('test_oat_hooks',
- ['test_oat_hooks.c'],
+ test_oat_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_oat_hooks
diff --git a/src/test/modules/test_parser/meson.build b/src/test/modules/test_parser/meson.build
index b59960f615e..1c17113347f 100644
--- a/src/test/modules/test_parser/meson.build
+++ b/src/test/modules/test_parser/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_parser_sources = files(
+ 'test_parser.c',
+)
+
+if host_system == 'windows'
+ test_parser_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_parser',
+ '--FILEDESC', 'test_parser - example of a custom parser for full-text search',])
+endif
+
test_parser = shared_module('test_parser',
- ['test_parser.c'],
+ test_parser_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_parser
diff --git a/src/test/modules/test_predtest/meson.build b/src/test/modules/test_predtest/meson.build
index 1cfa84b3609..9a5be43c9c0 100644
--- a/src/test/modules/test_predtest/meson.build
+++ b/src/test/modules/test_predtest/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_predtest_sources = files(
+ 'test_predtest.c',
+)
+
+if host_system == 'windows'
+ test_predtest_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_predtest',
+ '--FILEDESC', 'test_predtest - test code for optimizer/util/predtest.c',])
+endif
+
test_predtest = shared_module('test_predtest',
- ['test_predtest.c'],
+ test_predtest_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_predtest
diff --git a/src/test/modules/test_rbtree/meson.build b/src/test/modules/test_rbtree/meson.build
index 34cbc3e1624..f067e08d321 100644
--- a/src/test/modules/test_rbtree/meson.build
+++ b/src/test/modules/test_rbtree/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rbtree_sources = files(
+ 'test_rbtree.c',
+)
+
+if host_system == 'windows'
+ test_rbtree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rbtree',
+ '--FILEDESC', 'test_rbtree - test code for red-black tree library',])
+endif
+
test_rbtree = shared_module('test_rbtree',
- ['test_rbtree.c'],
+ test_rbtree_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rbtree
diff --git a/src/test/modules/test_regex/meson.build b/src/test/modules/test_regex/meson.build
index 867a64e57c3..cfb938d9f1e 100644
--- a/src/test/modules/test_regex/meson.build
+++ b/src/test/modules/test_regex/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_regex_sources = files(
+ 'test_regex.c',
+)
+
+if host_system == 'windows'
+ test_regex_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_regex',
+ '--FILEDESC', 'test_regex - test code for backend/regex/',])
+endif
+
test_regex = shared_module('test_regex',
- ['test_regex.c'],
+ test_regex_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_regex
diff --git a/src/test/modules/test_rls_hooks/meson.build b/src/test/modules/test_rls_hooks/meson.build
index 80d8adda332..3fb273b2934 100644
--- a/src/test/modules/test_rls_hooks/meson.build
+++ b/src/test/modules/test_rls_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rls_hooks_sources = files(
+ 'test_rls_hooks.c',
+)
+
+if host_system == 'windows'
+ test_rls_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rls_hooks',
+ '--FILEDESC', 'test_rls_hooks - example use of RLS hooks',])
+endif
+
test_rls_hooks = shared_module('test_rls_hooks',
- ['test_rls_hooks.c'],
+ test_rls_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rls_hooks
diff --git a/src/test/modules/test_shm_mq/meson.build b/src/test/modules/test_shm_mq/meson.build
index b663543d616..16c8fdb57f4 100644
--- a/src/test/modules/test_shm_mq/meson.build
+++ b/src/test/modules/test_shm_mq/meson.build
@@ -1,10 +1,19 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_shm_mq_sources = files(
+ 'setup.c',
+ 'test.c',
+ 'worker.c',
+)
+
+if host_system == 'windows'
+ test_shm_mq_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_shm_mq',
+ '--FILEDESC', 'test_shm_mq - example use of shared memory message queue',])
+endif
+
test_shm_mq = shared_module('test_shm_mq',
- files(
- 'setup.c',
- 'test.c',
- 'worker.c',
- ),
+ test_shm_mq_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_shm_mq
diff --git a/src/test/modules/worker_spi/meson.build b/src/test/modules/worker_spi/meson.build
index 32acad883b2..a4a158c75b9 100644
--- a/src/test/modules/worker_spi/meson.build
+++ b/src/test/modules/worker_spi/meson.build
@@ -1,8 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_worker_spi_sources = files(
+ 'worker_spi.c',
+)
+
+if host_system == 'windows'
+ test_worker_spi_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'worker_spi',
+ '--FILEDESC', 'worker_spi - background worker example',])
+endif
+
test_worker_spi = shared_module('worker_spi',
- files(
- 'worker_spi.c',
- ),
+ test_worker_spi_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_worker_spi
diff --git a/src/test/regress/meson.build b/src/test/regress/meson.build
index fd8ee995b79..963c0f64ed5 100644
--- a/src/test/regress/meson.build
+++ b/src/test/regress/meson.build
@@ -8,6 +8,12 @@ regress_sources = pg_regress_c + files(
pg_regress_cflags = ['-DHOST_TUPLE="frak"', '-DSHELLPROG="/bin/sh"']
+if host_system == 'windows'
+ regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress',
+ '--FILEDESC', 'pg_regress - test driver',])
+endif
+
pg_regress = executable('pg_regress',
regress_sources,
c_args: pg_regress_cflags,
diff --git a/meson.build b/meson.build
index 6ffae59ba03..4ad06b25213 100644
--- a/meson.build
+++ b/meson.build
@@ -2523,6 +2523,67 @@ gen_export_kwargs = {
+###
+### windows resources related stuff
+###
+
+if host_system == 'windows'
+ pg_ico = meson.source_root() / 'src' / 'port' / 'win32.ico'
+ win32ver_rc = files('src/port/win32ver.rc')
+ rcgen = find_program('src/tools/rcgen', native: true)
+
+ rcgen_base_args = [
+ '--srcdir', '@SOURCE_DIR@',
+ '--builddir', meson.build_root(),
+ '--rcout', '@OUTPUT0@',
+ '--out', '@OUTPUT1@',
+ '--input', '@INPUT@',
+ '@EXTRA_ARGS@',
+ ]
+
+ if cc.get_argument_syntax() == 'msvc'
+ rcgen_base_args += [
+ '--rc', find_program('rc', required: true).path(),
+ ]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ else
+ rcgen_base_args += [
+ '--windres', find_program('windres', required: true).path(),
+ ]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ endif
+
+ # msbuild backend doesn't support this atm
+ if meson.backend() == 'ninja'
+ rcgen_base_args += ['--depfile', '@DEPFILE@']
+ endif
+
+ rcgen_bin_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_APP',
+ '--FILEENDING', 'exe',
+ '--ICO', pg_ico
+ ]
+
+ rcgen_lib_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_DLL',
+ '--FILEENDING', 'dll',
+ ]
+
+ rc_bin_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_bin_args,
+ output: rcgen_outputs,
+ )
+
+ rc_lib_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_lib_args,
+ output: rcgen_outputs,
+ )
+endif
+
+
+
# headers that the whole build tree depends on
generated_headers = []
# headers that the backend build depends on
diff --git a/src/timezone/meson.build b/src/timezone/meson.build
index 16f082ecfa8..9e0934c000b 100644
--- a/src/timezone/meson.build
+++ b/src/timezone/meson.build
@@ -28,6 +28,12 @@ if get_option('system_tzdata') == ''
if meson.is_cross_build()
zic = find_program(get_option('ZIC'), native: true, required: true)
else
+ if host_system == 'windows'
+ zic_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'zic',
+ '--FILEDESC', 'zic - time zone compiler',])
+ endif
+
zic = executable('zic', zic_sources,
dependencies: [frontend_code],
kwargs: default_bin_args + {'install': false}
diff --git a/src/tools/rcgen b/src/tools/rcgen
new file mode 100755
index 00000000000..5b62bfe5410
--- /dev/null
+++ b/src/tools/rcgen
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+
+import argparse
+import os
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description='generate PostgreSQL rc file')
+
+parser.add_argument('--srcdir', type=os.path.abspath,
+ required=True)
+parser.add_argument('--builddir', type=os.path.abspath,
+ required=True)
+
+binaries = parser.add_argument_group('binaries')
+binaries.add_argument('--windres', type=os.path.abspath)
+binaries.add_argument('--rc', type=os.path.abspath)
+
+inout = parser.add_argument_group('inout')
+inout.add_argument('--depfile', type=argparse.FileType('w'))
+inout.add_argument('--input', type=argparse.FileType('r'),
+ required=True)
+inout.add_argument('--rcout', type=argparse.FileType('w'),
+ required=True)
+inout.add_argument('--out', type=str,
+ required=True)
+
+replacements = parser.add_argument_group('replacements')
+replacements.add_argument('--FILEDESC', type=str)
+replacements.add_argument('--NAME', type=str, required=True)
+replacements.add_argument('--VFT_TYPE', type=str, required=True)
+replacements.add_argument('--FILEENDING', type=str, required=True)
+replacements.add_argument('--ICO', type=str)
+
+args = parser.parse_args()
+
+# determine replacement strings
+
+internal_name = '"{0}"'.format(args.NAME)
+original_name = '"{0}.{1}"'.format(args.NAME, args.FILEENDING)
+
+# if no description is passed in, generate one based on the name
+if args.FILEDESC:
+ filedesc = args.FILEDESC
+elif args.NAME:
+ if args.VFT_TYPE == 'VFT_DLL':
+ filedesc = 'PostgreSQL {0} library'.format(args.NAME)
+ else:
+ filedesc = 'PostgreSQL {0} binary'.format(args.NAME)
+filedesc = '"{0}"'.format(filedesc)
+
+
+if args.ICO:
+ ico = 'IDI_ICON ICON "{0}"'.format(args.ICO)
+ if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(args.rcout.name, args.ICO))
+else:
+ ico = ''
+
+
+data = args.input.read()
+
+data = data.replace('VFT_APP', args.VFT_TYPE)
+data = data.replace('_INTERNAL_NAME_', internal_name)
+data = data.replace('_ORIGINAL_NAME_', original_name)
+data = data.replace('FILEDESC', filedesc)
+data = data.replace("_ICO_", ico)
+
+args.rcout.write(data)
+args.rcout.close()
+
+if args.windres:
+ cmd = [
+ args.windres,
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '-o', args.out, '-i', args.rcout.name,
+ ]
+elif args.rc:
+ cmd = [
+ args.rc, '/nologo',
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '/fo', args.out, args.rcout.name,
+ ]
+else:
+ sys.exit('either --windres or --rc needs to be specified')
+
+sp = subprocess.run(cmd)
+if sp.returncode != 0:
+ sys.exit(sp.returncode)
+
+# It'd be nicer if we could generate correct dependencies here, but 'rc'
+# doesn't support doing so. It's unlikely we'll ever need more, so...
+if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(
+ args.rcout.name, args.input.name))
+ args.depfile.write("{0} : {1}/{2}\n".format(
+ args.out, args.builddir, 'src/include/pg_config.h'))
--
2.37.3.542.gdd3f6c4cae
--ngschxobz5ssor62
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
filename="v16-0005-meson-Add-support-for-relative-rpaths-fixing-tes.patch"
^ permalink raw reply [nested|flat] 18+ messages in thread
* [PATCH v15 05/14] meson: Add windows resource files
@ 2022-09-21 18:03 Andres Freund <[email protected]>
0 siblings, 0 replies; 18+ messages in thread
From: Andres Freund @ 2022-09-21 18:03 UTC (permalink / raw)
Author: Andres Freund <[email protected]>
Author: Nazir Bilal Yavuz <[email protected]>
---
src/backend/jit/llvm/meson.build | 6 +
.../replication/libpqwalreceiver/meson.build | 6 +
src/backend/replication/pgoutput/meson.build | 6 +
src/backend/snowball/meson.build | 6 +
.../utils/mb/conversion_procs/meson.build | 144 ++++++++++++++----
src/bin/initdb/meson.build | 6 +
src/bin/pg_amcheck/meson.build | 8 +-
src/bin/pg_archivecleanup/meson.build | 12 +-
src/bin/pg_basebackup/meson.build | 38 ++++-
src/bin/pg_checksums/meson.build | 12 +-
src/bin/pg_config/meson.build | 12 +-
src/bin/pg_controldata/meson.build | 12 +-
src/bin/pg_ctl/meson.build | 12 +-
src/bin/pg_dump/meson.build | 18 +++
src/bin/pg_resetwal/meson.build | 12 +-
src/bin/pg_rewind/meson.build | 6 +
src/bin/pg_test_fsync/meson.build | 10 +-
src/bin/pg_test_timing/meson.build | 12 +-
src/bin/pg_upgrade/meson.build | 6 +
src/bin/pg_verifybackup/meson.build | 6 +
src/bin/pg_waldump/meson.build | 6 +
src/bin/pgbench/meson.build | 6 +
src/bin/pgevent/meson.build | 6 +
src/bin/psql/meson.build | 6 +
src/bin/scripts/meson.build | 10 +-
src/interfaces/libpq/meson.build | 5 +
src/interfaces/libpq/test/meson.build | 25 ++-
src/pl/plperl/meson.build | 7 +
src/pl/plpgsql/src/meson.build | 6 +
src/pl/plpython/meson.build | 6 +
src/pl/tcl/meson.build | 6 +
contrib/adminpack/meson.build | 12 +-
contrib/amcheck/meson.build | 17 ++-
contrib/auth_delay/meson.build | 12 +-
contrib/auto_explain/meson.build | 12 +-
contrib/basebackup_to_shell/meson.build | 6 +
contrib/basic_archive/meson.build | 6 +
contrib/bloom/meson.build | 6 +
contrib/bool_plperl/meson.build | 6 +
contrib/btree_gin/meson.build | 12 +-
contrib/btree_gist/meson.build | 6 +
contrib/citext/meson.build | 6 +
contrib/cube/meson.build | 6 +
contrib/dblink/meson.build | 6 +
contrib/dict_int/meson.build | 12 +-
contrib/dict_xsyn/meson.build | 12 +-
contrib/earthdistance/meson.build | 12 +-
contrib/file_fdw/meson.build | 12 +-
contrib/fuzzystrmatch/meson.build | 16 +-
contrib/hstore/meson.build | 24 ++-
contrib/hstore_plperl/meson.build | 6 +
contrib/hstore_plpython/meson.build | 6 +
contrib/intarray/meson.build | 6 +
contrib/isn/meson.build | 6 +
contrib/jsonb_plperl/meson.build | 6 +
contrib/jsonb_plpython/meson.build | 6 +
contrib/lo/meson.build | 6 +
contrib/ltree/meson.build | 6 +
contrib/ltree_plpython/meson.build | 6 +
contrib/oid2name/meson.build | 12 +-
contrib/old_snapshot/meson.build | 6 +
contrib/pageinspect/meson.build | 6 +
contrib/passwordcheck/meson.build | 6 +
contrib/pg_buffercache/meson.build | 14 +-
contrib/pg_freespacemap/meson.build | 14 +-
contrib/pg_prewarm/meson.build | 16 +-
contrib/pg_stat_statements/meson.build | 12 +-
contrib/pg_surgery/meson.build | 14 +-
contrib/pg_trgm/meson.build | 20 ++-
contrib/pg_visibility/meson.build | 14 +-
contrib/pg_walinspect/meson.build | 6 +
contrib/pgcrypto/meson.build | 6 +
contrib/pgrowlocks/meson.build | 14 +-
contrib/pgstattuple/meson.build | 18 ++-
contrib/postgres_fdw/meson.build | 6 +
contrib/seg/meson.build | 6 +
contrib/sepgsql/meson.build | 6 +
contrib/spi/meson.build | 48 +++++-
contrib/sslinfo/meson.build | 14 +-
contrib/tablefunc/meson.build | 14 +-
contrib/tcn/meson.build | 14 +-
contrib/test_decoding/meson.build | 6 +
contrib/tsm_system_rows/meson.build | 14 +-
contrib/tsm_system_time/meson.build | 14 +-
contrib/unaccent/meson.build | 14 +-
contrib/uuid-ossp/meson.build | 14 +-
contrib/vacuumlo/meson.build | 12 +-
contrib/xml2/meson.build | 16 +-
src/interfaces/ecpg/compatlib/meson.build | 6 +-
src/interfaces/ecpg/preproc/meson.build | 6 +
src/interfaces/ecpg/test/meson.build | 6 +
src/test/isolation/meson.build | 13 ++
src/test/modules/delay_execution/meson.build | 13 +-
src/test/modules/dummy_index_am/meson.build | 13 +-
src/test/modules/dummy_seclabel/meson.build | 13 +-
src/test/modules/libpq_pipeline/meson.build | 14 +-
src/test/modules/plsample/meson.build | 13 +-
src/test/modules/spgist_name_ops/meson.build | 13 +-
.../ssl_passphrase_callback/meson.build | 13 +-
src/test/modules/test_bloomfilter/meson.build | 13 +-
src/test/modules/test_ddl_deparse/meson.build | 13 +-
.../modules/test_ginpostinglist/meson.build | 13 +-
src/test/modules/test_integerset/meson.build | 13 +-
src/test/modules/test_lfind/meson.build | 13 +-
src/test/modules/test_oat_hooks/meson.build | 13 +-
src/test/modules/test_parser/meson.build | 13 +-
src/test/modules/test_predtest/meson.build | 13 +-
src/test/modules/test_rbtree/meson.build | 13 +-
src/test/modules/test_regex/meson.build | 13 +-
src/test/modules/test_rls_hooks/meson.build | 13 +-
src/test/modules/test_shm_mq/meson.build | 19 ++-
src/test/modules/worker_spi/meson.build | 15 +-
src/test/regress/meson.build | 6 +
meson.build | 61 ++++++++
src/timezone/meson.build | 6 +
src/tools/rcgen | 99 ++++++++++++
116 files changed, 1383 insertions(+), 159 deletions(-)
create mode 100755 src/tools/rcgen
diff --git a/src/backend/jit/llvm/meson.build b/src/backend/jit/llvm/meson.build
index de2e624ab58..5fb63768358 100644
--- a/src/backend/jit/llvm/meson.build
+++ b/src/backend/jit/llvm/meson.build
@@ -20,6 +20,12 @@ llvmjit_sources += files(
'llvmjit_expr.c',
)
+if host_system == 'windows'
+ llvmjit_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'llvmjit',
+ '--FILEDESC', 'llvmjit - JIT using LLVM',])
+endif
+
llvmjit = shared_module('llvmjit',
llvmjit_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/libpqwalreceiver/meson.build b/src/backend/replication/libpqwalreceiver/meson.build
index 3fc786c80a0..4c653a05d36 100644
--- a/src/backend/replication/libpqwalreceiver/meson.build
+++ b/src/backend/replication/libpqwalreceiver/meson.build
@@ -2,6 +2,12 @@ libpqwalreceiver_sources = files(
'libpqwalreceiver.c',
)
+if host_system == 'windows'
+ libpqwalreceiver_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pqwalreceiver',
+ '--FILEDESC', 'libpqwalreceiver - receive WAL during streaming replication',])
+endif
+
libpqwalreceiver = shared_module('pqwalreceiver',
libpqwalreceiver_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/pgoutput/meson.build b/src/backend/replication/pgoutput/meson.build
index ab956361a62..5df27d7b764 100644
--- a/src/backend/replication/pgoutput/meson.build
+++ b/src/backend/replication/pgoutput/meson.build
@@ -2,6 +2,12 @@ pgoutput_sources = files(
'pgoutput.c',
)
+if host_system == 'windows'
+ pgoutput_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgoutput',
+ '--FILEDESC', 'pgoutput - standard logical replication output plugin',])
+endif
+
pgoutput = shared_module('pgoutput',
pgoutput_sources,
kwargs: pg_mod_args,
diff --git a/src/backend/snowball/meson.build b/src/backend/snowball/meson.build
index 8c6f685cb32..974401d187e 100644
--- a/src/backend/snowball/meson.build
+++ b/src/backend/snowball/meson.build
@@ -58,6 +58,12 @@ dict_snowball_sources += files(
# see comment in src/include/snowball/header.h
stemmer_inc = include_directories('../../include/snowball')
+if host_system == 'windows'
+ dict_snowball_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_snowball',
+ '--FILEDESC', 'snowball - natural language stemmers',])
+endif
+
dict_snowball = shared_module('dict_snowball',
dict_snowball_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/utils/mb/conversion_procs/meson.build b/src/backend/utils/mb/conversion_procs/meson.build
index 1bc971d1945..00e721a2453 100644
--- a/src/backend/utils/mb/conversion_procs/meson.build
+++ b/src/backend/utils/mb/conversion_procs/meson.build
@@ -1,36 +1,122 @@
encodings = {
- 'cyrillic_and_mic': ['cyrillic_and_mic/cyrillic_and_mic.c'],
- 'euc2004_sjis2004': ['euc2004_sjis2004/euc2004_sjis2004.c'],
- 'euc_cn_and_mic': ['euc_cn_and_mic/euc_cn_and_mic.c'],
- 'euc_jp_and_sjis': ['euc_jp_and_sjis/euc_jp_and_sjis.c'],
- 'euc_kr_and_mic': ['euc_kr_and_mic/euc_kr_and_mic.c'],
- 'euc_tw_and_big5': [
- 'euc_tw_and_big5/euc_tw_and_big5.c',
- 'euc_tw_and_big5/big5.c',
- ],
- 'latin2_and_win1250': ['latin2_and_win1250/latin2_and_win1250.c'],
- 'latin_and_mic': ['latin_and_mic/latin_and_mic.c'],
- 'utf8_and_big5': ['utf8_and_big5/utf8_and_big5.c'],
- 'utf8_and_cyrillic': ['utf8_and_cyrillic/utf8_and_cyrillic.c'],
- 'utf8_and_euc2004': ['utf8_and_euc2004/utf8_and_euc2004.c'],
- 'utf8_and_euc_cn': ['utf8_and_euc_cn/utf8_and_euc_cn.c'],
- 'utf8_and_euc_jp': ['utf8_and_euc_jp/utf8_and_euc_jp.c'],
- 'utf8_and_euc_kr': ['utf8_and_euc_kr/utf8_and_euc_kr.c'],
- 'utf8_and_euc_tw': ['utf8_and_euc_tw/utf8_and_euc_tw.c'],
- 'utf8_and_gb18030': ['utf8_and_gb18030/utf8_and_gb18030.c'],
- 'utf8_and_gbk': ['utf8_and_gbk/utf8_and_gbk.c'],
- 'utf8_and_iso8859': ['utf8_and_iso8859/utf8_and_iso8859.c'],
- 'utf8_and_iso8859_1': ['utf8_and_iso8859_1/utf8_and_iso8859_1.c'],
- 'utf8_and_johab': ['utf8_and_johab/utf8_and_johab.c'],
- 'utf8_and_sjis': ['utf8_and_sjis/utf8_and_sjis.c'],
- 'utf8_and_sjis2004': ['utf8_and_sjis2004/utf8_and_sjis2004.c'],
- 'utf8_and_uhc': ['utf8_and_uhc/utf8_and_uhc.c'],
- 'utf8_and_win': ['utf8_and_win/utf8_and_win.c'],
+ 'cyrillic_and_mic': {
+ 'sources': ['cyrillic_and_mic/cyrillic_and_mic.c'],
+ 'description': 'cyrillic <-> mic text conversions',
+ },
+ 'euc2004_sjis2004': {
+ 'sources': ['euc2004_sjis2004/euc2004_sjis2004.c'],
+ 'description': 'euc2004 <-> sjis2004 text conversions',
+ },
+ 'euc_cn_and_mic': {
+ 'sources': ['euc_cn_and_mic/euc_cn_and_mic.c'],
+ 'description': 'euc_cn <-> mic text conversions',
+ },
+ 'euc_jp_and_sjis': {
+ 'sources': ['euc_jp_and_sjis/euc_jp_and_sjis.c'],
+ 'description': 'euc_jp <-> sjis text conversions',
+ },
+ 'euc_kr_and_mic': {
+ 'sources': ['euc_kr_and_mic/euc_kr_and_mic.c'],
+ 'description': 'euc_kr <-> mic text conversions',
+ },
+ 'euc_tw_and_big5': {
+ 'sources': [
+ 'euc_tw_and_big5/euc_tw_and_big5.c',
+ 'euc_tw_and_big5/big5.c',
+ ],
+ 'description': 'euc_tw <-> big5 text conversions',
+ },
+ 'latin2_and_win1250': {
+ 'sources': ['latin2_and_win1250/latin2_and_win1250.c'],
+ 'description': 'latin2 <-> win1250 text conversions',
+ },
+ 'latin_and_mic': {
+ 'sources': ['latin_and_mic/latin_and_mic.c'],
+ 'description': 'latin <-> mic text conversions',
+ },
+ 'utf8_and_big5': {
+ 'sources': ['utf8_and_big5/utf8_and_big5.c'],
+ 'description': 'utf8 <-> big5 text conversions',
+ },
+ 'utf8_and_cyrillic': {
+ 'sources': ['utf8_and_cyrillic/utf8_and_cyrillic.c'],
+ 'description': 'utf8 <-> cyrillic text conversions',
+ },
+ 'utf8_and_euc2004': {
+ 'sources': ['utf8_and_euc2004/utf8_and_euc2004.c'],
+ 'description': 'utf8 <-> euc2004 text conversions',
+ },
+ 'utf8_and_euc_cn': {
+ 'sources': ['utf8_and_euc_cn/utf8_and_euc_cn.c'],
+ 'description': 'utf8 <-> euc_cn text conversions',
+ },
+ 'utf8_and_euc_jp': {
+ 'sources': ['utf8_and_euc_jp/utf8_and_euc_jp.c'],
+ 'description': 'utf8 <-> euc_jp text conversions',
+ },
+ 'utf8_and_euc_kr': {
+ 'sources': ['utf8_and_euc_kr/utf8_and_euc_kr.c'],
+ 'description': 'utf8 <-> euc_kr text conversions',
+ },
+ 'utf8_and_euc_tw': {
+ 'sources': ['utf8_and_euc_tw/utf8_and_euc_tw.c'],
+ 'description': 'utf8 <-> euc_tw text conversions',
+ },
+ 'utf8_and_gb18030': {
+ 'sources': ['utf8_and_gb18030/utf8_and_gb18030.c'],
+ 'description': 'utf8 <-> gb18030 text conversions',
+ },
+ 'utf8_and_gbk': {
+ 'sources': ['utf8_and_gbk/utf8_and_gbk.c'],
+ 'description': 'utf8 <-> gbk text conversions',
+ },
+ 'utf8_and_iso8859': {
+ 'sources': ['utf8_and_iso8859/utf8_and_iso8859.c'],
+ 'description': 'utf8 <-> iso8859 text conversions',
+ },
+ 'utf8_and_iso8859_1': {
+ 'sources': ['utf8_and_iso8859_1/utf8_and_iso8859_1.c'],
+ 'description': 'utf8 <-> iso8859_1 text conversions',
+ },
+ 'utf8_and_johab': {
+ 'sources': ['utf8_and_johab/utf8_and_johab.c'],
+ 'description': 'utf8 <-> johab text conversions',
+ },
+ 'utf8_and_sjis': {
+ 'sources': ['utf8_and_sjis/utf8_and_sjis.c'],
+ 'description': 'utf8 <-> sjis text conversions',
+ },
+ 'utf8_and_sjis2004': {
+ 'sources': ['utf8_and_sjis2004/utf8_and_sjis2004.c'],
+ 'description': 'utf8 <-> sjis2004 text conversions',
+ },
+ 'utf8_and_uhc': {
+ 'sources': ['utf8_and_uhc/utf8_and_uhc.c'],
+ 'description': 'utf8 <-> uhc text conversions',
+ },
+ 'utf8_and_win': {
+ 'sources': ['utf8_and_win/utf8_and_win.c'],
+ 'description': 'utf8 <-> win text conversions',
+ },
}
-foreach encoding, sources : encodings
+foreach encoding, values: encodings
+ sources = values['sources']
+ description = values['description']
+
+ source_files = files()
+ foreach source: sources
+ source_files += files(source)
+ endforeach
+
+ if host_system == 'windows'
+ source_files += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', encoding,
+ '--FILEDESC', description,])
+ endif
+
backend_targets += shared_module(encoding,
- sources,
+ source_files,
kwargs: pg_mod_args,
)
endforeach
diff --git a/src/bin/initdb/meson.build b/src/bin/initdb/meson.build
index 9f213274d2f..6ced9a31b80 100644
--- a/src/bin/initdb/meson.build
+++ b/src/bin/initdb/meson.build
@@ -7,6 +7,12 @@ initdb_sources += timezone_localtime_source
#fixme: reimplement libpq_pgport logic
+if host_system == 'windows'
+ initdb_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'initdb',
+ '--FILEDESC', 'initdb - initialize a new database cluster',])
+endif
+
initdb = executable('initdb',
initdb_sources,
include_directories: [timezone_inc],
diff --git a/src/bin/pg_amcheck/meson.build b/src/bin/pg_amcheck/meson.build
index 8e197eba5f3..25f5e7a0948 100644
--- a/src/bin/pg_amcheck/meson.build
+++ b/src/bin/pg_amcheck/meson.build
@@ -1,7 +1,13 @@
pg_amcheck_sources = files(
- 'pg_amcheck.c'
+ 'pg_amcheck.c',
)
+if host_system == 'windows'
+ pg_amcheck_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_amcheck',
+ '--FILEDESC', 'pg_amcheck - detect corruption within database relations',])
+endif
+
pg_amcheck = executable('pg_amcheck',
pg_amcheck_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_archivecleanup/meson.build b/src/bin/pg_archivecleanup/meson.build
index 87a0d980c4f..aaa2e76977f 100644
--- a/src/bin/pg_archivecleanup/meson.build
+++ b/src/bin/pg_archivecleanup/meson.build
@@ -1,5 +1,15 @@
+pg_archivecleanup_sources = files(
+ 'pg_archivecleanup.c',
+)
+
+if host_system == 'windows'
+ pg_archivecleanup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_archivecleanup',
+ '--FILEDESC', 'pg_archivecleanup - cleans archive when used with streaming replication',])
+endif
+
pg_archivecleanup = executable('pg_archivecleanup',
- ['pg_archivecleanup.c'],
+ pg_archivecleanup_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_basebackup/meson.build b/src/bin/pg_basebackup/meson.build
index d26fed9cd8a..2c934e0c26e 100644
--- a/src/bin/pg_basebackup/meson.build
+++ b/src/bin/pg_basebackup/meson.build
@@ -17,24 +17,56 @@ pg_basebackup_common = static_library('libpg_basebackup_common',
kwargs: internal_lib_args,
)
-pg_basebackup = executable('pg_basebackup',
+pg_basebackup_sources = files(
'pg_basebackup.c',
+)
+
+if host_system == 'windows'
+ pg_basebackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_basebackup',
+ '--FILEDESC', 'pg_basebackup - streaming WAL and backup receivers',])
+endif
+
+pg_basebackup = executable('pg_basebackup',
+ pg_basebackup_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_basebackup
-pg_receivewal = executable('pg_receivewal',
+
+pg_receivewal_sources = files(
'pg_receivewal.c',
+)
+
+if host_system == 'windows'
+ pg_receivewal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_receivewal',
+ '--FILEDESC', 'pg_receivewal - streaming WAL and backup receivers',])
+endif
+
+pg_receivewal = executable('pg_receivewal',
+ pg_receivewal_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_receivewal
-pg_recvlogical = executable('pg_recvlogical',
+
+pg_recvlogical_sources = files(
'pg_recvlogical.c',
+)
+
+if host_system == 'windows'
+ pg_recvlogical_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_recvlogical',
+ '--FILEDESC', 'pg_recvlogical - streaming WAL and backup receivers',])
+endif
+
+pg_recvlogical = executable('pg_recvlogical',
+ pg_recvlogical_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
diff --git a/src/bin/pg_checksums/meson.build b/src/bin/pg_checksums/meson.build
index ee1f367bac3..d07ebc999b3 100644
--- a/src/bin/pg_checksums/meson.build
+++ b/src/bin/pg_checksums/meson.build
@@ -1,5 +1,15 @@
+pg_checksums_sources = files(
+ 'pg_checksums.c',
+)
+
+if host_system == 'windows'
+ pg_checksums_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_checksums',
+ '--FILEDESC', 'pg_checksums - verify data checksums in an offline cluster',])
+endif
+
pg_checksums = executable('pg_checksums',
- ['pg_checksums.c'],
+ pg_checksums_sources,
include_directories: [timezone_inc],
dependencies: [frontend_code],
kwargs: default_bin_args,
diff --git a/src/bin/pg_config/meson.build b/src/bin/pg_config/meson.build
index 0ecbf2f9d28..4be2fdc84ae 100644
--- a/src/bin/pg_config/meson.build
+++ b/src/bin/pg_config/meson.build
@@ -1,5 +1,15 @@
+pg_config_sources = files(
+ 'pg_config.c',
+)
+
+if host_system == 'windows'
+ pg_config_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_config',
+ '--FILEDESC', 'pg_config - report configuration information',])
+endif
+
pg_config = executable('pg_config',
- ['pg_config.c'],
+ pg_config_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_controldata/meson.build b/src/bin/pg_controldata/meson.build
index 557e672beb7..7fc239dbe65 100644
--- a/src/bin/pg_controldata/meson.build
+++ b/src/bin/pg_controldata/meson.build
@@ -1,5 +1,15 @@
+pg_controldata_sources = files(
+ 'pg_controldata.c',
+)
+
+if host_system == 'windows'
+ pg_controldata_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_controldata',
+ '--FILEDESC', 'pg_controldata - reads the data from pg_control',])
+endif
+
pg_controldata = executable('pg_controldata',
- ['pg_controldata.c'],
+ pg_controldata_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_ctl/meson.build b/src/bin/pg_ctl/meson.build
index 6812e73e329..96f962fa762 100644
--- a/src/bin/pg_ctl/meson.build
+++ b/src/bin/pg_ctl/meson.build
@@ -1,5 +1,15 @@
+pg_ctl_sources = files(
+ 'pg_ctl.c',
+)
+
+if host_system == 'windows'
+ pg_ctl_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_ctl',
+ '--FILEDESC', 'pg_ctl - starts/stops/restarts the PostgreSQL server',])
+endif
+
pg_ctl = executable('pg_ctl',
- ['pg_ctl.c'],
+ pg_ctl_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build
index 785ec094dbd..3527a25c288 100644
--- a/src/bin/pg_dump/meson.build
+++ b/src/bin/pg_dump/meson.build
@@ -24,6 +24,12 @@ pg_dump_sources = files(
'pg_dump_sort.c',
)
+if host_system == 'windows'
+ pg_dump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dump',
+ '--FILEDESC', 'pg_dump - backup one PostgreSQL database',])
+endif
+
pg_dump = executable('pg_dump',
pg_dump_sources,
link_with: [pg_dump_common],
@@ -37,6 +43,12 @@ pg_dumpall_sources = files(
'pg_dumpall.c',
)
+if host_system == 'windows'
+ pg_dumpall_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dumpall',
+ '--FILEDESC', 'pg_dumpall - backup PostgreSQL databases'])
+endif
+
pg_dumpall = executable('pg_dumpall',
pg_dumpall_sources,
link_with: [pg_dump_common],
@@ -50,6 +62,12 @@ pg_restore_sources = files(
'pg_restore.c',
)
+if host_system == 'windows'
+ pg_restore_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_restore',
+ '--FILEDESC', 'pg_restore - restore PostgreSQL databases'])
+endif
+
pg_restore = executable('pg_restore',
pg_restore_sources,
link_with: [pg_dump_common],
diff --git a/src/bin/pg_resetwal/meson.build b/src/bin/pg_resetwal/meson.build
index 7c5de134ac0..d503db97b71 100644
--- a/src/bin/pg_resetwal/meson.build
+++ b/src/bin/pg_resetwal/meson.build
@@ -1,5 +1,15 @@
+pg_resetwal_sources = files(
+ 'pg_resetwal.c',
+)
+
+if host_system == 'windows'
+ pg_resetwal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_resetwal',
+ '--FILEDESC', 'pg_resetwal - reset PostgreSQL WAL log'])
+endif
+
pg_resetwal = executable('pg_resetwal',
- files('pg_resetwal.c'),
+ pg_resetwal_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_rewind/meson.build b/src/bin/pg_rewind/meson.build
index d8ec9e482d5..6cd970909a2 100644
--- a/src/bin/pg_rewind/meson.build
+++ b/src/bin/pg_rewind/meson.build
@@ -11,6 +11,12 @@ pg_rewind_sources = files(
pg_rewind_sources += xlogreader_sources
+if host_system == 'windows'
+ pg_rewind_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_rewind',
+ '--FILEDESC', 'pg_rewind - synchronize a data directory with another one forked from'])
+endif
+
pg_rewind = executable('pg_rewind',
pg_rewind_sources,
dependencies: [frontend_code, libpq, lz4, zstd],
diff --git a/src/bin/pg_test_fsync/meson.build b/src/bin/pg_test_fsync/meson.build
index 2c01831e11f..31d288ba6da 100644
--- a/src/bin/pg_test_fsync/meson.build
+++ b/src/bin/pg_test_fsync/meson.build
@@ -1,4 +1,12 @@
-test_fsync_sources = files('pg_test_fsync.c')
+test_fsync_sources = files(
+ 'pg_test_fsync.c',
+)
+
+if host_system == 'windows'
+ test_fsync_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_fsync',
+ '--FILEDESC', 'pg_test_fsync - test various disk sync methods'])
+endif
pg_test_fsync = executable('pg_test_fsync',
test_fsync_sources,
diff --git a/src/bin/pg_test_timing/meson.build b/src/bin/pg_test_timing/meson.build
index 0a3068f1657..0aed03ea32f 100644
--- a/src/bin/pg_test_timing/meson.build
+++ b/src/bin/pg_test_timing/meson.build
@@ -1,5 +1,15 @@
+pg_test_timing_sources = files(
+ 'pg_test_timing.c'
+)
+
+if host_system == 'windows'
+ pg_test_timing_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_timing',
+ '--FILEDESC', 'pg_test_timing - test timing overhead'])
+endif
+
pg_test_timing = executable('pg_test_timing',
- ['pg_test_timing.c'],
+ pg_test_timing_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_upgrade/meson.build b/src/bin/pg_upgrade/meson.build
index 02f030e0ccf..a7b927a45c7 100644
--- a/src/bin/pg_upgrade/meson.build
+++ b/src/bin/pg_upgrade/meson.build
@@ -16,6 +16,12 @@ pg_upgrade_sources = files(
'version.c',
)
+if host_system == 'windows'
+ pg_upgrade_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_upgrade',
+ '--FILEDESC', 'pg_upgrade - an in-place binary upgrade utility'])
+endif
+
pg_upgrade = executable('pg_upgrade',
pg_upgrade_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_verifybackup/meson.build b/src/bin/pg_verifybackup/meson.build
index 4c3b2bb5f97..b934a408443 100644
--- a/src/bin/pg_verifybackup/meson.build
+++ b/src/bin/pg_verifybackup/meson.build
@@ -3,6 +3,12 @@ pg_verifybackup_sources = files(
'pg_verifybackup.c'
)
+if host_system == 'windows'
+ pg_verifybackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_verifybackup',
+ '--FILEDESC', 'pg_verifybackup - verify a backup against using a backup manifest'])
+endif
+
pg_verifybackup = executable('pg_verifybackup',
pg_verifybackup_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_waldump/meson.build b/src/bin/pg_waldump/meson.build
index 95872652ffd..9605976870d 100644
--- a/src/bin/pg_waldump/meson.build
+++ b/src/bin/pg_waldump/meson.build
@@ -8,6 +8,12 @@ pg_waldump_sources += rmgr_desc_sources
pg_waldump_sources += xlogreader_sources
pg_waldump_sources += files('../../backend/access/transam/xlogstats.c')
+if host_system == 'windows'
+ pg_waldump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_waldump',
+ '--FILEDESC', 'pg_waldump - decode and display WA'])
+endif
+
pg_waldump = executable('pg_waldump',
pg_waldump_sources,
dependencies: [frontend_code, lz4, zstd],
diff --git a/src/bin/pgbench/meson.build b/src/bin/pgbench/meson.build
index 6564e54029c..a32eb51fe07 100644
--- a/src/bin/pgbench/meson.build
+++ b/src/bin/pgbench/meson.build
@@ -17,6 +17,12 @@ exprparse = custom_target('exprparse',
generated_sources += exprparse.to_list()
pgbench_sources += exprparse
+if host_system == 'windows'
+ pgbench_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgbench',
+ '--FILEDESC', 'pgbench - a simple program for running benchmark tests'])
+endif
+
pgbench = executable('pgbench',
pgbench_sources,
dependencies: [frontend_code, libpq, thread_dep],
diff --git a/src/bin/pgevent/meson.build b/src/bin/pgevent/meson.build
index 7a468879fd2..2e9aea4b0e1 100644
--- a/src/bin/pgevent/meson.build
+++ b/src/bin/pgevent/meson.build
@@ -6,6 +6,12 @@ pgevent_sources = files(
'pgevent.c',
)
+pgevent_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgevent',
+ '--FILEDESC', 'Eventlog message formatter',])
+
+pgevent_sources += windows.compile_resources('pgmsgevent.rc')
+
# FIXME: copied from Mkvcbuild.pm, but I don't think that's the right approach
pgevent_link_args = []
if cc.get_id() == 'msvc'
diff --git a/src/bin/psql/meson.build b/src/bin/psql/meson.build
index ea850c8fdf5..3474389d3b6 100644
--- a/src/bin/psql/meson.build
+++ b/src/bin/psql/meson.build
@@ -38,6 +38,12 @@ generated_sources += sql_help.to_list()
psql_sources += sql_help
bin_targets += sql_help
+if host_system == 'windows'
+ psql_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'psql',
+ '--FILEDESC', 'psql - the PostgreSQL interactive terminal',])
+endif
+
psql = executable('psql',
psql_sources,
include_directories: include_directories('.'),
diff --git a/src/bin/scripts/meson.build b/src/bin/scripts/meson.build
index eaf250c7f73..837562c24e5 100644
--- a/src/bin/scripts/meson.build
+++ b/src/bin/scripts/meson.build
@@ -16,8 +16,16 @@ binaries = [
]
foreach binary : binaries
+ binary_sources = files('@[email protected]'.format(binary))
+
+ if host_system == 'windows'
+ binary_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', binary,
+ '--FILEDESC', '@0@ - PostgreSQL utility'.format(binary),])
+ endif
+
binary = executable(binary,
- files(binary + '.c'),
+ binary_sources,
link_with: [scripts_common],
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build
index bc047e00d62..2c9edeaa088 100644
--- a/src/interfaces/libpq/meson.build
+++ b/src/interfaces/libpq/meson.build
@@ -16,9 +16,13 @@ libpq_sources = files(
'libpq-events.c',
'pqexpbuffer.c',
)
+libpq_so_sources = [] # only for shared lib, in addition to above
if host_system == 'windows'
libpq_sources += files('pthread-win32.c', 'win32.c')
+ libpq_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq',
+ '--FILEDESC', 'PostgreSQL Access Library',])
endif
if ssl.found()
@@ -52,6 +56,7 @@ libpq_st = static_library('libpq',
# not using both_libraries here, causes problems with precompiled headers and
# resource files with msbuild
libpq_so = shared_library('libpq',
+ libpq_so_sources,
dependencies: libpq_deps,
include_directories: [libpq_inc, postgres_inc],
c_args: ['-DSO_MAJOR_VERSION=5'],
diff --git a/src/interfaces/libpq/test/meson.build b/src/interfaces/libpq/test/meson.build
index 16f94c1ed8b..017f729d435 100644
--- a/src/interfaces/libpq/test/meson.build
+++ b/src/interfaces/libpq/test/meson.build
@@ -1,13 +1,34 @@
+libpq_uri_regress_sources = files(
+ 'libpq_uri_regress.c',
+)
+
+if host_system == 'windows'
+ libpq_uri_regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_uri_regress',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_uri_regress',
- files('libpq_uri_regress.c'),
+ libpq_uri_regress_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
}
)
+
+libpq_testclient_sources = files(
+ 'libpq_testclient.c',
+)
+
+if host_system == 'windows'
+ libpq_testclient_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_testclient',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_testclient',
- files('libpq_testclient.c'),
+ libpq_testclient_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/pl/plperl/meson.build b/src/pl/plperl/meson.build
index 73b733dd50b..535660085dd 100644
--- a/src/pl/plperl/meson.build
+++ b/src/pl/plperl/meson.build
@@ -36,6 +36,13 @@ foreach n : ['SPI', 'Util']
endforeach
plperl_inc = include_directories('.')
+
+if host_system == 'windows'
+ plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plperl',
+ '--FILEDESC', 'PL/Perl - procedural language',])
+endif
+
plperl = shared_module('plperl',
plperl_sources,
include_directories: [plperl_inc, postgres_inc],
diff --git a/src/pl/plpgsql/src/meson.build b/src/pl/plpgsql/src/meson.build
index dd499fdd151..c46c0a1da2a 100644
--- a/src/pl/plpgsql/src/meson.build
+++ b/src/pl/plpgsql/src/meson.build
@@ -40,6 +40,12 @@ pl_unreserved = custom_target('pl_unreserved_kwlist',
generated_sources += pl_unreserved
plpgsql_sources += pl_unreserved
+if host_system == 'windows'
+ plpgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpgsql',
+ '--FILEDESC', 'PL/pgSQL - procedural language',])
+endif
+
plpgsql = shared_module('plpgsql',
plpgsql_sources,
include_directories: include_directories('.'),
diff --git a/src/pl/plpython/meson.build b/src/pl/plpython/meson.build
index 366b3b171ac..40888386b5f 100644
--- a/src/pl/plpython/meson.build
+++ b/src/pl/plpython/meson.build
@@ -28,6 +28,12 @@ plpython_sources += custom_target('spiexceptions.h',
# FIXME: need to duplicate import library ugliness?
plpython_inc = include_directories('.')
+if host_system == 'windows'
+ plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpython3',
+ '--FILEDESC', 'PL/Python - procedural language',])
+endif
+
plpython = shared_module('plpython3',
plpython_sources,
include_directories: [plpython_inc, postgres_inc],
diff --git a/src/pl/tcl/meson.build b/src/pl/tcl/meson.build
index 9b6addd7fd5..f09bb14c950 100644
--- a/src/pl/tcl/meson.build
+++ b/src/pl/tcl/meson.build
@@ -14,6 +14,12 @@ pltcl_sources += custom_target('pltclerrcodes.h',
command: [perl, gen_pltclerrcodes, '@INPUT@']
)
+if host_system == 'windows'
+ pltcl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pltcl',
+ '--FILEDESC', 'PL/Tcl - procedural language',])
+endif
+
pltcl = shared_module('pltcl',
pltcl_sources,
include_directories: [include_directories('.'), postgres_inc],
diff --git a/contrib/adminpack/meson.build b/contrib/adminpack/meson.build
index fc2368d02cf..7efec0efbc0 100644
--- a/contrib/adminpack/meson.build
+++ b/contrib/adminpack/meson.build
@@ -1,5 +1,15 @@
+adminpack_sources = files(
+ 'adminpack.c',
+)
+
+if host_system == 'windows'
+ adminpack_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'adminpack',
+ '--FILEDESC', 'adminpack - support functions for pgAdmin',])
+endif
+
adminpack = shared_module('adminpack',
- ['adminpack.c'],
+ adminpack_sources,
kwargs: contrib_mod_args,
)
contrib_targets += adminpack
diff --git a/contrib/amcheck/meson.build b/contrib/amcheck/meson.build
index 1db3d20349e..fa807b72d98 100644
--- a/contrib/amcheck/meson.build
+++ b/contrib/amcheck/meson.build
@@ -1,7 +1,16 @@
-amcheck = shared_module('amcheck', [
- 'verify_heapam.c',
- 'verify_nbtree.c',
- ],
+amcheck_sources = files(
+ 'verify_heapam.c',
+ 'verify_nbtree.c',
+)
+
+if host_system == 'windows'
+ amcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'amcheck',
+ '--FILEDESC', 'amcheck - function for verifying relation integrity',])
+endif
+
+amcheck = shared_module('amcheck',
+ amcheck_sources,
kwargs: contrib_mod_args,
)
contrib_targets += amcheck
diff --git a/contrib/auth_delay/meson.build b/contrib/auth_delay/meson.build
index d2e01968f54..c4ffb0663bc 100644
--- a/contrib/auth_delay/meson.build
+++ b/contrib/auth_delay/meson.build
@@ -1,5 +1,15 @@
+auth_delay_sources = files(
+ 'auth_delay.c',
+)
+
+if host_system == 'windows'
+ auth_delay_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auth_delay',
+ '--FILEDESC', 'auth_delay - delay authentication failure reports',])
+endif
+
autoinc = shared_module('auth_delay',
- ['auth_delay.c'],
+ auth_delay_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
diff --git a/contrib/auto_explain/meson.build b/contrib/auto_explain/meson.build
index 249a8376faa..76f86617850 100644
--- a/contrib/auto_explain/meson.build
+++ b/contrib/auto_explain/meson.build
@@ -1,5 +1,15 @@
+auto_explain_sources = files(
+ 'auto_explain.c',
+)
+
+if host_system == 'windows'
+ auto_explain_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auto_explain',
+ '--FILEDESC', 'auto_explain - logging facility for execution plans',])
+endif
+
auto_explain = shared_module('auto_explain',
- files('auto_explain.c'),
+ auto_explain_sources,
kwargs: contrib_mod_args,
)
contrib_targets += auto_explain
diff --git a/contrib/basebackup_to_shell/meson.build b/contrib/basebackup_to_shell/meson.build
index 9f0517f1701..3a389de9175 100644
--- a/contrib/basebackup_to_shell/meson.build
+++ b/contrib/basebackup_to_shell/meson.build
@@ -2,6 +2,12 @@ basebackup_to_shell_sources = files(
'basebackup_to_shell.c',
)
+if host_system == 'windows'
+ basebackup_to_shell_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basebackup_to_shell',
+ '--FILEDESC', 'basebackup_to_shell - target basebackup to shell command',])
+endif
+
basebackup_to_shell = shared_module('basebackup_to_shell',
basebackup_to_shell_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/basic_archive/meson.build b/contrib/basic_archive/meson.build
index b67cbef60bd..c30dcfa5d41 100644
--- a/contrib/basic_archive/meson.build
+++ b/contrib/basic_archive/meson.build
@@ -2,6 +2,12 @@ basic_archive_sources = files(
'basic_archive.c',
)
+if host_system == 'windows'
+ basic_archive_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basic_archive',
+ '--FILEDESC', 'basic_archive - basic archive module',])
+endif
+
basic_archive = shared_module('basic_archive',
basic_archive_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bloom/meson.build b/contrib/bloom/meson.build
index 1fe7632bdbe..16f3b83e4d2 100644
--- a/contrib/bloom/meson.build
+++ b/contrib/bloom/meson.build
@@ -7,6 +7,12 @@ bloom_sources = files(
'blvalidate.c',
)
+if host_system == 'windows'
+ bloom_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bloom',
+ '--FILEDESC', 'bloom access method - signature file based index',])
+endif
+
bloom = shared_module('bloom',
bloom_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bool_plperl/meson.build b/contrib/bool_plperl/meson.build
index c20b667d75f..a68daab0dcd 100644
--- a/contrib/bool_plperl/meson.build
+++ b/contrib/bool_plperl/meson.build
@@ -6,6 +6,12 @@ bool_plperl_sources = files(
'bool_plperl.c',
)
+if host_system == 'windows'
+ bool_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bool_plperl',
+ '--FILEDESC', 'bool_plperl - bool transform for plperl',])
+endif
+
bool_plperl = shared_module('bool_plperl',
bool_plperl_sources,
include_directories: [plperl_inc, include_directories('.')],
diff --git a/contrib/btree_gin/meson.build b/contrib/btree_gin/meson.build
index 15d6d31a6ee..fd4c76767a7 100644
--- a/contrib/btree_gin/meson.build
+++ b/contrib/btree_gin/meson.build
@@ -1,5 +1,15 @@
+btree_gin_sources = files(
+ 'btree_gin.c',
+)
+
+if host_system == 'windows'
+ btree_gin_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gin',
+ '--FILEDESC', 'btree_gin - B-tree equivalent GIN operator classes',])
+endif
+
btree_gin = shared_module('btree_gin',
- files('btree_gin.c'),
+ btree_gin_sources,
kwargs: contrib_mod_args,
)
contrib_targets += btree_gin
diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build
index c0a8d238540..e98c91dacc8 100644
--- a/contrib/btree_gist/meson.build
+++ b/contrib/btree_gist/meson.build
@@ -25,6 +25,12 @@ btree_gist_sources = files(
'btree_uuid.c',
)
+if host_system == 'windows'
+ btree_gist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gist',
+ '--FILEDESC', 'btree_gist - B-tree equivalent GiST operator classes',])
+endif
+
btree_gist = shared_module('btree_gist',
btree_gist_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/citext/meson.build b/contrib/citext/meson.build
index ca60eded80b..26a101a19bd 100644
--- a/contrib/citext/meson.build
+++ b/contrib/citext/meson.build
@@ -2,6 +2,12 @@ citext_sources = files(
'citext.c',
)
+if host_system == 'windows'
+ citext_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'citext',
+ '--FILEDESC', 'citext - case-insensitive character string data type',])
+endif
+
citext = shared_module('citext',
citext_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/cube/meson.build b/contrib/cube/meson.build
index 72342b0c82c..041acf95a90 100644
--- a/contrib/cube/meson.build
+++ b/contrib/cube/meson.build
@@ -17,6 +17,12 @@ cube_parse = custom_target('cubeparse',
generated_sources += cube_parse.to_list()
cube_sources += cube_parse
+if host_system == 'windows'
+ cube_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'cube',
+ '--FILEDESC', 'cube - multidimensional cube data type',])
+endif
+
cube = shared_module('cube',
cube_sources,
include_directories: include_directories('.'),
diff --git a/contrib/dblink/meson.build b/contrib/dblink/meson.build
index d35f7b5d49e..66eeb03b736 100644
--- a/contrib/dblink/meson.build
+++ b/contrib/dblink/meson.build
@@ -2,6 +2,12 @@ dblink_sources = files(
'dblink.c',
)
+if host_system == 'windows'
+ dblink_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dblink',
+ '--FILEDESC', 'dblink - connect to other PostgreSQL databases',])
+endif
+
dblink = shared_module('dblink',
dblink_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/dict_int/meson.build b/contrib/dict_int/meson.build
index f00e8085619..6fff921adda 100644
--- a/contrib/dict_int/meson.build
+++ b/contrib/dict_int/meson.build
@@ -1,5 +1,15 @@
+dict_int_sources = files(
+ 'dict_int.c',
+)
+
+if host_system == 'windows'
+ dict_int_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_int',
+ '--FILEDESC', 'dict_int - add-on dictionary template for full-text search',])
+endif
+
dict_int = shared_module('dict_int',
- files('dict_int.c'),
+ dict_int_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_int
diff --git a/contrib/dict_xsyn/meson.build b/contrib/dict_xsyn/meson.build
index be53f55bb79..fabd505a7df 100644
--- a/contrib/dict_xsyn/meson.build
+++ b/contrib/dict_xsyn/meson.build
@@ -1,5 +1,15 @@
+dict_xsyn_sources = files(
+ 'dict_xsyn.c',
+)
+
+if host_system == 'windows'
+ dict_xsyn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_xsyn',
+ '--FILEDESC', 'dict_xsyn - add-on dictionary template for full-text search',])
+endif
+
dict_xsyn = shared_module('dict_xsyn',
- files('dict_xsyn.c'),
+ dict_xsyn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_xsyn
diff --git a/contrib/earthdistance/meson.build b/contrib/earthdistance/meson.build
index 807f5cb7de3..78dc29c3da3 100644
--- a/contrib/earthdistance/meson.build
+++ b/contrib/earthdistance/meson.build
@@ -1,5 +1,15 @@
+earthdistance_sources = files(
+ 'earthdistance.c',
+)
+
+if host_system == 'windows'
+ earthdistance_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'earthdistance',
+ '--FILEDESC', 'earthdistance - calculate distances on the surface of the Earth',])
+endif
+
earthdistance = shared_module('earthdistance',
- files('earthdistance.c'),
+ earthdistance_sources,
kwargs: contrib_mod_args,
)
contrib_targets += earthdistance
diff --git a/contrib/file_fdw/meson.build b/contrib/file_fdw/meson.build
index f13efb6e38e..c4071faa669 100644
--- a/contrib/file_fdw/meson.build
+++ b/contrib/file_fdw/meson.build
@@ -1,5 +1,15 @@
+file_fdw_sources = files(
+ 'file_fdw.c',
+)
+
+if host_system == 'windows'
+ file_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'file_fdw',
+ '--FILEDESC', 'file_fdw - foreign data wrapper for files',])
+endif
+
file_fdw = shared_module('file_fdw',
- files('file_fdw.c'),
+ file_fdw_sources,
kwargs: contrib_mod_args,
)
contrib_targets += file_fdw
diff --git a/contrib/fuzzystrmatch/meson.build b/contrib/fuzzystrmatch/meson.build
index ec278a6211e..e6d06149cec 100644
--- a/contrib/fuzzystrmatch/meson.build
+++ b/contrib/fuzzystrmatch/meson.build
@@ -1,8 +1,16 @@
+fuzzystrmatch_sources = files(
+ 'fuzzystrmatch.c',
+ 'dmetaphone.c',
+)
+
+if host_system == 'windows'
+ fuzzystrmatch_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'fuzzystrmatch',
+ '--FILEDESC', 'fuzzystrmatch - similarities and distance between strings',])
+endif
+
fuzzystrmatch = shared_module('fuzzystrmatch',
- files(
- 'fuzzystrmatch.c',
- 'dmetaphone.c'
- ),
+ fuzzystrmatch_sources,
kwargs: contrib_mod_args,
)
contrib_targets += fuzzystrmatch
diff --git a/contrib/hstore/meson.build b/contrib/hstore/meson.build
index 07c59f40a97..2bb26bb772b 100644
--- a/contrib/hstore/meson.build
+++ b/contrib/hstore/meson.build
@@ -1,15 +1,23 @@
# .. so that includes of hstore/hstore.h work
hstore_inc = include_directories('.', '../')
+hstore_sources = files(
+ 'hstore_compat.c',
+ 'hstore_gin.c',
+ 'hstore_gist.c',
+ 'hstore_io.c',
+ 'hstore_op.c',
+ 'hstore_subs.c',
+)
+
+if host_system == 'windows'
+ hstore_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore',
+ '--FILEDESC', 'hstore - key/value pair data type',])
+endif
+
hstore = shared_module('hstore',
- files(
- 'hstore_compat.c',
- 'hstore_gin.c',
- 'hstore_gist.c',
- 'hstore_io.c',
- 'hstore_op.c',
- 'hstore_subs.c',
- ),
+ hstore_sources,
kwargs: contrib_mod_args,
)
contrib_targets += hstore
diff --git a/contrib/hstore_plperl/meson.build b/contrib/hstore_plperl/meson.build
index bbafa0221bd..a238fee6a26 100644
--- a/contrib/hstore_plperl/meson.build
+++ b/contrib/hstore_plperl/meson.build
@@ -6,6 +6,12 @@ hstore_plperl_sources = files(
'hstore_plperl.c',
)
+if host_system == 'windows'
+ hstore_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plperl',
+ '--FILEDESC', 'hstore_plperl - hstore transform for plperl',])
+endif
+
hstore_plperl = shared_module('hstore_plperl',
hstore_plperl_sources,
include_directories: [plperl_inc, hstore_inc],
diff --git a/contrib/hstore_plpython/meson.build b/contrib/hstore_plpython/meson.build
index 214b48519a9..6071aaeb4b3 100644
--- a/contrib/hstore_plpython/meson.build
+++ b/contrib/hstore_plpython/meson.build
@@ -6,6 +6,12 @@ hstore_plpython_sources = files(
'hstore_plpython.c',
)
+if host_system == 'windows'
+ hstore_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plpython3',
+ '--FILEDESC', 'hstore_plpython - hstore transform for plpython',])
+endif
+
hstore_plpython = shared_module('hstore_plpython3',
hstore_plpython_sources,
include_directories: [plpython_inc, hstore_inc, ],
diff --git a/contrib/intarray/meson.build b/contrib/intarray/meson.build
index 1655bcbb3fd..b7cf1ce0cad 100644
--- a/contrib/intarray/meson.build
+++ b/contrib/intarray/meson.build
@@ -8,6 +8,12 @@ intarray_sources = files(
'_intbig_gist.c',
)
+if host_system == 'windows'
+ intarray_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', '_int',
+ '--FILEDESC', 'intarray - functions and operators for arrays of integers',])
+endif
+
intarray = shared_module('_int',
intarray_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/isn/meson.build b/contrib/isn/meson.build
index cc30bbeb55c..db68a718313 100644
--- a/contrib/isn/meson.build
+++ b/contrib/isn/meson.build
@@ -2,6 +2,12 @@ isn_sources = files(
'isn.c',
)
+if host_system == 'windows'
+ isn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isn',
+ '--FILEDESC', 'isn - data types for international product numbering standards',])
+endif
+
isn = shared_module('isn',
isn_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/jsonb_plperl/meson.build b/contrib/jsonb_plperl/meson.build
index 5c915d8ed94..071a7a98d2c 100644
--- a/contrib/jsonb_plperl/meson.build
+++ b/contrib/jsonb_plperl/meson.build
@@ -6,6 +6,12 @@ jsonb_plperl_sources = files(
'jsonb_plperl.c',
)
+if host_system == 'windows'
+ jsonb_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plperl',
+ '--FILEDESC', 'jsonb_plperl - jsonb transform for plperl',])
+endif
+
jsonb_plperl = shared_module('jsonb_plperl',
jsonb_plperl_sources,
include_directories: [plperl_inc],
diff --git a/contrib/jsonb_plpython/meson.build b/contrib/jsonb_plpython/meson.build
index de8e1105c6a..84dc1161e8b 100644
--- a/contrib/jsonb_plpython/meson.build
+++ b/contrib/jsonb_plpython/meson.build
@@ -6,6 +6,12 @@ jsonb_plpython_sources = files(
'jsonb_plpython.c',
)
+if host_system == 'windows'
+ jsonb_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plpython3',
+ '--FILEDESC', 'jsonb_plpython - jsonb transform for plpython',])
+endif
+
jsonb_plpython = shared_module('jsonb_plpython3',
jsonb_plpython_sources,
include_directories: [plpython_inc],
diff --git a/contrib/lo/meson.build b/contrib/lo/meson.build
index 9082d5713c7..61ae131f1cc 100644
--- a/contrib/lo/meson.build
+++ b/contrib/lo/meson.build
@@ -2,6 +2,12 @@ lo_sources = files(
'lo.c',
)
+if host_system == 'windows'
+ lo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'lo',
+ '--FILEDESC', 'lo - management for large objects',])
+endif
+
lo = shared_module('lo',
lo_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree/meson.build b/contrib/ltree/meson.build
index 9463fc2c5e5..421292cea9d 100644
--- a/contrib/ltree/meson.build
+++ b/contrib/ltree/meson.build
@@ -13,6 +13,12 @@ ltree_sources = files(
# .. so that includes of ltree/ltree.h work
ltree_inc = include_directories('.', '../')
+if host_system == 'windows'
+ ltree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree',
+ '--FILEDESC', 'ltree - hierarchical label data type',])
+endif
+
ltree = shared_module('ltree',
ltree_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree_plpython/meson.build b/contrib/ltree_plpython/meson.build
index 429d75006aa..acf5e4a6fc8 100644
--- a/contrib/ltree_plpython/meson.build
+++ b/contrib/ltree_plpython/meson.build
@@ -6,6 +6,12 @@ ltree_plpython_sources = files(
'ltree_plpython.c',
)
+if host_system == 'windows'
+ ltree_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree_plpython3',
+ '--FILEDESC', 'ltree_plpython - ltree transform for plpython',])
+endif
+
ltree_plpython = shared_module('ltree_plpython3',
ltree_plpython_sources,
include_directories: [plpython_inc, ltree_inc],
diff --git a/contrib/oid2name/meson.build b/contrib/oid2name/meson.build
index 1dad5d8f6e7..1a248f19260 100644
--- a/contrib/oid2name/meson.build
+++ b/contrib/oid2name/meson.build
@@ -1,5 +1,15 @@
+oid2name_sources = files(
+ 'oid2name.c',
+)
+
+if host_system == 'windows'
+ oid2name_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'oid2name',
+ '--FILEDESC', 'oid2name - examine the file structure',])
+endif
+
oid2name = executable('oid2name',
- ['oid2name.c'],
+ oid2name_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/old_snapshot/meson.build b/contrib/old_snapshot/meson.build
index 8e7ee09a43a..77276c3715a 100644
--- a/contrib/old_snapshot/meson.build
+++ b/contrib/old_snapshot/meson.build
@@ -2,6 +2,12 @@ old_snapshot_sources = files(
'time_mapping.c',
)
+if host_system == 'windows'
+ old_snapshot_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'old_snapshot',
+ '--FILEDESC', 'old_snapshot - utilities in support of old_snapshot_threshold',])
+endif
+
old_snapshot = shared_module('old_snapshot',
old_snapshot_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/pageinspect/meson.build b/contrib/pageinspect/meson.build
index 4af8153e4fd..3ec50b9445e 100644
--- a/contrib/pageinspect/meson.build
+++ b/contrib/pageinspect/meson.build
@@ -9,6 +9,12 @@ pageinspect_sources = files(
'rawpage.c',
)
+if host_system == 'windows'
+ pageinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pageinspect',
+ '--FILEDESC', 'pageinspect - functions to inspect contents of database pages',])
+endif
+
pageinspect = shared_module('pageinspect',
pageinspect_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/passwordcheck/meson.build b/contrib/passwordcheck/meson.build
index 7da47d02f1d..383d7df372a 100644
--- a/contrib/passwordcheck/meson.build
+++ b/contrib/passwordcheck/meson.build
@@ -9,6 +9,12 @@ passwordcheck_deps = []
# passwordcheck_c_args += ['-DUSE_CRACKLIB', '-DCRACKLIB_DICTPATH="/usr/lib/cracklib_dict"']
# passwordcheck_deps += [cc.find_library('crack')]
+if host_system == 'windows'
+ passwordcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'passwordcheck',
+ '--FILEDESC', 'passwordcheck - strengthen user password checks',])
+endif
+
passwordcheck = shared_module('passwordcheck',
passwordcheck_sources,
c_args: passwordcheck_c_args,
diff --git a/contrib/pg_buffercache/meson.build b/contrib/pg_buffercache/meson.build
index 2c69eae3ea2..dd9948e5f0b 100644
--- a/contrib/pg_buffercache/meson.build
+++ b/contrib/pg_buffercache/meson.build
@@ -1,7 +1,15 @@
+pg_buffercache_sources = files(
+ 'pg_buffercache_pages.c',
+)
+
+if host_system == 'windows'
+ pg_buffercache_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_buffercache',
+ '--FILEDESC', 'pg_buffercache - monitoring of shared buffer cache in real-time',])
+endif
+
pg_buffercache = shared_module('pg_buffercache',
- files(
- 'pg_buffercache_pages.c',
- ),
+ pg_buffercache_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_buffercache
diff --git a/contrib/pg_freespacemap/meson.build b/contrib/pg_freespacemap/meson.build
index f795014d7ca..904b37b6e9b 100644
--- a/contrib/pg_freespacemap/meson.build
+++ b/contrib/pg_freespacemap/meson.build
@@ -1,7 +1,15 @@
+pg_freespacemap_sources = files(
+ 'pg_freespacemap.c',
+)
+
+if host_system == 'windows'
+ pg_freespacemap_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_freespacemap',
+ '--FILEDESC', 'pg_freespacemap - monitoring of free space map',])
+endif
+
pg_freespacemap = shared_module('pg_freespacemap',
- files(
- 'pg_freespacemap.c',
- ),
+ pg_freespacemap_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_freespacemap
diff --git a/contrib/pg_prewarm/meson.build b/contrib/pg_prewarm/meson.build
index bdca9af4f27..b7140cee34b 100644
--- a/contrib/pg_prewarm/meson.build
+++ b/contrib/pg_prewarm/meson.build
@@ -1,8 +1,16 @@
+pg_prewarm_sources = files(
+ 'autoprewarm.c',
+ 'pg_prewarm.c',
+)
+
+if host_system == 'windows'
+ pg_prewarm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_prewarm',
+ '--FILEDESC', 'pg_prewarm - preload relation data into system buffer cache',])
+endif
+
pg_prewarm = shared_module('pg_prewarm',
- files(
- 'autoprewarm.c',
- 'pg_prewarm.c',
- ),
+ pg_prewarm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_prewarm
diff --git a/contrib/pg_stat_statements/meson.build b/contrib/pg_stat_statements/meson.build
index ac117d2fc1d..854df138e76 100644
--- a/contrib/pg_stat_statements/meson.build
+++ b/contrib/pg_stat_statements/meson.build
@@ -1,5 +1,15 @@
+pg_stat_statements_sources = files(
+ 'pg_stat_statements.c',
+)
+
+if host_system == 'windows'
+ pg_stat_statements_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_stat_statements',
+ '--FILEDESC', 'pg_stat_statements - execution statistics of SQL statements',])
+endif
+
pg_stat_statements = shared_module('pg_stat_statements',
- files('pg_stat_statements.c'),
+ pg_stat_statements_sources,
kwargs: contrib_mod_args + {
'dependencies': contrib_mod_args['dependencies'],
},
diff --git a/contrib/pg_surgery/meson.build b/contrib/pg_surgery/meson.build
index ac71caa5276..7b5c5999f4b 100644
--- a/contrib/pg_surgery/meson.build
+++ b/contrib/pg_surgery/meson.build
@@ -1,7 +1,15 @@
+pg_surgery_sources = files(
+ 'heap_surgery.c',
+)
+
+if host_system == 'windows'
+ pg_surgery_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_surgery',
+ '--FILEDESC', 'pg_surgery - perform surgery on a damaged relation',])
+endif
+
pg_surgery = shared_module('pg_surgery',
- files(
- 'heap_surgery.c',
- ),
+ pg_surgery_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_surgery
diff --git a/contrib/pg_trgm/meson.build b/contrib/pg_trgm/meson.build
index a90628d23c6..c8c7c07b308 100644
--- a/contrib/pg_trgm/meson.build
+++ b/contrib/pg_trgm/meson.build
@@ -1,10 +1,18 @@
+pg_trgm_sources = files(
+ 'trgm_gin.c',
+ 'trgm_gist.c',
+ 'trgm_op.c',
+ 'trgm_regexp.c',
+)
+
+if host_system == 'windows'
+ pg_trgm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_trgm',
+ '--FILEDESC', 'pg_trgm - trigram matching',])
+endif
+
pg_trgm = shared_module('pg_trgm',
- files(
- 'trgm_gin.c',
- 'trgm_gist.c',
- 'trgm_op.c',
- 'trgm_regexp.c',
- ),
+ pg_trgm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_trgm
diff --git a/contrib/pg_visibility/meson.build b/contrib/pg_visibility/meson.build
index 933dc99ac4d..263a0d08b82 100644
--- a/contrib/pg_visibility/meson.build
+++ b/contrib/pg_visibility/meson.build
@@ -1,7 +1,15 @@
+pg_visibility_sources = files(
+ 'pg_visibility.c',
+)
+
+if host_system == 'windows'
+ pg_visibility_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_visibility',
+ '--FILEDESC', 'pg_visibility - page visibility information',])
+endif
+
pg_visibility = shared_module('pg_visibility',
- files(
- 'pg_visibility.c',
- ),
+ pg_visibility_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_visibility
diff --git a/contrib/pg_walinspect/meson.build b/contrib/pg_walinspect/meson.build
index d6b27877dd0..4314a3182a2 100644
--- a/contrib/pg_walinspect/meson.build
+++ b/contrib/pg_walinspect/meson.build
@@ -1,5 +1,11 @@
pg_walinspect_sources = files('pg_walinspect.c')
+if host_system == 'windows'
+ pg_walinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_walinspect',
+ '--FILEDESC', 'pg_walinspect - functions to inspect contents of PostgreSQL Write-Ahead Log',])
+endif
+
pg_walinspect = shared_module('pg_walinspect',
pg_walinspect_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/pgcrypto/meson.build b/contrib/pgcrypto/meson.build
index fe0851bf8e8..7fc7bbc7ca1 100644
--- a/contrib/pgcrypto/meson.build
+++ b/contrib/pgcrypto/meson.build
@@ -69,6 +69,12 @@ else
pgcrypto_regress += 'pgp-zlib-DISABLED'
endif
+if host_system == 'windows'
+ pgcrypto_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgcrypto',
+ '--FILEDESC', 'pgcrypto - cryptographic functions',])
+endif
+
pgcrypto = shared_module('pgcrypto',
pgcrypto_sources,
link_with: pgcrypto_link_with,
diff --git a/contrib/pgrowlocks/meson.build b/contrib/pgrowlocks/meson.build
index 1b41691a2a3..8092f0d4a64 100644
--- a/contrib/pgrowlocks/meson.build
+++ b/contrib/pgrowlocks/meson.build
@@ -1,7 +1,15 @@
+pgrowlocks_sources = files(
+ 'pgrowlocks.c',
+)
+
+if host_system == 'windows'
+ pgrowlocks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgrowlocks',
+ '--FILEDESC', 'pgrowlocks - display row locking information',])
+endif
+
pgrowlocks = shared_module('pgrowlocks',
- files(
- 'pgrowlocks.c',
- ),
+ pgrowlocks_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgrowlocks
diff --git a/contrib/pgstattuple/meson.build b/contrib/pgstattuple/meson.build
index 8e828692d5c..05e4cd46a5c 100644
--- a/contrib/pgstattuple/meson.build
+++ b/contrib/pgstattuple/meson.build
@@ -1,9 +1,17 @@
+pgstattuple_sources = files(
+ 'pgstatapprox.c',
+ 'pgstatindex.c',
+ 'pgstattuple.c',
+)
+
+if host_system == 'windows'
+ pgstattuple_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgstattuple',
+ '--FILEDESC', 'pgstattuple - tuple-level statistics',])
+endif
+
pgstattuple = shared_module('pgstattuple',
- files(
- 'pgstatapprox.c',
- 'pgstatindex.c',
- 'pgstattuple.c',
- ),
+ pgstattuple_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgstattuple
diff --git a/contrib/postgres_fdw/meson.build b/contrib/postgres_fdw/meson.build
index 378885ec93b..d3746ff135c 100644
--- a/contrib/postgres_fdw/meson.build
+++ b/contrib/postgres_fdw/meson.build
@@ -6,6 +6,12 @@ postgres_fdw_sources = files(
'shippable.c',
)
+if host_system == 'windows'
+ postgres_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'postgres_fdw',
+ '--FILEDESC', 'postgres_fdw - foreign data wrapper for PostgreSQL',])
+endif
+
postgres_fdw = shared_module('postgres_fdw',
postgres_fdw_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/seg/meson.build b/contrib/seg/meson.build
index e476eab2a77..c6fbb22999b 100644
--- a/contrib/seg/meson.build
+++ b/contrib/seg/meson.build
@@ -17,6 +17,12 @@ seg_parse = custom_target('segparse',
generated_sources += seg_parse.to_list()
seg_sources += seg_parse
+if host_system == 'windows'
+ seg_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'seg',
+ '--FILEDESC', 'seg - line segment data type',])
+endif
+
seg = shared_module('seg',
seg_sources,
include_directories: include_directories('.'),
diff --git a/contrib/sepgsql/meson.build b/contrib/sepgsql/meson.build
index 60a95e17c2f..8bef239e3c2 100644
--- a/contrib/sepgsql/meson.build
+++ b/contrib/sepgsql/meson.build
@@ -14,6 +14,12 @@ sepgsql_sources = files(
'uavc.c',
)
+if host_system == 'windows'
+ sepgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sepgsql',
+ '--FILEDESC', 'sepgsql - SELinux integration',])
+endif
+
sepgsql = shared_module('sepgsql',
sepgsql_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build
index 98008980ec2..e7d78189ef5 100644
--- a/contrib/spi/meson.build
+++ b/contrib/spi/meson.build
@@ -1,5 +1,15 @@
+autoinc_sources = files(
+ 'autoinc.c',
+)
+
+if host_system == 'windows'
+ autoinc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'autoinc',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
autoinc = shared_module('autoinc',
- ['autoinc.c'],
+ autoinc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
@@ -9,8 +19,18 @@ install_data('autoinc.control', 'autoinc--1.0.sql',
)
+insert_username_sources = files(
+ 'insert_username.c',
+)
+
+if host_system == 'windows'
+ insert_username_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'insert_username',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
insert_username = shared_module('insert_username',
- ['insert_username.c'],
+ insert_username_sources,
kwargs: contrib_mod_args,
)
contrib_targets += insert_username
@@ -22,8 +42,18 @@ install_data(
)
+moddatetime_sources = files(
+ 'moddatetime.c',
+)
+
+if host_system == 'windows'
+ moddatetime_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'moddatetime',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
moddatetime = shared_module('moddatetime',
- ['moddatetime.c'],
+ moddatetime_sources,
kwargs: contrib_mod_args,
)
contrib_targets += moddatetime
@@ -38,8 +68,18 @@ install_data(
# comment out if you want a quieter refint package for other uses
refint_cflags = ['-DREFINT_VERBOSE']
+refint_sources = files(
+ 'refint.c',
+)
+
+if host_system == 'windows'
+ refint_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'refint',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
refint = shared_module('refint',
- ['refint.c'],
+ refint_sources,
c_args: refint_cflags,
kwargs: contrib_mod_args,
)
diff --git a/contrib/sslinfo/meson.build b/contrib/sslinfo/meson.build
index 53f752a08ac..136983e783d 100644
--- a/contrib/sslinfo/meson.build
+++ b/contrib/sslinfo/meson.build
@@ -2,10 +2,18 @@ if not ssl.found()
subdir_done()
endif
+sslinfo_sources = files(
+ 'sslinfo.c',
+)
+
+if host_system == 'windows'
+ sslinfo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sslinfo',
+ '--FILEDESC', 'sslinfo - information about client SSL certificate',])
+endif
+
sslinfo = shared_module('sslinfo',
- files(
- 'sslinfo.c',
- ),
+ sslinfo_sources,
kwargs: contrib_mod_args + {
'dependencies': [ssl, contrib_mod_args['dependencies']],
}
diff --git a/contrib/tablefunc/meson.build b/contrib/tablefunc/meson.build
index f4230096c0c..d2ddc8d3b39 100644
--- a/contrib/tablefunc/meson.build
+++ b/contrib/tablefunc/meson.build
@@ -1,7 +1,15 @@
+tablefunc_sources = files(
+ 'tablefunc.c',
+)
+
+if host_system == 'windows'
+ tablefunc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tablefunc',
+ '--FILEDESC', 'tablefunc - various functions that return tables',])
+endif
+
tablefunc = shared_module('tablefunc',
- files(
- 'tablefunc.c',
- ),
+ tablefunc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tablefunc
diff --git a/contrib/tcn/meson.build b/contrib/tcn/meson.build
index c3a025247d4..71261c3b0a2 100644
--- a/contrib/tcn/meson.build
+++ b/contrib/tcn/meson.build
@@ -1,7 +1,15 @@
+tcn_sources = files(
+ 'tcn.c',
+)
+
+if host_system == 'windows'
+ tcn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tcn',
+ '--FILEDESC', 'tcn - trigger function notifying listeners',])
+endif
+
tcn = shared_module('tcn',
- files(
- 'tcn.c',
- ),
+ tcn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tcn
diff --git a/contrib/test_decoding/meson.build b/contrib/test_decoding/meson.build
index dd7cb0101ad..6376103c689 100644
--- a/contrib/test_decoding/meson.build
+++ b/contrib/test_decoding/meson.build
@@ -2,6 +2,12 @@ test_decoding_sources = files(
'test_decoding.c',
)
+if host_system == 'windows'
+ test_decoding_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_decoding',
+ '--FILEDESC', 'test_decoding - example of a logical decoding output plugin',])
+endif
+
test_decoding = shared_module('test_decoding',
test_decoding_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/tsm_system_rows/meson.build b/contrib/tsm_system_rows/meson.build
index b9cd42115a8..380abb49883 100644
--- a/contrib/tsm_system_rows/meson.build
+++ b/contrib/tsm_system_rows/meson.build
@@ -1,7 +1,15 @@
+tsm_system_rows_sources = files(
+ 'tsm_system_rows.c',
+)
+
+if host_system == 'windows'
+ tsm_system_rows_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_rows',
+ '--FILEDESC', 'tsm_system_rows - TABLESAMPLE method which accepts number of rows as a limit',])
+endif
+
tsm_system_rows = shared_module('tsm_system_rows',
- files(
- 'tsm_system_rows.c',
- ),
+ tsm_system_rows_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_rows
diff --git a/contrib/tsm_system_time/meson.build b/contrib/tsm_system_time/meson.build
index 18015912ffb..e57a2702c60 100644
--- a/contrib/tsm_system_time/meson.build
+++ b/contrib/tsm_system_time/meson.build
@@ -1,7 +1,15 @@
+tsm_system_time_sources = files(
+ 'tsm_system_time.c',
+)
+
+if host_system == 'windows'
+ tsm_system_time_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_time',
+ '--FILEDESC', 'tsm_system_time - TABLESAMPLE method which accepts time in milliseconds as a limit',])
+endif
+
tsm_system_time = shared_module('tsm_system_time',
- files(
- 'tsm_system_time.c',
- ),
+ tsm_system_time_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_time
diff --git a/contrib/unaccent/meson.build b/contrib/unaccent/meson.build
index 872b76e3223..438035132f8 100644
--- a/contrib/unaccent/meson.build
+++ b/contrib/unaccent/meson.build
@@ -1,7 +1,15 @@
+unaccent_sources = files(
+ 'unaccent.c',
+)
+
+if host_system == 'windows'
+ unaccent_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'unaccent',
+ '--FILEDESC', 'unaccent - text search dictionary that removes accents',])
+endif
+
unaccent = shared_module('unaccent',
- files(
- 'unaccent.c',
- ),
+ unaccent_sources,
kwargs: contrib_mod_args,
)
contrib_targets += unaccent
diff --git a/contrib/uuid-ossp/meson.build b/contrib/uuid-ossp/meson.build
index da6d1d75c12..28730f398f0 100644
--- a/contrib/uuid-ossp/meson.build
+++ b/contrib/uuid-ossp/meson.build
@@ -2,10 +2,18 @@ if not uuid.found()
subdir_done()
endif
+uuid_ossp_sources = files(
+ 'uuid-ossp.c',
+)
+
+if host_system == 'windows'
+ uuid_ossp_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'uuid-ossp',
+ '--FILEDESC', 'uuid-ossp - UUID generation',])
+endif
+
uuid_ossp = shared_module('uuid-ossp',
- files(
- 'uuid-ossp.c',
- ),
+ uuid_ossp_sources,
kwargs: contrib_mod_args + {
'dependencies': [uuid, contrib_mod_args['dependencies']],
},
diff --git a/contrib/vacuumlo/meson.build b/contrib/vacuumlo/meson.build
index 7a632b87d1b..846de47dbd1 100644
--- a/contrib/vacuumlo/meson.build
+++ b/contrib/vacuumlo/meson.build
@@ -1,5 +1,15 @@
+vacuumlo_sources = files(
+ 'vacuumlo.c',
+)
+
+if host_system == 'windows'
+ vacuumlo_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'vacuumlo',
+ '--FILEDESC', 'vacuumlo - removes orphaned large objects',])
+endif
+
vacuumlo = executable('vacuumlo',
- ['vacuumlo.c'],
+ vacuumlo_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/xml2/meson.build b/contrib/xml2/meson.build
index 9c0b56f01f6..89b0d677516 100644
--- a/contrib/xml2/meson.build
+++ b/contrib/xml2/meson.build
@@ -2,11 +2,19 @@ if not libxml.found()
subdir_done()
endif
+xml2_sources = files(
+ 'xpath.c',
+ 'xslt_proc.c',
+)
+
+if host_system == 'windows'
+ xml2_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgxml',
+ '--FILEDESC', 'xml2 - XPath querying and XSLT',])
+endif
+
xml2 = shared_module('pgxml',
- files(
- 'xpath.c',
- 'xslt_proc.c',
- ),
+ xml2_sources,
kwargs: contrib_mod_args + {
'dependencies': [libxml, libxslt, contrib_mod_args['dependencies']],
},
diff --git a/src/interfaces/ecpg/compatlib/meson.build b/src/interfaces/ecpg/compatlib/meson.build
index 5887cb92b52..e5dc0edc04b 100644
--- a/src/interfaces/ecpg/compatlib/meson.build
+++ b/src/interfaces/ecpg/compatlib/meson.build
@@ -1,7 +1,11 @@
export_file = custom_target('libpq.exports', kwargs: gen_export_kwargs)
-ecpg_compat = both_libraries('libecpg_compat',
+ecpg_compat_sources = files(
'informix.c',
+)
+
+ecpg_compat = both_libraries('libecpg_compat',
+ ecpg_compat_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
c_args: ['-DSO_MAJOR_VERSION=3'],
dependencies: [frontend_code, thread_dep],
diff --git a/src/interfaces/ecpg/preproc/meson.build b/src/interfaces/ecpg/preproc/meson.build
index 1be49c8c27f..74876f039c9 100644
--- a/src/interfaces/ecpg/preproc/meson.build
+++ b/src/interfaces/ecpg/preproc/meson.build
@@ -93,6 +93,12 @@ ecpg_kwlist = custom_target('ecpg_kwlist_d.h',
generated_sources += ecpg_kwlist
ecpg_sources += ecpg_kwlist
+if host_system == 'windows'
+ ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ecpg',
+ '--FILEDESC', 'ecpg - embedded SQL precompiler for C',])
+endif
+
ecpg_exe = executable('ecpg',
ecpg_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
diff --git a/src/interfaces/ecpg/test/meson.build b/src/interfaces/ecpg/test/meson.build
index f0ace641f0c..f67f2dffb71 100644
--- a/src/interfaces/ecpg/test/meson.build
+++ b/src/interfaces/ecpg/test/meson.build
@@ -7,6 +7,12 @@ pg_regress_ecpg_sources = pg_regress_c + files(
'pg_regress_ecpg.c',
)
+if host_system == 'windows'
+ pg_regress_ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress_ecpg',
+ '--FILEDESC', 'ECPG Test - regression tests for ECPG',])
+endif
+
pg_regress_ecpg = executable('pg_regress_ecpg',
pg_regress_ecpg_sources,
c_args: pg_regress_cflags,
diff --git a/src/test/isolation/meson.build b/src/test/isolation/meson.build
index c7656fd4609..ba27b8c1d44 100644
--- a/src/test/isolation/meson.build
+++ b/src/test/isolation/meson.build
@@ -23,6 +23,12 @@ spec_parser = custom_target('specparse',
isolationtester_sources += spec_parser
generated_sources += spec_parser.to_list()
+if host_system == 'windows'
+ isolation_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_isolation_regress',
+ '--FILEDESC', 'pg_isolation_regress - multi-client test driver',])
+endif
+
pg_isolation_regress = executable('pg_isolation_regress',
isolation_sources,
c_args: pg_regress_cflags,
@@ -34,6 +40,13 @@ pg_isolation_regress = executable('pg_isolation_regress',
)
bin_targets += pg_isolation_regress
+
+if host_system == 'windows'
+ isolationtester_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isolationtester',
+ '--FILEDESC', 'isolationtester - multi-client test driver',])
+endif
+
isolationtester = executable('isolationtester',
isolationtester_sources,
include_directories: include_directories('.'),
diff --git a/src/test/modules/delay_execution/meson.build b/src/test/modules/delay_execution/meson.build
index cf4bdaba637..a0c3ab6afe7 100644
--- a/src/test/modules/delay_execution/meson.build
+++ b/src/test/modules/delay_execution/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+delay_execution_sources = files(
+ 'delay_execution.c',
+)
+
+if host_system == 'windows'
+ delay_execution_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'delay_execution',
+ '--FILEDESC', 'delay_execution - allow delay between parsing and execution',])
+endif
+
delay_execution = shared_module('delay_execution',
- ['delay_execution.c'],
+ delay_execution_sources,
kwargs: pg_mod_args,
)
testprep_targets += delay_execution
diff --git a/src/test/modules/dummy_index_am/meson.build b/src/test/modules/dummy_index_am/meson.build
index 56ff5f48001..4ce82491135 100644
--- a/src/test/modules/dummy_index_am/meson.build
+++ b/src/test/modules/dummy_index_am/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_index_am_sources = files(
+ 'dummy_index_am.c',
+)
+
+if host_system == 'windows'
+ dummy_index_am_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_index_am',
+ '--FILEDESC', 'dummy_index_am - index access method template',])
+endif
+
dummy_index_am = shared_module('dummy_index_am',
- ['dummy_index_am.c'],
+ dummy_index_am_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_index_am
diff --git a/src/test/modules/dummy_seclabel/meson.build b/src/test/modules/dummy_seclabel/meson.build
index 21b7cf8f353..81b626e496c 100644
--- a/src/test/modules/dummy_seclabel/meson.build
+++ b/src/test/modules/dummy_seclabel/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_seclabel_sources = files(
+ 'dummy_seclabel.c',
+)
+
+if host_system == 'windows'
+ dummy_seclabel_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_seclabel',
+ '--FILEDESC', 'dummy_seclabel - regression testing of the SECURITY LABEL statement',])
+endif
+
dummy_seclabel = shared_module('dummy_seclabel',
- ['dummy_seclabel.c'],
+ dummy_seclabel_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_seclabel
diff --git a/src/test/modules/libpq_pipeline/meson.build b/src/test/modules/libpq_pipeline/meson.build
index 8384b6e3b2a..de0e2d15626 100644
--- a/src/test/modules/libpq_pipeline/meson.build
+++ b/src/test/modules/libpq_pipeline/meson.build
@@ -1,7 +1,15 @@
+libpq_pipeline_sources = files(
+ 'libpq_pipeline.c',
+)
+
+if host_system == 'windows'
+ libpq_pipeline_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_pipeline',
+ '--FILEDESC', 'libpq_pipeline - test program for pipeline execution',])
+endif
+
libpq_pipeline = executable('libpq_pipeline',
- files(
- 'libpq_pipeline.c',
- ),
+ libpq_pipeline_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/test/modules/plsample/meson.build b/src/test/modules/plsample/meson.build
index 45de3f1990d..e1ea2c7a16f 100644
--- a/src/test/modules/plsample/meson.build
+++ b/src/test/modules/plsample/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+plsample_sources = files(
+ 'plsample.c',
+)
+
+if host_system == 'windows'
+ plsample_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plsample',
+ '--FILEDESC', 'PL/Sample - template for procedural language',])
+endif
+
plsample = shared_module('plsample',
- ['plsample.c'],
+ plsample_sources,
kwargs: pg_mod_args,
)
testprep_targets += plsample
diff --git a/src/test/modules/spgist_name_ops/meson.build b/src/test/modules/spgist_name_ops/meson.build
index 857fc7e140e..445296fee0b 100644
--- a/src/test/modules/spgist_name_ops/meson.build
+++ b/src/test/modules/spgist_name_ops/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+spgist_name_ops_sources = files(
+ 'spgist_name_ops.c',
+)
+
+if host_system == 'windows'
+ spgist_name_ops_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'spgist_name_ops',
+ '--FILEDESC', 'spgist_name_ops - test opclass for SP-GiST',])
+endif
+
spgist_name_ops = shared_module('spgist_name_ops',
- ['spgist_name_ops.c'],
+ spgist_name_ops_sources,
kwargs: pg_mod_args,
)
testprep_targets += spgist_name_ops
diff --git a/src/test/modules/ssl_passphrase_callback/meson.build b/src/test/modules/ssl_passphrase_callback/meson.build
index a57bd0693a3..a9eb4c564da 100644
--- a/src/test/modules/ssl_passphrase_callback/meson.build
+++ b/src/test/modules/ssl_passphrase_callback/meson.build
@@ -3,8 +3,19 @@ if not ssl.found()
endif
# FIXME: prevent install during main install, but not during test :/
+
+ssl_passphrase_callback_sources = files(
+ 'ssl_passphrase_func.c',
+)
+
+if host_system == 'windows'
+ ssl_passphrase_callback_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ssl_passphrase_func',
+ '--FILEDESC', 'callback function to provide a passphrase',])
+endif
+
ssl_passphrase_callback = shared_module('ssl_passphrase_func',
- ['ssl_passphrase_func.c'],
+ ssl_passphrase_callback_sources,
kwargs: pg_mod_args + {
'dependencies': [ssl, pg_mod_args['dependencies']],
},
diff --git a/src/test/modules/test_bloomfilter/meson.build b/src/test/modules/test_bloomfilter/meson.build
index 945eb5a70c4..3cf6b05754f 100644
--- a/src/test/modules/test_bloomfilter/meson.build
+++ b/src/test/modules/test_bloomfilter/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_bloomfilter_sources = files(
+ 'test_bloomfilter.c',
+)
+
+if host_system == 'windows'
+ test_bloomfilter_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_bloomfilter',
+ '--FILEDESC', 'test_bloomfilter - test code for Bloom filter library',])
+endif
+
test_bloomfilter = shared_module('test_bloomfilter',
- ['test_bloomfilter.c'],
+ test_bloomfilter_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_bloomfilter
diff --git a/src/test/modules/test_ddl_deparse/meson.build b/src/test/modules/test_ddl_deparse/meson.build
index 81ad5adc526..54d44f9b2b4 100644
--- a/src/test/modules/test_ddl_deparse/meson.build
+++ b/src/test/modules/test_ddl_deparse/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ddl_deparse_sources = files(
+ 'test_ddl_deparse.c',
+)
+
+if host_system == 'windows'
+ test_ddl_deparse_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ddl_deparse',
+ '--FILEDESC', 'test_ddl_deparse - regression testing for DDL deparsing',])
+endif
+
test_ddl_deparse = shared_module('test_ddl_deparse',
- ['test_ddl_deparse.c'],
+ test_ddl_deparse_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ddl_deparse
diff --git a/src/test/modules/test_ginpostinglist/meson.build b/src/test/modules/test_ginpostinglist/meson.build
index abf0a3b0430..b3b49c56122 100644
--- a/src/test/modules/test_ginpostinglist/meson.build
+++ b/src/test/modules/test_ginpostinglist/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ginpostinglist_sources = files(
+ 'test_ginpostinglist.c',
+)
+
+if host_system == 'windows'
+ test_ginpostinglist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ginpostinglist',
+ '--FILEDESC', 'test_ginpostinglist - test code for src/backend/access/gin//ginpostinglist.c',])
+endif
+
test_ginpostinglist = shared_module('test_ginpostinglist',
- ['test_ginpostinglist.c'],
+ test_ginpostinglist_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ginpostinglist
diff --git a/src/test/modules/test_integerset/meson.build b/src/test/modules/test_integerset/meson.build
index c32c469c69a..4bd75af4b5e 100644
--- a/src/test/modules/test_integerset/meson.build
+++ b/src/test/modules/test_integerset/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_integerset_sources = files(
+ 'test_integerset.c',
+)
+
+if host_system == 'windows'
+ test_integerset_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_integerset',
+ '--FILEDESC', 'test_integerset - test code for src/backend/lib/integerset.c',])
+endif
+
test_integerset = shared_module('test_integerset',
- ['test_integerset.c'],
+ test_integerset_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_integerset
diff --git a/src/test/modules/test_lfind/meson.build b/src/test/modules/test_lfind/meson.build
index a388de1156a..c5405b8f878 100644
--- a/src/test/modules/test_lfind/meson.build
+++ b/src/test/modules/test_lfind/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_lfind_sources = files(
+ 'test_lfind.c',
+)
+
+if host_system == 'windows'
+ test_lfind_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_lfind',
+ '--FILEDESC', 'test_lfind - test code for optimized linear search functions',])
+endif
+
test_lfind = shared_module('test_lfind',
- ['test_lfind.c'],
+ test_lfind_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_lfind
diff --git a/src/test/modules/test_oat_hooks/meson.build b/src/test/modules/test_oat_hooks/meson.build
index 5faf0459777..8802bbbac55 100644
--- a/src/test/modules/test_oat_hooks/meson.build
+++ b/src/test/modules/test_oat_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_oat_hooks_sources = files(
+ 'test_oat_hooks.c',
+)
+
+if host_system == 'windows'
+ test_oat_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_oat_hooks',
+ '--FILEDESC', 'test_oat_hooks - example use of object access hooks',])
+endif
+
test_oat_hooks = shared_module('test_oat_hooks',
- ['test_oat_hooks.c'],
+ test_oat_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_oat_hooks
diff --git a/src/test/modules/test_parser/meson.build b/src/test/modules/test_parser/meson.build
index b59960f615e..1c17113347f 100644
--- a/src/test/modules/test_parser/meson.build
+++ b/src/test/modules/test_parser/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_parser_sources = files(
+ 'test_parser.c',
+)
+
+if host_system == 'windows'
+ test_parser_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_parser',
+ '--FILEDESC', 'test_parser - example of a custom parser for full-text search',])
+endif
+
test_parser = shared_module('test_parser',
- ['test_parser.c'],
+ test_parser_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_parser
diff --git a/src/test/modules/test_predtest/meson.build b/src/test/modules/test_predtest/meson.build
index 1cfa84b3609..9a5be43c9c0 100644
--- a/src/test/modules/test_predtest/meson.build
+++ b/src/test/modules/test_predtest/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_predtest_sources = files(
+ 'test_predtest.c',
+)
+
+if host_system == 'windows'
+ test_predtest_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_predtest',
+ '--FILEDESC', 'test_predtest - test code for optimizer/util/predtest.c',])
+endif
+
test_predtest = shared_module('test_predtest',
- ['test_predtest.c'],
+ test_predtest_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_predtest
diff --git a/src/test/modules/test_rbtree/meson.build b/src/test/modules/test_rbtree/meson.build
index 34cbc3e1624..f067e08d321 100644
--- a/src/test/modules/test_rbtree/meson.build
+++ b/src/test/modules/test_rbtree/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rbtree_sources = files(
+ 'test_rbtree.c',
+)
+
+if host_system == 'windows'
+ test_rbtree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rbtree',
+ '--FILEDESC', 'test_rbtree - test code for red-black tree library',])
+endif
+
test_rbtree = shared_module('test_rbtree',
- ['test_rbtree.c'],
+ test_rbtree_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rbtree
diff --git a/src/test/modules/test_regex/meson.build b/src/test/modules/test_regex/meson.build
index 867a64e57c3..cfb938d9f1e 100644
--- a/src/test/modules/test_regex/meson.build
+++ b/src/test/modules/test_regex/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_regex_sources = files(
+ 'test_regex.c',
+)
+
+if host_system == 'windows'
+ test_regex_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_regex',
+ '--FILEDESC', 'test_regex - test code for backend/regex/',])
+endif
+
test_regex = shared_module('test_regex',
- ['test_regex.c'],
+ test_regex_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_regex
diff --git a/src/test/modules/test_rls_hooks/meson.build b/src/test/modules/test_rls_hooks/meson.build
index 80d8adda332..3fb273b2934 100644
--- a/src/test/modules/test_rls_hooks/meson.build
+++ b/src/test/modules/test_rls_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rls_hooks_sources = files(
+ 'test_rls_hooks.c',
+)
+
+if host_system == 'windows'
+ test_rls_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rls_hooks',
+ '--FILEDESC', 'test_rls_hooks - example use of RLS hooks',])
+endif
+
test_rls_hooks = shared_module('test_rls_hooks',
- ['test_rls_hooks.c'],
+ test_rls_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rls_hooks
diff --git a/src/test/modules/test_shm_mq/meson.build b/src/test/modules/test_shm_mq/meson.build
index b663543d616..16c8fdb57f4 100644
--- a/src/test/modules/test_shm_mq/meson.build
+++ b/src/test/modules/test_shm_mq/meson.build
@@ -1,10 +1,19 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_shm_mq_sources = files(
+ 'setup.c',
+ 'test.c',
+ 'worker.c',
+)
+
+if host_system == 'windows'
+ test_shm_mq_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_shm_mq',
+ '--FILEDESC', 'test_shm_mq - example use of shared memory message queue',])
+endif
+
test_shm_mq = shared_module('test_shm_mq',
- files(
- 'setup.c',
- 'test.c',
- 'worker.c',
- ),
+ test_shm_mq_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_shm_mq
diff --git a/src/test/modules/worker_spi/meson.build b/src/test/modules/worker_spi/meson.build
index 32acad883b2..a4a158c75b9 100644
--- a/src/test/modules/worker_spi/meson.build
+++ b/src/test/modules/worker_spi/meson.build
@@ -1,8 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_worker_spi_sources = files(
+ 'worker_spi.c',
+)
+
+if host_system == 'windows'
+ test_worker_spi_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'worker_spi',
+ '--FILEDESC', 'worker_spi - background worker example',])
+endif
+
test_worker_spi = shared_module('worker_spi',
- files(
- 'worker_spi.c',
- ),
+ test_worker_spi_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_worker_spi
diff --git a/src/test/regress/meson.build b/src/test/regress/meson.build
index fd8ee995b79..963c0f64ed5 100644
--- a/src/test/regress/meson.build
+++ b/src/test/regress/meson.build
@@ -8,6 +8,12 @@ regress_sources = pg_regress_c + files(
pg_regress_cflags = ['-DHOST_TUPLE="frak"', '-DSHELLPROG="/bin/sh"']
+if host_system == 'windows'
+ regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress',
+ '--FILEDESC', 'pg_regress - test driver',])
+endif
+
pg_regress = executable('pg_regress',
regress_sources,
c_args: pg_regress_cflags,
diff --git a/meson.build b/meson.build
index 6ffae59ba03..4ad06b25213 100644
--- a/meson.build
+++ b/meson.build
@@ -2523,6 +2523,67 @@ gen_export_kwargs = {
+###
+### windows resources related stuff
+###
+
+if host_system == 'windows'
+ pg_ico = meson.source_root() / 'src' / 'port' / 'win32.ico'
+ win32ver_rc = files('src/port/win32ver.rc')
+ rcgen = find_program('src/tools/rcgen', native: true)
+
+ rcgen_base_args = [
+ '--srcdir', '@SOURCE_DIR@',
+ '--builddir', meson.build_root(),
+ '--rcout', '@OUTPUT0@',
+ '--out', '@OUTPUT1@',
+ '--input', '@INPUT@',
+ '@EXTRA_ARGS@',
+ ]
+
+ if cc.get_argument_syntax() == 'msvc'
+ rcgen_base_args += [
+ '--rc', find_program('rc', required: true).path(),
+ ]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ else
+ rcgen_base_args += [
+ '--windres', find_program('windres', required: true).path(),
+ ]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ endif
+
+ # msbuild backend doesn't support this atm
+ if meson.backend() == 'ninja'
+ rcgen_base_args += ['--depfile', '@DEPFILE@']
+ endif
+
+ rcgen_bin_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_APP',
+ '--FILEENDING', 'exe',
+ '--ICO', pg_ico
+ ]
+
+ rcgen_lib_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_DLL',
+ '--FILEENDING', 'dll',
+ ]
+
+ rc_bin_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_bin_args,
+ output: rcgen_outputs,
+ )
+
+ rc_lib_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_lib_args,
+ output: rcgen_outputs,
+ )
+endif
+
+
+
# headers that the whole build tree depends on
generated_headers = []
# headers that the backend build depends on
diff --git a/src/timezone/meson.build b/src/timezone/meson.build
index 16f082ecfa8..9e0934c000b 100644
--- a/src/timezone/meson.build
+++ b/src/timezone/meson.build
@@ -28,6 +28,12 @@ if get_option('system_tzdata') == ''
if meson.is_cross_build()
zic = find_program(get_option('ZIC'), native: true, required: true)
else
+ if host_system == 'windows'
+ zic_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'zic',
+ '--FILEDESC', 'zic - time zone compiler',])
+ endif
+
zic = executable('zic', zic_sources,
dependencies: [frontend_code],
kwargs: default_bin_args + {'install': false}
diff --git a/src/tools/rcgen b/src/tools/rcgen
new file mode 100755
index 00000000000..5b62bfe5410
--- /dev/null
+++ b/src/tools/rcgen
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+
+import argparse
+import os
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description='generate PostgreSQL rc file')
+
+parser.add_argument('--srcdir', type=os.path.abspath,
+ required=True)
+parser.add_argument('--builddir', type=os.path.abspath,
+ required=True)
+
+binaries = parser.add_argument_group('binaries')
+binaries.add_argument('--windres', type=os.path.abspath)
+binaries.add_argument('--rc', type=os.path.abspath)
+
+inout = parser.add_argument_group('inout')
+inout.add_argument('--depfile', type=argparse.FileType('w'))
+inout.add_argument('--input', type=argparse.FileType('r'),
+ required=True)
+inout.add_argument('--rcout', type=argparse.FileType('w'),
+ required=True)
+inout.add_argument('--out', type=str,
+ required=True)
+
+replacements = parser.add_argument_group('replacements')
+replacements.add_argument('--FILEDESC', type=str)
+replacements.add_argument('--NAME', type=str, required=True)
+replacements.add_argument('--VFT_TYPE', type=str, required=True)
+replacements.add_argument('--FILEENDING', type=str, required=True)
+replacements.add_argument('--ICO', type=str)
+
+args = parser.parse_args()
+
+# determine replacement strings
+
+internal_name = '"{0}"'.format(args.NAME)
+original_name = '"{0}.{1}"'.format(args.NAME, args.FILEENDING)
+
+# if no description is passed in, generate one based on the name
+if args.FILEDESC:
+ filedesc = args.FILEDESC
+elif args.NAME:
+ if args.VFT_TYPE == 'VFT_DLL':
+ filedesc = 'PostgreSQL {0} library'.format(args.NAME)
+ else:
+ filedesc = 'PostgreSQL {0} binary'.format(args.NAME)
+filedesc = '"{0}"'.format(filedesc)
+
+
+if args.ICO:
+ ico = 'IDI_ICON ICON "{0}"'.format(args.ICO)
+ if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(args.rcout.name, args.ICO))
+else:
+ ico = ''
+
+
+data = args.input.read()
+
+data = data.replace('VFT_APP', args.VFT_TYPE)
+data = data.replace('_INTERNAL_NAME_', internal_name)
+data = data.replace('_ORIGINAL_NAME_', original_name)
+data = data.replace('FILEDESC', filedesc)
+data = data.replace("_ICO_", ico)
+
+args.rcout.write(data)
+args.rcout.close()
+
+if args.windres:
+ cmd = [
+ args.windres,
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '-o', args.out, '-i', args.rcout.name,
+ ]
+elif args.rc:
+ cmd = [
+ args.rc, '/nologo',
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '/fo', args.out, args.rcout.name,
+ ]
+else:
+ sys.exit('either --windres or --rc needs to be specified')
+
+sp = subprocess.run(cmd)
+if sp.returncode != 0:
+ sys.exit(sp.returncode)
+
+# It'd be nicer if we could generate correct dependencies here, but 'rc'
+# doesn't support doing so. It's unlikely we'll ever need more, so...
+if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(
+ args.rcout.name, args.input.name))
+ args.depfile.write("{0} : {1}/{2}\n".format(
+ args.out, args.builddir, 'src/include/pg_config.h'))
--
2.37.3.542.gdd3f6c4cae
--ayx3t42hstokjw3l
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
filename="v15-0006-meson-Add-support-for-relative-rpaths-fixing-tes.patch"
^ permalink raw reply [nested|flat] 18+ messages in thread
* [PATCH v17 06/23] meson: Add windows resource files
@ 2022-09-26 17:32 Andres Freund <[email protected]>
0 siblings, 0 replies; 18+ messages in thread
From: Andres Freund @ 2022-09-26 17:32 UTC (permalink / raw)
The generated resource files aren't exactly the same ones as the old
buildsystems generate. Previously "InternalName" and "OriginalFileName" were
mostly wrong / not set (despite being required), but that was hard to fix in
at least the make build. Additionally, the meson build falls back to a
"auto-generated" description when not set, and doesn't set it in a few cases -
unlikely that anybody looks at these descriptions in detail.
Author: Andres Freund <[email protected]>
Author: Nazir Bilal Yavuz <[email protected]>
---
src/backend/jit/llvm/meson.build | 6 ++
.../replication/libpqwalreceiver/meson.build | 6 ++
src/backend/replication/pgoutput/meson.build | 6 ++
src/backend/snowball/meson.build | 6 ++
.../utils/mb/conversion_procs/meson.build | 9 +-
src/bin/initdb/meson.build | 6 ++
src/bin/pg_amcheck/meson.build | 8 +-
src/bin/pg_archivecleanup/meson.build | 12 ++-
src/bin/pg_basebackup/meson.build | 38 ++++++-
src/bin/pg_checksums/meson.build | 12 ++-
src/bin/pg_config/meson.build | 12 ++-
src/bin/pg_controldata/meson.build | 12 ++-
src/bin/pg_ctl/meson.build | 12 ++-
src/bin/pg_dump/meson.build | 18 ++++
src/bin/pg_resetwal/meson.build | 12 ++-
src/bin/pg_rewind/meson.build | 6 ++
src/bin/pg_test_fsync/meson.build | 10 +-
src/bin/pg_test_timing/meson.build | 12 ++-
src/bin/pg_upgrade/meson.build | 6 ++
src/bin/pg_verifybackup/meson.build | 6 ++
src/bin/pg_waldump/meson.build | 6 ++
src/bin/pgbench/meson.build | 6 ++
src/bin/pgevent/meson.build | 6 ++
src/bin/psql/meson.build | 6 ++
src/bin/scripts/meson.build | 10 +-
src/interfaces/libpq/meson.build | 5 +
src/interfaces/libpq/test/meson.build | 25 ++++-
src/pl/plperl/meson.build | 7 ++
src/pl/plpgsql/src/meson.build | 6 ++
src/pl/plpython/meson.build | 6 ++
src/pl/tcl/meson.build | 6 ++
contrib/adminpack/meson.build | 12 ++-
contrib/amcheck/meson.build | 17 +++-
contrib/auth_delay/meson.build | 12 ++-
contrib/auto_explain/meson.build | 12 ++-
contrib/basebackup_to_shell/meson.build | 6 ++
contrib/basic_archive/meson.build | 6 ++
contrib/bloom/meson.build | 6 ++
contrib/bool_plperl/meson.build | 6 ++
contrib/btree_gin/meson.build | 12 ++-
contrib/btree_gist/meson.build | 6 ++
contrib/citext/meson.build | 6 ++
contrib/cube/meson.build | 6 ++
contrib/dblink/meson.build | 6 ++
contrib/dict_int/meson.build | 12 ++-
contrib/dict_xsyn/meson.build | 12 ++-
contrib/earthdistance/meson.build | 12 ++-
contrib/file_fdw/meson.build | 12 ++-
contrib/fuzzystrmatch/meson.build | 16 ++-
contrib/hstore/meson.build | 24 +++--
contrib/hstore_plperl/meson.build | 6 ++
contrib/hstore_plpython/meson.build | 6 ++
contrib/intarray/meson.build | 6 ++
contrib/isn/meson.build | 6 ++
contrib/jsonb_plperl/meson.build | 6 ++
contrib/jsonb_plpython/meson.build | 6 ++
contrib/lo/meson.build | 6 ++
contrib/ltree/meson.build | 6 ++
contrib/ltree_plpython/meson.build | 6 ++
contrib/oid2name/meson.build | 12 ++-
contrib/old_snapshot/meson.build | 6 ++
contrib/pageinspect/meson.build | 6 ++
contrib/passwordcheck/meson.build | 6 ++
contrib/pg_buffercache/meson.build | 14 ++-
contrib/pg_freespacemap/meson.build | 14 ++-
contrib/pg_prewarm/meson.build | 16 ++-
contrib/pg_stat_statements/meson.build | 12 ++-
contrib/pg_surgery/meson.build | 14 ++-
contrib/pg_trgm/meson.build | 20 ++--
contrib/pg_visibility/meson.build | 14 ++-
contrib/pg_walinspect/meson.build | 6 ++
contrib/pgcrypto/meson.build | 6 ++
contrib/pgrowlocks/meson.build | 14 ++-
contrib/pgstattuple/meson.build | 18 +++-
contrib/postgres_fdw/meson.build | 6 ++
contrib/seg/meson.build | 6 ++
contrib/sepgsql/meson.build | 6 ++
contrib/spi/meson.build | 48 ++++++++-
contrib/sslinfo/meson.build | 14 ++-
contrib/tablefunc/meson.build | 14 ++-
contrib/tcn/meson.build | 14 ++-
contrib/test_decoding/meson.build | 6 ++
contrib/tsm_system_rows/meson.build | 14 ++-
contrib/tsm_system_time/meson.build | 14 ++-
contrib/unaccent/meson.build | 14 ++-
contrib/uuid-ossp/meson.build | 14 ++-
contrib/vacuumlo/meson.build | 12 ++-
contrib/xml2/meson.build | 16 ++-
src/interfaces/ecpg/compatlib/meson.build | 6 ++
src/interfaces/ecpg/ecpglib/meson.build | 6 ++
src/interfaces/ecpg/pgtypeslib/meson.build | 6 ++
src/interfaces/ecpg/preproc/meson.build | 6 ++
src/interfaces/ecpg/test/meson.build | 5 +
src/test/isolation/meson.build | 13 +++
src/test/modules/delay_execution/meson.build | 13 ++-
src/test/modules/dummy_index_am/meson.build | 13 ++-
src/test/modules/dummy_seclabel/meson.build | 13 ++-
src/test/modules/libpq_pipeline/meson.build | 14 ++-
src/test/modules/plsample/meson.build | 13 ++-
src/test/modules/spgist_name_ops/meson.build | 13 ++-
.../ssl_passphrase_callback/meson.build | 13 ++-
src/test/modules/test_bloomfilter/meson.build | 13 ++-
src/test/modules/test_ddl_deparse/meson.build | 13 ++-
.../modules/test_ginpostinglist/meson.build | 13 ++-
src/test/modules/test_integerset/meson.build | 13 ++-
src/test/modules/test_lfind/meson.build | 13 ++-
src/test/modules/test_oat_hooks/meson.build | 13 ++-
src/test/modules/test_parser/meson.build | 13 ++-
src/test/modules/test_predtest/meson.build | 13 ++-
src/test/modules/test_rbtree/meson.build | 13 ++-
src/test/modules/test_regex/meson.build | 13 ++-
src/test/modules/test_rls_hooks/meson.build | 13 ++-
src/test/modules/test_shm_mq/meson.build | 19 +++-
src/test/modules/worker_spi/meson.build | 15 ++-
src/test/regress/meson.build | 6 ++
meson.build | 59 +++++++++++
src/timezone/meson.build | 6 ++
src/tools/rcgen | 99 +++++++++++++++++++
118 files changed, 1286 insertions(+), 130 deletions(-)
create mode 100755 src/tools/rcgen
diff --git a/src/backend/jit/llvm/meson.build b/src/backend/jit/llvm/meson.build
index de2e624ab58..5fb63768358 100644
--- a/src/backend/jit/llvm/meson.build
+++ b/src/backend/jit/llvm/meson.build
@@ -20,6 +20,12 @@ llvmjit_sources += files(
'llvmjit_expr.c',
)
+if host_system == 'windows'
+ llvmjit_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'llvmjit',
+ '--FILEDESC', 'llvmjit - JIT using LLVM',])
+endif
+
llvmjit = shared_module('llvmjit',
llvmjit_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/libpqwalreceiver/meson.build b/src/backend/replication/libpqwalreceiver/meson.build
index 3fc786c80a0..4c653a05d36 100644
--- a/src/backend/replication/libpqwalreceiver/meson.build
+++ b/src/backend/replication/libpqwalreceiver/meson.build
@@ -2,6 +2,12 @@ libpqwalreceiver_sources = files(
'libpqwalreceiver.c',
)
+if host_system == 'windows'
+ libpqwalreceiver_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pqwalreceiver',
+ '--FILEDESC', 'libpqwalreceiver - receive WAL during streaming replication',])
+endif
+
libpqwalreceiver = shared_module('pqwalreceiver',
libpqwalreceiver_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/pgoutput/meson.build b/src/backend/replication/pgoutput/meson.build
index ab956361a62..5df27d7b764 100644
--- a/src/backend/replication/pgoutput/meson.build
+++ b/src/backend/replication/pgoutput/meson.build
@@ -2,6 +2,12 @@ pgoutput_sources = files(
'pgoutput.c',
)
+if host_system == 'windows'
+ pgoutput_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgoutput',
+ '--FILEDESC', 'pgoutput - standard logical replication output plugin',])
+endif
+
pgoutput = shared_module('pgoutput',
pgoutput_sources,
kwargs: pg_mod_args,
diff --git a/src/backend/snowball/meson.build b/src/backend/snowball/meson.build
index 8c6f685cb32..974401d187e 100644
--- a/src/backend/snowball/meson.build
+++ b/src/backend/snowball/meson.build
@@ -58,6 +58,12 @@ dict_snowball_sources += files(
# see comment in src/include/snowball/header.h
stemmer_inc = include_directories('../../include/snowball')
+if host_system == 'windows'
+ dict_snowball_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_snowball',
+ '--FILEDESC', 'snowball - natural language stemmers',])
+endif
+
dict_snowball = shared_module('dict_snowball',
dict_snowball_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/utils/mb/conversion_procs/meson.build b/src/backend/utils/mb/conversion_procs/meson.build
index 1bc971d1945..1c18f2ac85a 100644
--- a/src/backend/utils/mb/conversion_procs/meson.build
+++ b/src/backend/utils/mb/conversion_procs/meson.build
@@ -29,8 +29,15 @@ encodings = {
}
foreach encoding, sources : encodings
+ source_files = files(sources)
+
+ if host_system == 'windows'
+ source_files += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', encoding])
+ endif
+
backend_targets += shared_module(encoding,
- sources,
+ source_files,
kwargs: pg_mod_args,
)
endforeach
diff --git a/src/bin/initdb/meson.build b/src/bin/initdb/meson.build
index 9f213274d2f..6ced9a31b80 100644
--- a/src/bin/initdb/meson.build
+++ b/src/bin/initdb/meson.build
@@ -7,6 +7,12 @@ initdb_sources += timezone_localtime_source
#fixme: reimplement libpq_pgport logic
+if host_system == 'windows'
+ initdb_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'initdb',
+ '--FILEDESC', 'initdb - initialize a new database cluster',])
+endif
+
initdb = executable('initdb',
initdb_sources,
include_directories: [timezone_inc],
diff --git a/src/bin/pg_amcheck/meson.build b/src/bin/pg_amcheck/meson.build
index 8e197eba5f3..25f5e7a0948 100644
--- a/src/bin/pg_amcheck/meson.build
+++ b/src/bin/pg_amcheck/meson.build
@@ -1,7 +1,13 @@
pg_amcheck_sources = files(
- 'pg_amcheck.c'
+ 'pg_amcheck.c',
)
+if host_system == 'windows'
+ pg_amcheck_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_amcheck',
+ '--FILEDESC', 'pg_amcheck - detect corruption within database relations',])
+endif
+
pg_amcheck = executable('pg_amcheck',
pg_amcheck_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_archivecleanup/meson.build b/src/bin/pg_archivecleanup/meson.build
index 87a0d980c4f..aaa2e76977f 100644
--- a/src/bin/pg_archivecleanup/meson.build
+++ b/src/bin/pg_archivecleanup/meson.build
@@ -1,5 +1,15 @@
+pg_archivecleanup_sources = files(
+ 'pg_archivecleanup.c',
+)
+
+if host_system == 'windows'
+ pg_archivecleanup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_archivecleanup',
+ '--FILEDESC', 'pg_archivecleanup - cleans archive when used with streaming replication',])
+endif
+
pg_archivecleanup = executable('pg_archivecleanup',
- ['pg_archivecleanup.c'],
+ pg_archivecleanup_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_basebackup/meson.build b/src/bin/pg_basebackup/meson.build
index d26fed9cd8a..2c934e0c26e 100644
--- a/src/bin/pg_basebackup/meson.build
+++ b/src/bin/pg_basebackup/meson.build
@@ -17,24 +17,56 @@ pg_basebackup_common = static_library('libpg_basebackup_common',
kwargs: internal_lib_args,
)
-pg_basebackup = executable('pg_basebackup',
+pg_basebackup_sources = files(
'pg_basebackup.c',
+)
+
+if host_system == 'windows'
+ pg_basebackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_basebackup',
+ '--FILEDESC', 'pg_basebackup - streaming WAL and backup receivers',])
+endif
+
+pg_basebackup = executable('pg_basebackup',
+ pg_basebackup_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_basebackup
-pg_receivewal = executable('pg_receivewal',
+
+pg_receivewal_sources = files(
'pg_receivewal.c',
+)
+
+if host_system == 'windows'
+ pg_receivewal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_receivewal',
+ '--FILEDESC', 'pg_receivewal - streaming WAL and backup receivers',])
+endif
+
+pg_receivewal = executable('pg_receivewal',
+ pg_receivewal_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_receivewal
-pg_recvlogical = executable('pg_recvlogical',
+
+pg_recvlogical_sources = files(
'pg_recvlogical.c',
+)
+
+if host_system == 'windows'
+ pg_recvlogical_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_recvlogical',
+ '--FILEDESC', 'pg_recvlogical - streaming WAL and backup receivers',])
+endif
+
+pg_recvlogical = executable('pg_recvlogical',
+ pg_recvlogical_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
diff --git a/src/bin/pg_checksums/meson.build b/src/bin/pg_checksums/meson.build
index ee1f367bac3..d07ebc999b3 100644
--- a/src/bin/pg_checksums/meson.build
+++ b/src/bin/pg_checksums/meson.build
@@ -1,5 +1,15 @@
+pg_checksums_sources = files(
+ 'pg_checksums.c',
+)
+
+if host_system == 'windows'
+ pg_checksums_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_checksums',
+ '--FILEDESC', 'pg_checksums - verify data checksums in an offline cluster',])
+endif
+
pg_checksums = executable('pg_checksums',
- ['pg_checksums.c'],
+ pg_checksums_sources,
include_directories: [timezone_inc],
dependencies: [frontend_code],
kwargs: default_bin_args,
diff --git a/src/bin/pg_config/meson.build b/src/bin/pg_config/meson.build
index 0ecbf2f9d28..4be2fdc84ae 100644
--- a/src/bin/pg_config/meson.build
+++ b/src/bin/pg_config/meson.build
@@ -1,5 +1,15 @@
+pg_config_sources = files(
+ 'pg_config.c',
+)
+
+if host_system == 'windows'
+ pg_config_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_config',
+ '--FILEDESC', 'pg_config - report configuration information',])
+endif
+
pg_config = executable('pg_config',
- ['pg_config.c'],
+ pg_config_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_controldata/meson.build b/src/bin/pg_controldata/meson.build
index 557e672beb7..7fc239dbe65 100644
--- a/src/bin/pg_controldata/meson.build
+++ b/src/bin/pg_controldata/meson.build
@@ -1,5 +1,15 @@
+pg_controldata_sources = files(
+ 'pg_controldata.c',
+)
+
+if host_system == 'windows'
+ pg_controldata_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_controldata',
+ '--FILEDESC', 'pg_controldata - reads the data from pg_control',])
+endif
+
pg_controldata = executable('pg_controldata',
- ['pg_controldata.c'],
+ pg_controldata_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_ctl/meson.build b/src/bin/pg_ctl/meson.build
index 6812e73e329..96f962fa762 100644
--- a/src/bin/pg_ctl/meson.build
+++ b/src/bin/pg_ctl/meson.build
@@ -1,5 +1,15 @@
+pg_ctl_sources = files(
+ 'pg_ctl.c',
+)
+
+if host_system == 'windows'
+ pg_ctl_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_ctl',
+ '--FILEDESC', 'pg_ctl - starts/stops/restarts the PostgreSQL server',])
+endif
+
pg_ctl = executable('pg_ctl',
- ['pg_ctl.c'],
+ pg_ctl_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build
index 785ec094dbd..3527a25c288 100644
--- a/src/bin/pg_dump/meson.build
+++ b/src/bin/pg_dump/meson.build
@@ -24,6 +24,12 @@ pg_dump_sources = files(
'pg_dump_sort.c',
)
+if host_system == 'windows'
+ pg_dump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dump',
+ '--FILEDESC', 'pg_dump - backup one PostgreSQL database',])
+endif
+
pg_dump = executable('pg_dump',
pg_dump_sources,
link_with: [pg_dump_common],
@@ -37,6 +43,12 @@ pg_dumpall_sources = files(
'pg_dumpall.c',
)
+if host_system == 'windows'
+ pg_dumpall_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dumpall',
+ '--FILEDESC', 'pg_dumpall - backup PostgreSQL databases'])
+endif
+
pg_dumpall = executable('pg_dumpall',
pg_dumpall_sources,
link_with: [pg_dump_common],
@@ -50,6 +62,12 @@ pg_restore_sources = files(
'pg_restore.c',
)
+if host_system == 'windows'
+ pg_restore_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_restore',
+ '--FILEDESC', 'pg_restore - restore PostgreSQL databases'])
+endif
+
pg_restore = executable('pg_restore',
pg_restore_sources,
link_with: [pg_dump_common],
diff --git a/src/bin/pg_resetwal/meson.build b/src/bin/pg_resetwal/meson.build
index 7c5de134ac0..d503db97b71 100644
--- a/src/bin/pg_resetwal/meson.build
+++ b/src/bin/pg_resetwal/meson.build
@@ -1,5 +1,15 @@
+pg_resetwal_sources = files(
+ 'pg_resetwal.c',
+)
+
+if host_system == 'windows'
+ pg_resetwal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_resetwal',
+ '--FILEDESC', 'pg_resetwal - reset PostgreSQL WAL log'])
+endif
+
pg_resetwal = executable('pg_resetwal',
- files('pg_resetwal.c'),
+ pg_resetwal_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_rewind/meson.build b/src/bin/pg_rewind/meson.build
index d8ec9e482d5..6cd970909a2 100644
--- a/src/bin/pg_rewind/meson.build
+++ b/src/bin/pg_rewind/meson.build
@@ -11,6 +11,12 @@ pg_rewind_sources = files(
pg_rewind_sources += xlogreader_sources
+if host_system == 'windows'
+ pg_rewind_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_rewind',
+ '--FILEDESC', 'pg_rewind - synchronize a data directory with another one forked from'])
+endif
+
pg_rewind = executable('pg_rewind',
pg_rewind_sources,
dependencies: [frontend_code, libpq, lz4, zstd],
diff --git a/src/bin/pg_test_fsync/meson.build b/src/bin/pg_test_fsync/meson.build
index 2c01831e11f..31d288ba6da 100644
--- a/src/bin/pg_test_fsync/meson.build
+++ b/src/bin/pg_test_fsync/meson.build
@@ -1,4 +1,12 @@
-test_fsync_sources = files('pg_test_fsync.c')
+test_fsync_sources = files(
+ 'pg_test_fsync.c',
+)
+
+if host_system == 'windows'
+ test_fsync_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_fsync',
+ '--FILEDESC', 'pg_test_fsync - test various disk sync methods'])
+endif
pg_test_fsync = executable('pg_test_fsync',
test_fsync_sources,
diff --git a/src/bin/pg_test_timing/meson.build b/src/bin/pg_test_timing/meson.build
index 0a3068f1657..0aed03ea32f 100644
--- a/src/bin/pg_test_timing/meson.build
+++ b/src/bin/pg_test_timing/meson.build
@@ -1,5 +1,15 @@
+pg_test_timing_sources = files(
+ 'pg_test_timing.c'
+)
+
+if host_system == 'windows'
+ pg_test_timing_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_timing',
+ '--FILEDESC', 'pg_test_timing - test timing overhead'])
+endif
+
pg_test_timing = executable('pg_test_timing',
- ['pg_test_timing.c'],
+ pg_test_timing_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_upgrade/meson.build b/src/bin/pg_upgrade/meson.build
index 02f030e0ccf..a7b927a45c7 100644
--- a/src/bin/pg_upgrade/meson.build
+++ b/src/bin/pg_upgrade/meson.build
@@ -16,6 +16,12 @@ pg_upgrade_sources = files(
'version.c',
)
+if host_system == 'windows'
+ pg_upgrade_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_upgrade',
+ '--FILEDESC', 'pg_upgrade - an in-place binary upgrade utility'])
+endif
+
pg_upgrade = executable('pg_upgrade',
pg_upgrade_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_verifybackup/meson.build b/src/bin/pg_verifybackup/meson.build
index 4c3b2bb5f97..b934a408443 100644
--- a/src/bin/pg_verifybackup/meson.build
+++ b/src/bin/pg_verifybackup/meson.build
@@ -3,6 +3,12 @@ pg_verifybackup_sources = files(
'pg_verifybackup.c'
)
+if host_system == 'windows'
+ pg_verifybackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_verifybackup',
+ '--FILEDESC', 'pg_verifybackup - verify a backup against using a backup manifest'])
+endif
+
pg_verifybackup = executable('pg_verifybackup',
pg_verifybackup_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_waldump/meson.build b/src/bin/pg_waldump/meson.build
index 95872652ffd..9605976870d 100644
--- a/src/bin/pg_waldump/meson.build
+++ b/src/bin/pg_waldump/meson.build
@@ -8,6 +8,12 @@ pg_waldump_sources += rmgr_desc_sources
pg_waldump_sources += xlogreader_sources
pg_waldump_sources += files('../../backend/access/transam/xlogstats.c')
+if host_system == 'windows'
+ pg_waldump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_waldump',
+ '--FILEDESC', 'pg_waldump - decode and display WA'])
+endif
+
pg_waldump = executable('pg_waldump',
pg_waldump_sources,
dependencies: [frontend_code, lz4, zstd],
diff --git a/src/bin/pgbench/meson.build b/src/bin/pgbench/meson.build
index 6564e54029c..a32eb51fe07 100644
--- a/src/bin/pgbench/meson.build
+++ b/src/bin/pgbench/meson.build
@@ -17,6 +17,12 @@ exprparse = custom_target('exprparse',
generated_sources += exprparse.to_list()
pgbench_sources += exprparse
+if host_system == 'windows'
+ pgbench_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgbench',
+ '--FILEDESC', 'pgbench - a simple program for running benchmark tests'])
+endif
+
pgbench = executable('pgbench',
pgbench_sources,
dependencies: [frontend_code, libpq, thread_dep],
diff --git a/src/bin/pgevent/meson.build b/src/bin/pgevent/meson.build
index 7a468879fd2..2e9aea4b0e1 100644
--- a/src/bin/pgevent/meson.build
+++ b/src/bin/pgevent/meson.build
@@ -6,6 +6,12 @@ pgevent_sources = files(
'pgevent.c',
)
+pgevent_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgevent',
+ '--FILEDESC', 'Eventlog message formatter',])
+
+pgevent_sources += windows.compile_resources('pgmsgevent.rc')
+
# FIXME: copied from Mkvcbuild.pm, but I don't think that's the right approach
pgevent_link_args = []
if cc.get_id() == 'msvc'
diff --git a/src/bin/psql/meson.build b/src/bin/psql/meson.build
index 410788e4767..1264fc19fbd 100644
--- a/src/bin/psql/meson.build
+++ b/src/bin/psql/meson.build
@@ -36,6 +36,12 @@ sql_help = custom_target('psql_help',
generated_sources += sql_help.to_list()
psql_sources += sql_help
+if host_system == 'windows'
+ psql_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'psql',
+ '--FILEDESC', 'psql - the PostgreSQL interactive terminal',])
+endif
+
psql = executable('psql',
psql_sources,
include_directories: include_directories('.'),
diff --git a/src/bin/scripts/meson.build b/src/bin/scripts/meson.build
index eaf250c7f73..837562c24e5 100644
--- a/src/bin/scripts/meson.build
+++ b/src/bin/scripts/meson.build
@@ -16,8 +16,16 @@ binaries = [
]
foreach binary : binaries
+ binary_sources = files('@[email protected]'.format(binary))
+
+ if host_system == 'windows'
+ binary_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', binary,
+ '--FILEDESC', '@0@ - PostgreSQL utility'.format(binary),])
+ endif
+
binary = executable(binary,
- files(binary + '.c'),
+ binary_sources,
link_with: [scripts_common],
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build
index c203372a35b..63ab2fbacc2 100644
--- a/src/interfaces/libpq/meson.build
+++ b/src/interfaces/libpq/meson.build
@@ -16,9 +16,13 @@ libpq_sources = files(
'libpq-events.c',
'pqexpbuffer.c',
)
+libpq_so_sources = [] # only for shared lib, in addition to above
if host_system == 'windows'
libpq_sources += files('pthread-win32.c', 'win32.c')
+ libpq_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq',
+ '--FILEDESC', 'PostgreSQL Access Library',])
endif
if ssl.found()
@@ -52,6 +56,7 @@ libpq_st = static_library('libpq',
# not using both_libraries() here as the resource file should only be in the
# shared library
libpq_so = shared_library('libpq',
+ libpq_so_sources,
dependencies: libpq_deps,
include_directories: [libpq_inc, postgres_inc],
c_args: ['-DSO_MAJOR_VERSION=5'],
diff --git a/src/interfaces/libpq/test/meson.build b/src/interfaces/libpq/test/meson.build
index 16f94c1ed8b..017f729d435 100644
--- a/src/interfaces/libpq/test/meson.build
+++ b/src/interfaces/libpq/test/meson.build
@@ -1,13 +1,34 @@
+libpq_uri_regress_sources = files(
+ 'libpq_uri_regress.c',
+)
+
+if host_system == 'windows'
+ libpq_uri_regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_uri_regress',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_uri_regress',
- files('libpq_uri_regress.c'),
+ libpq_uri_regress_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
}
)
+
+libpq_testclient_sources = files(
+ 'libpq_testclient.c',
+)
+
+if host_system == 'windows'
+ libpq_testclient_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_testclient',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_testclient',
- files('libpq_testclient.c'),
+ libpq_testclient_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/pl/plperl/meson.build b/src/pl/plperl/meson.build
index 73b733dd50b..535660085dd 100644
--- a/src/pl/plperl/meson.build
+++ b/src/pl/plperl/meson.build
@@ -36,6 +36,13 @@ foreach n : ['SPI', 'Util']
endforeach
plperl_inc = include_directories('.')
+
+if host_system == 'windows'
+ plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plperl',
+ '--FILEDESC', 'PL/Perl - procedural language',])
+endif
+
plperl = shared_module('plperl',
plperl_sources,
include_directories: [plperl_inc, postgres_inc],
diff --git a/src/pl/plpgsql/src/meson.build b/src/pl/plpgsql/src/meson.build
index dd499fdd151..c46c0a1da2a 100644
--- a/src/pl/plpgsql/src/meson.build
+++ b/src/pl/plpgsql/src/meson.build
@@ -40,6 +40,12 @@ pl_unreserved = custom_target('pl_unreserved_kwlist',
generated_sources += pl_unreserved
plpgsql_sources += pl_unreserved
+if host_system == 'windows'
+ plpgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpgsql',
+ '--FILEDESC', 'PL/pgSQL - procedural language',])
+endif
+
plpgsql = shared_module('plpgsql',
plpgsql_sources,
include_directories: include_directories('.'),
diff --git a/src/pl/plpython/meson.build b/src/pl/plpython/meson.build
index 366b3b171ac..40888386b5f 100644
--- a/src/pl/plpython/meson.build
+++ b/src/pl/plpython/meson.build
@@ -28,6 +28,12 @@ plpython_sources += custom_target('spiexceptions.h',
# FIXME: need to duplicate import library ugliness?
plpython_inc = include_directories('.')
+if host_system == 'windows'
+ plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpython3',
+ '--FILEDESC', 'PL/Python - procedural language',])
+endif
+
plpython = shared_module('plpython3',
plpython_sources,
include_directories: [plpython_inc, postgres_inc],
diff --git a/src/pl/tcl/meson.build b/src/pl/tcl/meson.build
index 9b6addd7fd5..f09bb14c950 100644
--- a/src/pl/tcl/meson.build
+++ b/src/pl/tcl/meson.build
@@ -14,6 +14,12 @@ pltcl_sources += custom_target('pltclerrcodes.h',
command: [perl, gen_pltclerrcodes, '@INPUT@']
)
+if host_system == 'windows'
+ pltcl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pltcl',
+ '--FILEDESC', 'PL/Tcl - procedural language',])
+endif
+
pltcl = shared_module('pltcl',
pltcl_sources,
include_directories: [include_directories('.'), postgres_inc],
diff --git a/contrib/adminpack/meson.build b/contrib/adminpack/meson.build
index fc2368d02cf..7efec0efbc0 100644
--- a/contrib/adminpack/meson.build
+++ b/contrib/adminpack/meson.build
@@ -1,5 +1,15 @@
+adminpack_sources = files(
+ 'adminpack.c',
+)
+
+if host_system == 'windows'
+ adminpack_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'adminpack',
+ '--FILEDESC', 'adminpack - support functions for pgAdmin',])
+endif
+
adminpack = shared_module('adminpack',
- ['adminpack.c'],
+ adminpack_sources,
kwargs: contrib_mod_args,
)
contrib_targets += adminpack
diff --git a/contrib/amcheck/meson.build b/contrib/amcheck/meson.build
index 1db3d20349e..fa807b72d98 100644
--- a/contrib/amcheck/meson.build
+++ b/contrib/amcheck/meson.build
@@ -1,7 +1,16 @@
-amcheck = shared_module('amcheck', [
- 'verify_heapam.c',
- 'verify_nbtree.c',
- ],
+amcheck_sources = files(
+ 'verify_heapam.c',
+ 'verify_nbtree.c',
+)
+
+if host_system == 'windows'
+ amcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'amcheck',
+ '--FILEDESC', 'amcheck - function for verifying relation integrity',])
+endif
+
+amcheck = shared_module('amcheck',
+ amcheck_sources,
kwargs: contrib_mod_args,
)
contrib_targets += amcheck
diff --git a/contrib/auth_delay/meson.build b/contrib/auth_delay/meson.build
index d2e01968f54..c4ffb0663bc 100644
--- a/contrib/auth_delay/meson.build
+++ b/contrib/auth_delay/meson.build
@@ -1,5 +1,15 @@
+auth_delay_sources = files(
+ 'auth_delay.c',
+)
+
+if host_system == 'windows'
+ auth_delay_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auth_delay',
+ '--FILEDESC', 'auth_delay - delay authentication failure reports',])
+endif
+
autoinc = shared_module('auth_delay',
- ['auth_delay.c'],
+ auth_delay_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
diff --git a/contrib/auto_explain/meson.build b/contrib/auto_explain/meson.build
index 249a8376faa..76f86617850 100644
--- a/contrib/auto_explain/meson.build
+++ b/contrib/auto_explain/meson.build
@@ -1,5 +1,15 @@
+auto_explain_sources = files(
+ 'auto_explain.c',
+)
+
+if host_system == 'windows'
+ auto_explain_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auto_explain',
+ '--FILEDESC', 'auto_explain - logging facility for execution plans',])
+endif
+
auto_explain = shared_module('auto_explain',
- files('auto_explain.c'),
+ auto_explain_sources,
kwargs: contrib_mod_args,
)
contrib_targets += auto_explain
diff --git a/contrib/basebackup_to_shell/meson.build b/contrib/basebackup_to_shell/meson.build
index 9f0517f1701..3a389de9175 100644
--- a/contrib/basebackup_to_shell/meson.build
+++ b/contrib/basebackup_to_shell/meson.build
@@ -2,6 +2,12 @@ basebackup_to_shell_sources = files(
'basebackup_to_shell.c',
)
+if host_system == 'windows'
+ basebackup_to_shell_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basebackup_to_shell',
+ '--FILEDESC', 'basebackup_to_shell - target basebackup to shell command',])
+endif
+
basebackup_to_shell = shared_module('basebackup_to_shell',
basebackup_to_shell_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/basic_archive/meson.build b/contrib/basic_archive/meson.build
index b67cbef60bd..c30dcfa5d41 100644
--- a/contrib/basic_archive/meson.build
+++ b/contrib/basic_archive/meson.build
@@ -2,6 +2,12 @@ basic_archive_sources = files(
'basic_archive.c',
)
+if host_system == 'windows'
+ basic_archive_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basic_archive',
+ '--FILEDESC', 'basic_archive - basic archive module',])
+endif
+
basic_archive = shared_module('basic_archive',
basic_archive_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bloom/meson.build b/contrib/bloom/meson.build
index 1fe7632bdbe..16f3b83e4d2 100644
--- a/contrib/bloom/meson.build
+++ b/contrib/bloom/meson.build
@@ -7,6 +7,12 @@ bloom_sources = files(
'blvalidate.c',
)
+if host_system == 'windows'
+ bloom_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bloom',
+ '--FILEDESC', 'bloom access method - signature file based index',])
+endif
+
bloom = shared_module('bloom',
bloom_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bool_plperl/meson.build b/contrib/bool_plperl/meson.build
index c20b667d75f..a68daab0dcd 100644
--- a/contrib/bool_plperl/meson.build
+++ b/contrib/bool_plperl/meson.build
@@ -6,6 +6,12 @@ bool_plperl_sources = files(
'bool_plperl.c',
)
+if host_system == 'windows'
+ bool_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bool_plperl',
+ '--FILEDESC', 'bool_plperl - bool transform for plperl',])
+endif
+
bool_plperl = shared_module('bool_plperl',
bool_plperl_sources,
include_directories: [plperl_inc, include_directories('.')],
diff --git a/contrib/btree_gin/meson.build b/contrib/btree_gin/meson.build
index 15d6d31a6ee..fd4c76767a7 100644
--- a/contrib/btree_gin/meson.build
+++ b/contrib/btree_gin/meson.build
@@ -1,5 +1,15 @@
+btree_gin_sources = files(
+ 'btree_gin.c',
+)
+
+if host_system == 'windows'
+ btree_gin_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gin',
+ '--FILEDESC', 'btree_gin - B-tree equivalent GIN operator classes',])
+endif
+
btree_gin = shared_module('btree_gin',
- files('btree_gin.c'),
+ btree_gin_sources,
kwargs: contrib_mod_args,
)
contrib_targets += btree_gin
diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build
index c0a8d238540..e98c91dacc8 100644
--- a/contrib/btree_gist/meson.build
+++ b/contrib/btree_gist/meson.build
@@ -25,6 +25,12 @@ btree_gist_sources = files(
'btree_uuid.c',
)
+if host_system == 'windows'
+ btree_gist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gist',
+ '--FILEDESC', 'btree_gist - B-tree equivalent GiST operator classes',])
+endif
+
btree_gist = shared_module('btree_gist',
btree_gist_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/citext/meson.build b/contrib/citext/meson.build
index ca60eded80b..26a101a19bd 100644
--- a/contrib/citext/meson.build
+++ b/contrib/citext/meson.build
@@ -2,6 +2,12 @@ citext_sources = files(
'citext.c',
)
+if host_system == 'windows'
+ citext_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'citext',
+ '--FILEDESC', 'citext - case-insensitive character string data type',])
+endif
+
citext = shared_module('citext',
citext_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/cube/meson.build b/contrib/cube/meson.build
index 72342b0c82c..041acf95a90 100644
--- a/contrib/cube/meson.build
+++ b/contrib/cube/meson.build
@@ -17,6 +17,12 @@ cube_parse = custom_target('cubeparse',
generated_sources += cube_parse.to_list()
cube_sources += cube_parse
+if host_system == 'windows'
+ cube_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'cube',
+ '--FILEDESC', 'cube - multidimensional cube data type',])
+endif
+
cube = shared_module('cube',
cube_sources,
include_directories: include_directories('.'),
diff --git a/contrib/dblink/meson.build b/contrib/dblink/meson.build
index d35f7b5d49e..66eeb03b736 100644
--- a/contrib/dblink/meson.build
+++ b/contrib/dblink/meson.build
@@ -2,6 +2,12 @@ dblink_sources = files(
'dblink.c',
)
+if host_system == 'windows'
+ dblink_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dblink',
+ '--FILEDESC', 'dblink - connect to other PostgreSQL databases',])
+endif
+
dblink = shared_module('dblink',
dblink_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/dict_int/meson.build b/contrib/dict_int/meson.build
index f00e8085619..6fff921adda 100644
--- a/contrib/dict_int/meson.build
+++ b/contrib/dict_int/meson.build
@@ -1,5 +1,15 @@
+dict_int_sources = files(
+ 'dict_int.c',
+)
+
+if host_system == 'windows'
+ dict_int_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_int',
+ '--FILEDESC', 'dict_int - add-on dictionary template for full-text search',])
+endif
+
dict_int = shared_module('dict_int',
- files('dict_int.c'),
+ dict_int_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_int
diff --git a/contrib/dict_xsyn/meson.build b/contrib/dict_xsyn/meson.build
index be53f55bb79..fabd505a7df 100644
--- a/contrib/dict_xsyn/meson.build
+++ b/contrib/dict_xsyn/meson.build
@@ -1,5 +1,15 @@
+dict_xsyn_sources = files(
+ 'dict_xsyn.c',
+)
+
+if host_system == 'windows'
+ dict_xsyn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_xsyn',
+ '--FILEDESC', 'dict_xsyn - add-on dictionary template for full-text search',])
+endif
+
dict_xsyn = shared_module('dict_xsyn',
- files('dict_xsyn.c'),
+ dict_xsyn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_xsyn
diff --git a/contrib/earthdistance/meson.build b/contrib/earthdistance/meson.build
index 807f5cb7de3..78dc29c3da3 100644
--- a/contrib/earthdistance/meson.build
+++ b/contrib/earthdistance/meson.build
@@ -1,5 +1,15 @@
+earthdistance_sources = files(
+ 'earthdistance.c',
+)
+
+if host_system == 'windows'
+ earthdistance_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'earthdistance',
+ '--FILEDESC', 'earthdistance - calculate distances on the surface of the Earth',])
+endif
+
earthdistance = shared_module('earthdistance',
- files('earthdistance.c'),
+ earthdistance_sources,
kwargs: contrib_mod_args,
)
contrib_targets += earthdistance
diff --git a/contrib/file_fdw/meson.build b/contrib/file_fdw/meson.build
index f13efb6e38e..c4071faa669 100644
--- a/contrib/file_fdw/meson.build
+++ b/contrib/file_fdw/meson.build
@@ -1,5 +1,15 @@
+file_fdw_sources = files(
+ 'file_fdw.c',
+)
+
+if host_system == 'windows'
+ file_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'file_fdw',
+ '--FILEDESC', 'file_fdw - foreign data wrapper for files',])
+endif
+
file_fdw = shared_module('file_fdw',
- files('file_fdw.c'),
+ file_fdw_sources,
kwargs: contrib_mod_args,
)
contrib_targets += file_fdw
diff --git a/contrib/fuzzystrmatch/meson.build b/contrib/fuzzystrmatch/meson.build
index ec278a6211e..e6d06149cec 100644
--- a/contrib/fuzzystrmatch/meson.build
+++ b/contrib/fuzzystrmatch/meson.build
@@ -1,8 +1,16 @@
+fuzzystrmatch_sources = files(
+ 'fuzzystrmatch.c',
+ 'dmetaphone.c',
+)
+
+if host_system == 'windows'
+ fuzzystrmatch_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'fuzzystrmatch',
+ '--FILEDESC', 'fuzzystrmatch - similarities and distance between strings',])
+endif
+
fuzzystrmatch = shared_module('fuzzystrmatch',
- files(
- 'fuzzystrmatch.c',
- 'dmetaphone.c'
- ),
+ fuzzystrmatch_sources,
kwargs: contrib_mod_args,
)
contrib_targets += fuzzystrmatch
diff --git a/contrib/hstore/meson.build b/contrib/hstore/meson.build
index 07c59f40a97..2bb26bb772b 100644
--- a/contrib/hstore/meson.build
+++ b/contrib/hstore/meson.build
@@ -1,15 +1,23 @@
# .. so that includes of hstore/hstore.h work
hstore_inc = include_directories('.', '../')
+hstore_sources = files(
+ 'hstore_compat.c',
+ 'hstore_gin.c',
+ 'hstore_gist.c',
+ 'hstore_io.c',
+ 'hstore_op.c',
+ 'hstore_subs.c',
+)
+
+if host_system == 'windows'
+ hstore_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore',
+ '--FILEDESC', 'hstore - key/value pair data type',])
+endif
+
hstore = shared_module('hstore',
- files(
- 'hstore_compat.c',
- 'hstore_gin.c',
- 'hstore_gist.c',
- 'hstore_io.c',
- 'hstore_op.c',
- 'hstore_subs.c',
- ),
+ hstore_sources,
kwargs: contrib_mod_args,
)
contrib_targets += hstore
diff --git a/contrib/hstore_plperl/meson.build b/contrib/hstore_plperl/meson.build
index bbafa0221bd..a238fee6a26 100644
--- a/contrib/hstore_plperl/meson.build
+++ b/contrib/hstore_plperl/meson.build
@@ -6,6 +6,12 @@ hstore_plperl_sources = files(
'hstore_plperl.c',
)
+if host_system == 'windows'
+ hstore_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plperl',
+ '--FILEDESC', 'hstore_plperl - hstore transform for plperl',])
+endif
+
hstore_plperl = shared_module('hstore_plperl',
hstore_plperl_sources,
include_directories: [plperl_inc, hstore_inc],
diff --git a/contrib/hstore_plpython/meson.build b/contrib/hstore_plpython/meson.build
index 214b48519a9..6071aaeb4b3 100644
--- a/contrib/hstore_plpython/meson.build
+++ b/contrib/hstore_plpython/meson.build
@@ -6,6 +6,12 @@ hstore_plpython_sources = files(
'hstore_plpython.c',
)
+if host_system == 'windows'
+ hstore_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plpython3',
+ '--FILEDESC', 'hstore_plpython - hstore transform for plpython',])
+endif
+
hstore_plpython = shared_module('hstore_plpython3',
hstore_plpython_sources,
include_directories: [plpython_inc, hstore_inc, ],
diff --git a/contrib/intarray/meson.build b/contrib/intarray/meson.build
index 1655bcbb3fd..b7cf1ce0cad 100644
--- a/contrib/intarray/meson.build
+++ b/contrib/intarray/meson.build
@@ -8,6 +8,12 @@ intarray_sources = files(
'_intbig_gist.c',
)
+if host_system == 'windows'
+ intarray_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', '_int',
+ '--FILEDESC', 'intarray - functions and operators for arrays of integers',])
+endif
+
intarray = shared_module('_int',
intarray_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/isn/meson.build b/contrib/isn/meson.build
index cc30bbeb55c..db68a718313 100644
--- a/contrib/isn/meson.build
+++ b/contrib/isn/meson.build
@@ -2,6 +2,12 @@ isn_sources = files(
'isn.c',
)
+if host_system == 'windows'
+ isn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isn',
+ '--FILEDESC', 'isn - data types for international product numbering standards',])
+endif
+
isn = shared_module('isn',
isn_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/jsonb_plperl/meson.build b/contrib/jsonb_plperl/meson.build
index 5c915d8ed94..071a7a98d2c 100644
--- a/contrib/jsonb_plperl/meson.build
+++ b/contrib/jsonb_plperl/meson.build
@@ -6,6 +6,12 @@ jsonb_plperl_sources = files(
'jsonb_plperl.c',
)
+if host_system == 'windows'
+ jsonb_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plperl',
+ '--FILEDESC', 'jsonb_plperl - jsonb transform for plperl',])
+endif
+
jsonb_plperl = shared_module('jsonb_plperl',
jsonb_plperl_sources,
include_directories: [plperl_inc],
diff --git a/contrib/jsonb_plpython/meson.build b/contrib/jsonb_plpython/meson.build
index de8e1105c6a..84dc1161e8b 100644
--- a/contrib/jsonb_plpython/meson.build
+++ b/contrib/jsonb_plpython/meson.build
@@ -6,6 +6,12 @@ jsonb_plpython_sources = files(
'jsonb_plpython.c',
)
+if host_system == 'windows'
+ jsonb_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plpython3',
+ '--FILEDESC', 'jsonb_plpython - jsonb transform for plpython',])
+endif
+
jsonb_plpython = shared_module('jsonb_plpython3',
jsonb_plpython_sources,
include_directories: [plpython_inc],
diff --git a/contrib/lo/meson.build b/contrib/lo/meson.build
index 9082d5713c7..61ae131f1cc 100644
--- a/contrib/lo/meson.build
+++ b/contrib/lo/meson.build
@@ -2,6 +2,12 @@ lo_sources = files(
'lo.c',
)
+if host_system == 'windows'
+ lo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'lo',
+ '--FILEDESC', 'lo - management for large objects',])
+endif
+
lo = shared_module('lo',
lo_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree/meson.build b/contrib/ltree/meson.build
index 9463fc2c5e5..421292cea9d 100644
--- a/contrib/ltree/meson.build
+++ b/contrib/ltree/meson.build
@@ -13,6 +13,12 @@ ltree_sources = files(
# .. so that includes of ltree/ltree.h work
ltree_inc = include_directories('.', '../')
+if host_system == 'windows'
+ ltree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree',
+ '--FILEDESC', 'ltree - hierarchical label data type',])
+endif
+
ltree = shared_module('ltree',
ltree_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree_plpython/meson.build b/contrib/ltree_plpython/meson.build
index 429d75006aa..acf5e4a6fc8 100644
--- a/contrib/ltree_plpython/meson.build
+++ b/contrib/ltree_plpython/meson.build
@@ -6,6 +6,12 @@ ltree_plpython_sources = files(
'ltree_plpython.c',
)
+if host_system == 'windows'
+ ltree_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree_plpython3',
+ '--FILEDESC', 'ltree_plpython - ltree transform for plpython',])
+endif
+
ltree_plpython = shared_module('ltree_plpython3',
ltree_plpython_sources,
include_directories: [plpython_inc, ltree_inc],
diff --git a/contrib/oid2name/meson.build b/contrib/oid2name/meson.build
index 1dad5d8f6e7..1a248f19260 100644
--- a/contrib/oid2name/meson.build
+++ b/contrib/oid2name/meson.build
@@ -1,5 +1,15 @@
+oid2name_sources = files(
+ 'oid2name.c',
+)
+
+if host_system == 'windows'
+ oid2name_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'oid2name',
+ '--FILEDESC', 'oid2name - examine the file structure',])
+endif
+
oid2name = executable('oid2name',
- ['oid2name.c'],
+ oid2name_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/old_snapshot/meson.build b/contrib/old_snapshot/meson.build
index 8e7ee09a43a..77276c3715a 100644
--- a/contrib/old_snapshot/meson.build
+++ b/contrib/old_snapshot/meson.build
@@ -2,6 +2,12 @@ old_snapshot_sources = files(
'time_mapping.c',
)
+if host_system == 'windows'
+ old_snapshot_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'old_snapshot',
+ '--FILEDESC', 'old_snapshot - utilities in support of old_snapshot_threshold',])
+endif
+
old_snapshot = shared_module('old_snapshot',
old_snapshot_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/pageinspect/meson.build b/contrib/pageinspect/meson.build
index 4af8153e4fd..3ec50b9445e 100644
--- a/contrib/pageinspect/meson.build
+++ b/contrib/pageinspect/meson.build
@@ -9,6 +9,12 @@ pageinspect_sources = files(
'rawpage.c',
)
+if host_system == 'windows'
+ pageinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pageinspect',
+ '--FILEDESC', 'pageinspect - functions to inspect contents of database pages',])
+endif
+
pageinspect = shared_module('pageinspect',
pageinspect_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/passwordcheck/meson.build b/contrib/passwordcheck/meson.build
index 7da47d02f1d..383d7df372a 100644
--- a/contrib/passwordcheck/meson.build
+++ b/contrib/passwordcheck/meson.build
@@ -9,6 +9,12 @@ passwordcheck_deps = []
# passwordcheck_c_args += ['-DUSE_CRACKLIB', '-DCRACKLIB_DICTPATH="/usr/lib/cracklib_dict"']
# passwordcheck_deps += [cc.find_library('crack')]
+if host_system == 'windows'
+ passwordcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'passwordcheck',
+ '--FILEDESC', 'passwordcheck - strengthen user password checks',])
+endif
+
passwordcheck = shared_module('passwordcheck',
passwordcheck_sources,
c_args: passwordcheck_c_args,
diff --git a/contrib/pg_buffercache/meson.build b/contrib/pg_buffercache/meson.build
index 2c69eae3ea2..dd9948e5f0b 100644
--- a/contrib/pg_buffercache/meson.build
+++ b/contrib/pg_buffercache/meson.build
@@ -1,7 +1,15 @@
+pg_buffercache_sources = files(
+ 'pg_buffercache_pages.c',
+)
+
+if host_system == 'windows'
+ pg_buffercache_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_buffercache',
+ '--FILEDESC', 'pg_buffercache - monitoring of shared buffer cache in real-time',])
+endif
+
pg_buffercache = shared_module('pg_buffercache',
- files(
- 'pg_buffercache_pages.c',
- ),
+ pg_buffercache_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_buffercache
diff --git a/contrib/pg_freespacemap/meson.build b/contrib/pg_freespacemap/meson.build
index f795014d7ca..904b37b6e9b 100644
--- a/contrib/pg_freespacemap/meson.build
+++ b/contrib/pg_freespacemap/meson.build
@@ -1,7 +1,15 @@
+pg_freespacemap_sources = files(
+ 'pg_freespacemap.c',
+)
+
+if host_system == 'windows'
+ pg_freespacemap_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_freespacemap',
+ '--FILEDESC', 'pg_freespacemap - monitoring of free space map',])
+endif
+
pg_freespacemap = shared_module('pg_freespacemap',
- files(
- 'pg_freespacemap.c',
- ),
+ pg_freespacemap_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_freespacemap
diff --git a/contrib/pg_prewarm/meson.build b/contrib/pg_prewarm/meson.build
index bdca9af4f27..b7140cee34b 100644
--- a/contrib/pg_prewarm/meson.build
+++ b/contrib/pg_prewarm/meson.build
@@ -1,8 +1,16 @@
+pg_prewarm_sources = files(
+ 'autoprewarm.c',
+ 'pg_prewarm.c',
+)
+
+if host_system == 'windows'
+ pg_prewarm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_prewarm',
+ '--FILEDESC', 'pg_prewarm - preload relation data into system buffer cache',])
+endif
+
pg_prewarm = shared_module('pg_prewarm',
- files(
- 'autoprewarm.c',
- 'pg_prewarm.c',
- ),
+ pg_prewarm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_prewarm
diff --git a/contrib/pg_stat_statements/meson.build b/contrib/pg_stat_statements/meson.build
index ac117d2fc1d..854df138e76 100644
--- a/contrib/pg_stat_statements/meson.build
+++ b/contrib/pg_stat_statements/meson.build
@@ -1,5 +1,15 @@
+pg_stat_statements_sources = files(
+ 'pg_stat_statements.c',
+)
+
+if host_system == 'windows'
+ pg_stat_statements_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_stat_statements',
+ '--FILEDESC', 'pg_stat_statements - execution statistics of SQL statements',])
+endif
+
pg_stat_statements = shared_module('pg_stat_statements',
- files('pg_stat_statements.c'),
+ pg_stat_statements_sources,
kwargs: contrib_mod_args + {
'dependencies': contrib_mod_args['dependencies'],
},
diff --git a/contrib/pg_surgery/meson.build b/contrib/pg_surgery/meson.build
index ac71caa5276..7b5c5999f4b 100644
--- a/contrib/pg_surgery/meson.build
+++ b/contrib/pg_surgery/meson.build
@@ -1,7 +1,15 @@
+pg_surgery_sources = files(
+ 'heap_surgery.c',
+)
+
+if host_system == 'windows'
+ pg_surgery_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_surgery',
+ '--FILEDESC', 'pg_surgery - perform surgery on a damaged relation',])
+endif
+
pg_surgery = shared_module('pg_surgery',
- files(
- 'heap_surgery.c',
- ),
+ pg_surgery_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_surgery
diff --git a/contrib/pg_trgm/meson.build b/contrib/pg_trgm/meson.build
index a90628d23c6..c8c7c07b308 100644
--- a/contrib/pg_trgm/meson.build
+++ b/contrib/pg_trgm/meson.build
@@ -1,10 +1,18 @@
+pg_trgm_sources = files(
+ 'trgm_gin.c',
+ 'trgm_gist.c',
+ 'trgm_op.c',
+ 'trgm_regexp.c',
+)
+
+if host_system == 'windows'
+ pg_trgm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_trgm',
+ '--FILEDESC', 'pg_trgm - trigram matching',])
+endif
+
pg_trgm = shared_module('pg_trgm',
- files(
- 'trgm_gin.c',
- 'trgm_gist.c',
- 'trgm_op.c',
- 'trgm_regexp.c',
- ),
+ pg_trgm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_trgm
diff --git a/contrib/pg_visibility/meson.build b/contrib/pg_visibility/meson.build
index 933dc99ac4d..263a0d08b82 100644
--- a/contrib/pg_visibility/meson.build
+++ b/contrib/pg_visibility/meson.build
@@ -1,7 +1,15 @@
+pg_visibility_sources = files(
+ 'pg_visibility.c',
+)
+
+if host_system == 'windows'
+ pg_visibility_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_visibility',
+ '--FILEDESC', 'pg_visibility - page visibility information',])
+endif
+
pg_visibility = shared_module('pg_visibility',
- files(
- 'pg_visibility.c',
- ),
+ pg_visibility_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_visibility
diff --git a/contrib/pg_walinspect/meson.build b/contrib/pg_walinspect/meson.build
index d6b27877dd0..4314a3182a2 100644
--- a/contrib/pg_walinspect/meson.build
+++ b/contrib/pg_walinspect/meson.build
@@ -1,5 +1,11 @@
pg_walinspect_sources = files('pg_walinspect.c')
+if host_system == 'windows'
+ pg_walinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_walinspect',
+ '--FILEDESC', 'pg_walinspect - functions to inspect contents of PostgreSQL Write-Ahead Log',])
+endif
+
pg_walinspect = shared_module('pg_walinspect',
pg_walinspect_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/pgcrypto/meson.build b/contrib/pgcrypto/meson.build
index fe0851bf8e8..7fc7bbc7ca1 100644
--- a/contrib/pgcrypto/meson.build
+++ b/contrib/pgcrypto/meson.build
@@ -69,6 +69,12 @@ else
pgcrypto_regress += 'pgp-zlib-DISABLED'
endif
+if host_system == 'windows'
+ pgcrypto_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgcrypto',
+ '--FILEDESC', 'pgcrypto - cryptographic functions',])
+endif
+
pgcrypto = shared_module('pgcrypto',
pgcrypto_sources,
link_with: pgcrypto_link_with,
diff --git a/contrib/pgrowlocks/meson.build b/contrib/pgrowlocks/meson.build
index 1b41691a2a3..8092f0d4a64 100644
--- a/contrib/pgrowlocks/meson.build
+++ b/contrib/pgrowlocks/meson.build
@@ -1,7 +1,15 @@
+pgrowlocks_sources = files(
+ 'pgrowlocks.c',
+)
+
+if host_system == 'windows'
+ pgrowlocks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgrowlocks',
+ '--FILEDESC', 'pgrowlocks - display row locking information',])
+endif
+
pgrowlocks = shared_module('pgrowlocks',
- files(
- 'pgrowlocks.c',
- ),
+ pgrowlocks_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgrowlocks
diff --git a/contrib/pgstattuple/meson.build b/contrib/pgstattuple/meson.build
index 8e828692d5c..05e4cd46a5c 100644
--- a/contrib/pgstattuple/meson.build
+++ b/contrib/pgstattuple/meson.build
@@ -1,9 +1,17 @@
+pgstattuple_sources = files(
+ 'pgstatapprox.c',
+ 'pgstatindex.c',
+ 'pgstattuple.c',
+)
+
+if host_system == 'windows'
+ pgstattuple_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgstattuple',
+ '--FILEDESC', 'pgstattuple - tuple-level statistics',])
+endif
+
pgstattuple = shared_module('pgstattuple',
- files(
- 'pgstatapprox.c',
- 'pgstatindex.c',
- 'pgstattuple.c',
- ),
+ pgstattuple_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgstattuple
diff --git a/contrib/postgres_fdw/meson.build b/contrib/postgres_fdw/meson.build
index 378885ec93b..d3746ff135c 100644
--- a/contrib/postgres_fdw/meson.build
+++ b/contrib/postgres_fdw/meson.build
@@ -6,6 +6,12 @@ postgres_fdw_sources = files(
'shippable.c',
)
+if host_system == 'windows'
+ postgres_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'postgres_fdw',
+ '--FILEDESC', 'postgres_fdw - foreign data wrapper for PostgreSQL',])
+endif
+
postgres_fdw = shared_module('postgres_fdw',
postgres_fdw_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/seg/meson.build b/contrib/seg/meson.build
index e476eab2a77..c6fbb22999b 100644
--- a/contrib/seg/meson.build
+++ b/contrib/seg/meson.build
@@ -17,6 +17,12 @@ seg_parse = custom_target('segparse',
generated_sources += seg_parse.to_list()
seg_sources += seg_parse
+if host_system == 'windows'
+ seg_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'seg',
+ '--FILEDESC', 'seg - line segment data type',])
+endif
+
seg = shared_module('seg',
seg_sources,
include_directories: include_directories('.'),
diff --git a/contrib/sepgsql/meson.build b/contrib/sepgsql/meson.build
index 60a95e17c2f..8bef239e3c2 100644
--- a/contrib/sepgsql/meson.build
+++ b/contrib/sepgsql/meson.build
@@ -14,6 +14,12 @@ sepgsql_sources = files(
'uavc.c',
)
+if host_system == 'windows'
+ sepgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sepgsql',
+ '--FILEDESC', 'sepgsql - SELinux integration',])
+endif
+
sepgsql = shared_module('sepgsql',
sepgsql_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build
index 98008980ec2..e7d78189ef5 100644
--- a/contrib/spi/meson.build
+++ b/contrib/spi/meson.build
@@ -1,5 +1,15 @@
+autoinc_sources = files(
+ 'autoinc.c',
+)
+
+if host_system == 'windows'
+ autoinc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'autoinc',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
autoinc = shared_module('autoinc',
- ['autoinc.c'],
+ autoinc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
@@ -9,8 +19,18 @@ install_data('autoinc.control', 'autoinc--1.0.sql',
)
+insert_username_sources = files(
+ 'insert_username.c',
+)
+
+if host_system == 'windows'
+ insert_username_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'insert_username',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
insert_username = shared_module('insert_username',
- ['insert_username.c'],
+ insert_username_sources,
kwargs: contrib_mod_args,
)
contrib_targets += insert_username
@@ -22,8 +42,18 @@ install_data(
)
+moddatetime_sources = files(
+ 'moddatetime.c',
+)
+
+if host_system == 'windows'
+ moddatetime_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'moddatetime',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
moddatetime = shared_module('moddatetime',
- ['moddatetime.c'],
+ moddatetime_sources,
kwargs: contrib_mod_args,
)
contrib_targets += moddatetime
@@ -38,8 +68,18 @@ install_data(
# comment out if you want a quieter refint package for other uses
refint_cflags = ['-DREFINT_VERBOSE']
+refint_sources = files(
+ 'refint.c',
+)
+
+if host_system == 'windows'
+ refint_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'refint',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
refint = shared_module('refint',
- ['refint.c'],
+ refint_sources,
c_args: refint_cflags,
kwargs: contrib_mod_args,
)
diff --git a/contrib/sslinfo/meson.build b/contrib/sslinfo/meson.build
index 53f752a08ac..136983e783d 100644
--- a/contrib/sslinfo/meson.build
+++ b/contrib/sslinfo/meson.build
@@ -2,10 +2,18 @@ if not ssl.found()
subdir_done()
endif
+sslinfo_sources = files(
+ 'sslinfo.c',
+)
+
+if host_system == 'windows'
+ sslinfo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sslinfo',
+ '--FILEDESC', 'sslinfo - information about client SSL certificate',])
+endif
+
sslinfo = shared_module('sslinfo',
- files(
- 'sslinfo.c',
- ),
+ sslinfo_sources,
kwargs: contrib_mod_args + {
'dependencies': [ssl, contrib_mod_args['dependencies']],
}
diff --git a/contrib/tablefunc/meson.build b/contrib/tablefunc/meson.build
index f4230096c0c..d2ddc8d3b39 100644
--- a/contrib/tablefunc/meson.build
+++ b/contrib/tablefunc/meson.build
@@ -1,7 +1,15 @@
+tablefunc_sources = files(
+ 'tablefunc.c',
+)
+
+if host_system == 'windows'
+ tablefunc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tablefunc',
+ '--FILEDESC', 'tablefunc - various functions that return tables',])
+endif
+
tablefunc = shared_module('tablefunc',
- files(
- 'tablefunc.c',
- ),
+ tablefunc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tablefunc
diff --git a/contrib/tcn/meson.build b/contrib/tcn/meson.build
index c3a025247d4..71261c3b0a2 100644
--- a/contrib/tcn/meson.build
+++ b/contrib/tcn/meson.build
@@ -1,7 +1,15 @@
+tcn_sources = files(
+ 'tcn.c',
+)
+
+if host_system == 'windows'
+ tcn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tcn',
+ '--FILEDESC', 'tcn - trigger function notifying listeners',])
+endif
+
tcn = shared_module('tcn',
- files(
- 'tcn.c',
- ),
+ tcn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tcn
diff --git a/contrib/test_decoding/meson.build b/contrib/test_decoding/meson.build
index dd7cb0101ad..6376103c689 100644
--- a/contrib/test_decoding/meson.build
+++ b/contrib/test_decoding/meson.build
@@ -2,6 +2,12 @@ test_decoding_sources = files(
'test_decoding.c',
)
+if host_system == 'windows'
+ test_decoding_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_decoding',
+ '--FILEDESC', 'test_decoding - example of a logical decoding output plugin',])
+endif
+
test_decoding = shared_module('test_decoding',
test_decoding_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/tsm_system_rows/meson.build b/contrib/tsm_system_rows/meson.build
index b9cd42115a8..380abb49883 100644
--- a/contrib/tsm_system_rows/meson.build
+++ b/contrib/tsm_system_rows/meson.build
@@ -1,7 +1,15 @@
+tsm_system_rows_sources = files(
+ 'tsm_system_rows.c',
+)
+
+if host_system == 'windows'
+ tsm_system_rows_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_rows',
+ '--FILEDESC', 'tsm_system_rows - TABLESAMPLE method which accepts number of rows as a limit',])
+endif
+
tsm_system_rows = shared_module('tsm_system_rows',
- files(
- 'tsm_system_rows.c',
- ),
+ tsm_system_rows_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_rows
diff --git a/contrib/tsm_system_time/meson.build b/contrib/tsm_system_time/meson.build
index 18015912ffb..e57a2702c60 100644
--- a/contrib/tsm_system_time/meson.build
+++ b/contrib/tsm_system_time/meson.build
@@ -1,7 +1,15 @@
+tsm_system_time_sources = files(
+ 'tsm_system_time.c',
+)
+
+if host_system == 'windows'
+ tsm_system_time_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_time',
+ '--FILEDESC', 'tsm_system_time - TABLESAMPLE method which accepts time in milliseconds as a limit',])
+endif
+
tsm_system_time = shared_module('tsm_system_time',
- files(
- 'tsm_system_time.c',
- ),
+ tsm_system_time_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_time
diff --git a/contrib/unaccent/meson.build b/contrib/unaccent/meson.build
index 872b76e3223..438035132f8 100644
--- a/contrib/unaccent/meson.build
+++ b/contrib/unaccent/meson.build
@@ -1,7 +1,15 @@
+unaccent_sources = files(
+ 'unaccent.c',
+)
+
+if host_system == 'windows'
+ unaccent_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'unaccent',
+ '--FILEDESC', 'unaccent - text search dictionary that removes accents',])
+endif
+
unaccent = shared_module('unaccent',
- files(
- 'unaccent.c',
- ),
+ unaccent_sources,
kwargs: contrib_mod_args,
)
contrib_targets += unaccent
diff --git a/contrib/uuid-ossp/meson.build b/contrib/uuid-ossp/meson.build
index da6d1d75c12..28730f398f0 100644
--- a/contrib/uuid-ossp/meson.build
+++ b/contrib/uuid-ossp/meson.build
@@ -2,10 +2,18 @@ if not uuid.found()
subdir_done()
endif
+uuid_ossp_sources = files(
+ 'uuid-ossp.c',
+)
+
+if host_system == 'windows'
+ uuid_ossp_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'uuid-ossp',
+ '--FILEDESC', 'uuid-ossp - UUID generation',])
+endif
+
uuid_ossp = shared_module('uuid-ossp',
- files(
- 'uuid-ossp.c',
- ),
+ uuid_ossp_sources,
kwargs: contrib_mod_args + {
'dependencies': [uuid, contrib_mod_args['dependencies']],
},
diff --git a/contrib/vacuumlo/meson.build b/contrib/vacuumlo/meson.build
index 7a632b87d1b..846de47dbd1 100644
--- a/contrib/vacuumlo/meson.build
+++ b/contrib/vacuumlo/meson.build
@@ -1,5 +1,15 @@
+vacuumlo_sources = files(
+ 'vacuumlo.c',
+)
+
+if host_system == 'windows'
+ vacuumlo_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'vacuumlo',
+ '--FILEDESC', 'vacuumlo - removes orphaned large objects',])
+endif
+
vacuumlo = executable('vacuumlo',
- ['vacuumlo.c'],
+ vacuumlo_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/xml2/meson.build b/contrib/xml2/meson.build
index 9c0b56f01f6..89b0d677516 100644
--- a/contrib/xml2/meson.build
+++ b/contrib/xml2/meson.build
@@ -2,11 +2,19 @@ if not libxml.found()
subdir_done()
endif
+xml2_sources = files(
+ 'xpath.c',
+ 'xslt_proc.c',
+)
+
+if host_system == 'windows'
+ xml2_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgxml',
+ '--FILEDESC', 'xml2 - XPath querying and XSLT',])
+endif
+
xml2 = shared_module('pgxml',
- files(
- 'xpath.c',
- 'xslt_proc.c',
- ),
+ xml2_sources,
kwargs: contrib_mod_args + {
'dependencies': [libxml, libxslt, contrib_mod_args['dependencies']],
},
diff --git a/src/interfaces/ecpg/compatlib/meson.build b/src/interfaces/ecpg/compatlib/meson.build
index 7aeb627ee86..aa9ab497832 100644
--- a/src/interfaces/ecpg/compatlib/meson.build
+++ b/src/interfaces/ecpg/compatlib/meson.build
@@ -7,6 +7,12 @@ ecpg_compat_inc = ['.', ecpg_inc, postgres_inc, libpq_inc]
ecpg_compat_c_args = ['-DSO_MAJOR_VERSION=3']
export_file = custom_target('libecpg_compat.exports', kwargs: gen_export_kwargs)
+if host_system == 'windows'
+ ecpg_compat_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libecpg_compat',
+ '--FILEDESC', 'ECPG compat - compatibility library for ECPG',])
+endif
+
# not using both_libraries(), as the resource file should only be in the
# shared library
ecpg_compat_st = static_library('libecpg_compat',
diff --git a/src/interfaces/ecpg/ecpglib/meson.build b/src/interfaces/ecpg/ecpglib/meson.build
index eb8dd616571..fd40ee86610 100644
--- a/src/interfaces/ecpg/ecpglib/meson.build
+++ b/src/interfaces/ecpg/ecpglib/meson.build
@@ -16,6 +16,12 @@ ecpglib_inc = ['.', ecpg_inc, postgres_inc]
ecpglib_c_args = ['-DSO_MAJOR_VERSION=6']
export_file = custom_target('libecpg.exports', kwargs: gen_export_kwargs)
+if host_system == 'windows'
+ ecpglib_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libecpg',
+ '--FILEDESC', 'ECPG - embedded SQL in C',])
+endif
+
# not using both_libraries(), as the resource file should only be in the
# shared library
ecpglib_st = static_library('libecpg',
diff --git a/src/interfaces/ecpg/pgtypeslib/meson.build b/src/interfaces/ecpg/pgtypeslib/meson.build
index 5254843f84d..53cdad36422 100644
--- a/src/interfaces/ecpg/pgtypeslib/meson.build
+++ b/src/interfaces/ecpg/pgtypeslib/meson.build
@@ -12,6 +12,12 @@ export_file = custom_target('libpgtypes.exports', kwargs: gen_export_kwargs)
ecpg_pgtypes_inc = ['.', ecpg_inc, postgres_inc]
ecpg_pgtypes_c_args = ['-DSO_MAJOR_VERSION=3']
+if host_system == 'windows'
+ ecpg_pgtypes_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgtypes',
+ '--FILEDESC', 'pgtypes - library for data type mapping',])
+endif
+
# not using both_libraries(), as the resource file should only be in the
# shared library
ecpg_pgtypes_st = static_library('libpgtypes',
diff --git a/src/interfaces/ecpg/preproc/meson.build b/src/interfaces/ecpg/preproc/meson.build
index 1be49c8c27f..74876f039c9 100644
--- a/src/interfaces/ecpg/preproc/meson.build
+++ b/src/interfaces/ecpg/preproc/meson.build
@@ -93,6 +93,12 @@ ecpg_kwlist = custom_target('ecpg_kwlist_d.h',
generated_sources += ecpg_kwlist
ecpg_sources += ecpg_kwlist
+if host_system == 'windows'
+ ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ecpg',
+ '--FILEDESC', 'ecpg - embedded SQL precompiler for C',])
+endif
+
ecpg_exe = executable('ecpg',
ecpg_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
diff --git a/src/interfaces/ecpg/test/meson.build b/src/interfaces/ecpg/test/meson.build
index 8904aa7fd90..94b26d10314 100644
--- a/src/interfaces/ecpg/test/meson.build
+++ b/src/interfaces/ecpg/test/meson.build
@@ -7,6 +7,11 @@ pg_regress_ecpg_sources = pg_regress_c + files(
'pg_regress_ecpg.c',
)
+if host_system == 'windows'
+ pg_regress_ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress_ecpg',])
+endif
+
pg_regress_ecpg = executable('pg_regress_ecpg',
pg_regress_ecpg_sources,
c_args: pg_regress_cflags,
diff --git a/src/test/isolation/meson.build b/src/test/isolation/meson.build
index c7656fd4609..ba27b8c1d44 100644
--- a/src/test/isolation/meson.build
+++ b/src/test/isolation/meson.build
@@ -23,6 +23,12 @@ spec_parser = custom_target('specparse',
isolationtester_sources += spec_parser
generated_sources += spec_parser.to_list()
+if host_system == 'windows'
+ isolation_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_isolation_regress',
+ '--FILEDESC', 'pg_isolation_regress - multi-client test driver',])
+endif
+
pg_isolation_regress = executable('pg_isolation_regress',
isolation_sources,
c_args: pg_regress_cflags,
@@ -34,6 +40,13 @@ pg_isolation_regress = executable('pg_isolation_regress',
)
bin_targets += pg_isolation_regress
+
+if host_system == 'windows'
+ isolationtester_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isolationtester',
+ '--FILEDESC', 'isolationtester - multi-client test driver',])
+endif
+
isolationtester = executable('isolationtester',
isolationtester_sources,
include_directories: include_directories('.'),
diff --git a/src/test/modules/delay_execution/meson.build b/src/test/modules/delay_execution/meson.build
index cf4bdaba637..a0c3ab6afe7 100644
--- a/src/test/modules/delay_execution/meson.build
+++ b/src/test/modules/delay_execution/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+delay_execution_sources = files(
+ 'delay_execution.c',
+)
+
+if host_system == 'windows'
+ delay_execution_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'delay_execution',
+ '--FILEDESC', 'delay_execution - allow delay between parsing and execution',])
+endif
+
delay_execution = shared_module('delay_execution',
- ['delay_execution.c'],
+ delay_execution_sources,
kwargs: pg_mod_args,
)
testprep_targets += delay_execution
diff --git a/src/test/modules/dummy_index_am/meson.build b/src/test/modules/dummy_index_am/meson.build
index 56ff5f48001..4ce82491135 100644
--- a/src/test/modules/dummy_index_am/meson.build
+++ b/src/test/modules/dummy_index_am/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_index_am_sources = files(
+ 'dummy_index_am.c',
+)
+
+if host_system == 'windows'
+ dummy_index_am_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_index_am',
+ '--FILEDESC', 'dummy_index_am - index access method template',])
+endif
+
dummy_index_am = shared_module('dummy_index_am',
- ['dummy_index_am.c'],
+ dummy_index_am_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_index_am
diff --git a/src/test/modules/dummy_seclabel/meson.build b/src/test/modules/dummy_seclabel/meson.build
index 21b7cf8f353..81b626e496c 100644
--- a/src/test/modules/dummy_seclabel/meson.build
+++ b/src/test/modules/dummy_seclabel/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_seclabel_sources = files(
+ 'dummy_seclabel.c',
+)
+
+if host_system == 'windows'
+ dummy_seclabel_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_seclabel',
+ '--FILEDESC', 'dummy_seclabel - regression testing of the SECURITY LABEL statement',])
+endif
+
dummy_seclabel = shared_module('dummy_seclabel',
- ['dummy_seclabel.c'],
+ dummy_seclabel_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_seclabel
diff --git a/src/test/modules/libpq_pipeline/meson.build b/src/test/modules/libpq_pipeline/meson.build
index 8384b6e3b2a..de0e2d15626 100644
--- a/src/test/modules/libpq_pipeline/meson.build
+++ b/src/test/modules/libpq_pipeline/meson.build
@@ -1,7 +1,15 @@
+libpq_pipeline_sources = files(
+ 'libpq_pipeline.c',
+)
+
+if host_system == 'windows'
+ libpq_pipeline_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_pipeline',
+ '--FILEDESC', 'libpq_pipeline - test program for pipeline execution',])
+endif
+
libpq_pipeline = executable('libpq_pipeline',
- files(
- 'libpq_pipeline.c',
- ),
+ libpq_pipeline_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/test/modules/plsample/meson.build b/src/test/modules/plsample/meson.build
index 45de3f1990d..e1ea2c7a16f 100644
--- a/src/test/modules/plsample/meson.build
+++ b/src/test/modules/plsample/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+plsample_sources = files(
+ 'plsample.c',
+)
+
+if host_system == 'windows'
+ plsample_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plsample',
+ '--FILEDESC', 'PL/Sample - template for procedural language',])
+endif
+
plsample = shared_module('plsample',
- ['plsample.c'],
+ plsample_sources,
kwargs: pg_mod_args,
)
testprep_targets += plsample
diff --git a/src/test/modules/spgist_name_ops/meson.build b/src/test/modules/spgist_name_ops/meson.build
index 857fc7e140e..445296fee0b 100644
--- a/src/test/modules/spgist_name_ops/meson.build
+++ b/src/test/modules/spgist_name_ops/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+spgist_name_ops_sources = files(
+ 'spgist_name_ops.c',
+)
+
+if host_system == 'windows'
+ spgist_name_ops_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'spgist_name_ops',
+ '--FILEDESC', 'spgist_name_ops - test opclass for SP-GiST',])
+endif
+
spgist_name_ops = shared_module('spgist_name_ops',
- ['spgist_name_ops.c'],
+ spgist_name_ops_sources,
kwargs: pg_mod_args,
)
testprep_targets += spgist_name_ops
diff --git a/src/test/modules/ssl_passphrase_callback/meson.build b/src/test/modules/ssl_passphrase_callback/meson.build
index a57bd0693a3..a9eb4c564da 100644
--- a/src/test/modules/ssl_passphrase_callback/meson.build
+++ b/src/test/modules/ssl_passphrase_callback/meson.build
@@ -3,8 +3,19 @@ if not ssl.found()
endif
# FIXME: prevent install during main install, but not during test :/
+
+ssl_passphrase_callback_sources = files(
+ 'ssl_passphrase_func.c',
+)
+
+if host_system == 'windows'
+ ssl_passphrase_callback_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ssl_passphrase_func',
+ '--FILEDESC', 'callback function to provide a passphrase',])
+endif
+
ssl_passphrase_callback = shared_module('ssl_passphrase_func',
- ['ssl_passphrase_func.c'],
+ ssl_passphrase_callback_sources,
kwargs: pg_mod_args + {
'dependencies': [ssl, pg_mod_args['dependencies']],
},
diff --git a/src/test/modules/test_bloomfilter/meson.build b/src/test/modules/test_bloomfilter/meson.build
index 945eb5a70c4..3cf6b05754f 100644
--- a/src/test/modules/test_bloomfilter/meson.build
+++ b/src/test/modules/test_bloomfilter/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_bloomfilter_sources = files(
+ 'test_bloomfilter.c',
+)
+
+if host_system == 'windows'
+ test_bloomfilter_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_bloomfilter',
+ '--FILEDESC', 'test_bloomfilter - test code for Bloom filter library',])
+endif
+
test_bloomfilter = shared_module('test_bloomfilter',
- ['test_bloomfilter.c'],
+ test_bloomfilter_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_bloomfilter
diff --git a/src/test/modules/test_ddl_deparse/meson.build b/src/test/modules/test_ddl_deparse/meson.build
index 81ad5adc526..54d44f9b2b4 100644
--- a/src/test/modules/test_ddl_deparse/meson.build
+++ b/src/test/modules/test_ddl_deparse/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ddl_deparse_sources = files(
+ 'test_ddl_deparse.c',
+)
+
+if host_system == 'windows'
+ test_ddl_deparse_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ddl_deparse',
+ '--FILEDESC', 'test_ddl_deparse - regression testing for DDL deparsing',])
+endif
+
test_ddl_deparse = shared_module('test_ddl_deparse',
- ['test_ddl_deparse.c'],
+ test_ddl_deparse_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ddl_deparse
diff --git a/src/test/modules/test_ginpostinglist/meson.build b/src/test/modules/test_ginpostinglist/meson.build
index abf0a3b0430..b3b49c56122 100644
--- a/src/test/modules/test_ginpostinglist/meson.build
+++ b/src/test/modules/test_ginpostinglist/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ginpostinglist_sources = files(
+ 'test_ginpostinglist.c',
+)
+
+if host_system == 'windows'
+ test_ginpostinglist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ginpostinglist',
+ '--FILEDESC', 'test_ginpostinglist - test code for src/backend/access/gin//ginpostinglist.c',])
+endif
+
test_ginpostinglist = shared_module('test_ginpostinglist',
- ['test_ginpostinglist.c'],
+ test_ginpostinglist_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ginpostinglist
diff --git a/src/test/modules/test_integerset/meson.build b/src/test/modules/test_integerset/meson.build
index c32c469c69a..4bd75af4b5e 100644
--- a/src/test/modules/test_integerset/meson.build
+++ b/src/test/modules/test_integerset/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_integerset_sources = files(
+ 'test_integerset.c',
+)
+
+if host_system == 'windows'
+ test_integerset_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_integerset',
+ '--FILEDESC', 'test_integerset - test code for src/backend/lib/integerset.c',])
+endif
+
test_integerset = shared_module('test_integerset',
- ['test_integerset.c'],
+ test_integerset_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_integerset
diff --git a/src/test/modules/test_lfind/meson.build b/src/test/modules/test_lfind/meson.build
index a388de1156a..c5405b8f878 100644
--- a/src/test/modules/test_lfind/meson.build
+++ b/src/test/modules/test_lfind/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_lfind_sources = files(
+ 'test_lfind.c',
+)
+
+if host_system == 'windows'
+ test_lfind_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_lfind',
+ '--FILEDESC', 'test_lfind - test code for optimized linear search functions',])
+endif
+
test_lfind = shared_module('test_lfind',
- ['test_lfind.c'],
+ test_lfind_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_lfind
diff --git a/src/test/modules/test_oat_hooks/meson.build b/src/test/modules/test_oat_hooks/meson.build
index 5faf0459777..8802bbbac55 100644
--- a/src/test/modules/test_oat_hooks/meson.build
+++ b/src/test/modules/test_oat_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_oat_hooks_sources = files(
+ 'test_oat_hooks.c',
+)
+
+if host_system == 'windows'
+ test_oat_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_oat_hooks',
+ '--FILEDESC', 'test_oat_hooks - example use of object access hooks',])
+endif
+
test_oat_hooks = shared_module('test_oat_hooks',
- ['test_oat_hooks.c'],
+ test_oat_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_oat_hooks
diff --git a/src/test/modules/test_parser/meson.build b/src/test/modules/test_parser/meson.build
index b59960f615e..1c17113347f 100644
--- a/src/test/modules/test_parser/meson.build
+++ b/src/test/modules/test_parser/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_parser_sources = files(
+ 'test_parser.c',
+)
+
+if host_system == 'windows'
+ test_parser_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_parser',
+ '--FILEDESC', 'test_parser - example of a custom parser for full-text search',])
+endif
+
test_parser = shared_module('test_parser',
- ['test_parser.c'],
+ test_parser_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_parser
diff --git a/src/test/modules/test_predtest/meson.build b/src/test/modules/test_predtest/meson.build
index 1cfa84b3609..9a5be43c9c0 100644
--- a/src/test/modules/test_predtest/meson.build
+++ b/src/test/modules/test_predtest/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_predtest_sources = files(
+ 'test_predtest.c',
+)
+
+if host_system == 'windows'
+ test_predtest_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_predtest',
+ '--FILEDESC', 'test_predtest - test code for optimizer/util/predtest.c',])
+endif
+
test_predtest = shared_module('test_predtest',
- ['test_predtest.c'],
+ test_predtest_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_predtest
diff --git a/src/test/modules/test_rbtree/meson.build b/src/test/modules/test_rbtree/meson.build
index 34cbc3e1624..f067e08d321 100644
--- a/src/test/modules/test_rbtree/meson.build
+++ b/src/test/modules/test_rbtree/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rbtree_sources = files(
+ 'test_rbtree.c',
+)
+
+if host_system == 'windows'
+ test_rbtree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rbtree',
+ '--FILEDESC', 'test_rbtree - test code for red-black tree library',])
+endif
+
test_rbtree = shared_module('test_rbtree',
- ['test_rbtree.c'],
+ test_rbtree_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rbtree
diff --git a/src/test/modules/test_regex/meson.build b/src/test/modules/test_regex/meson.build
index 867a64e57c3..cfb938d9f1e 100644
--- a/src/test/modules/test_regex/meson.build
+++ b/src/test/modules/test_regex/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_regex_sources = files(
+ 'test_regex.c',
+)
+
+if host_system == 'windows'
+ test_regex_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_regex',
+ '--FILEDESC', 'test_regex - test code for backend/regex/',])
+endif
+
test_regex = shared_module('test_regex',
- ['test_regex.c'],
+ test_regex_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_regex
diff --git a/src/test/modules/test_rls_hooks/meson.build b/src/test/modules/test_rls_hooks/meson.build
index 80d8adda332..3fb273b2934 100644
--- a/src/test/modules/test_rls_hooks/meson.build
+++ b/src/test/modules/test_rls_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rls_hooks_sources = files(
+ 'test_rls_hooks.c',
+)
+
+if host_system == 'windows'
+ test_rls_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rls_hooks',
+ '--FILEDESC', 'test_rls_hooks - example use of RLS hooks',])
+endif
+
test_rls_hooks = shared_module('test_rls_hooks',
- ['test_rls_hooks.c'],
+ test_rls_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rls_hooks
diff --git a/src/test/modules/test_shm_mq/meson.build b/src/test/modules/test_shm_mq/meson.build
index b663543d616..16c8fdb57f4 100644
--- a/src/test/modules/test_shm_mq/meson.build
+++ b/src/test/modules/test_shm_mq/meson.build
@@ -1,10 +1,19 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_shm_mq_sources = files(
+ 'setup.c',
+ 'test.c',
+ 'worker.c',
+)
+
+if host_system == 'windows'
+ test_shm_mq_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_shm_mq',
+ '--FILEDESC', 'test_shm_mq - example use of shared memory message queue',])
+endif
+
test_shm_mq = shared_module('test_shm_mq',
- files(
- 'setup.c',
- 'test.c',
- 'worker.c',
- ),
+ test_shm_mq_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_shm_mq
diff --git a/src/test/modules/worker_spi/meson.build b/src/test/modules/worker_spi/meson.build
index 32acad883b2..a4a158c75b9 100644
--- a/src/test/modules/worker_spi/meson.build
+++ b/src/test/modules/worker_spi/meson.build
@@ -1,8 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_worker_spi_sources = files(
+ 'worker_spi.c',
+)
+
+if host_system == 'windows'
+ test_worker_spi_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'worker_spi',
+ '--FILEDESC', 'worker_spi - background worker example',])
+endif
+
test_worker_spi = shared_module('worker_spi',
- files(
- 'worker_spi.c',
- ),
+ test_worker_spi_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_worker_spi
diff --git a/src/test/regress/meson.build b/src/test/regress/meson.build
index fd8ee995b79..963c0f64ed5 100644
--- a/src/test/regress/meson.build
+++ b/src/test/regress/meson.build
@@ -8,6 +8,12 @@ regress_sources = pg_regress_c + files(
pg_regress_cflags = ['-DHOST_TUPLE="frak"', '-DSHELLPROG="/bin/sh"']
+if host_system == 'windows'
+ regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress',
+ '--FILEDESC', 'pg_regress - test driver',])
+endif
+
pg_regress = executable('pg_regress',
regress_sources,
c_args: pg_regress_cflags,
diff --git a/meson.build b/meson.build
index 38b2c3aae2e..774a8c2e05f 100644
--- a/meson.build
+++ b/meson.build
@@ -2536,6 +2536,65 @@ gen_export_kwargs = {
+###
+### windows resources related stuff
+###
+
+if host_system == 'windows'
+ pg_ico = meson.source_root() / 'src' / 'port' / 'win32.ico'
+ win32ver_rc = files('src/port/win32ver.rc')
+ rcgen = find_program('src/tools/rcgen', native: true)
+
+ rcgen_base_args = [
+ '--srcdir', '@SOURCE_DIR@',
+ '--builddir', meson.build_root(),
+ '--rcout', '@OUTPUT0@',
+ '--out', '@OUTPUT1@',
+ '--input', '@INPUT@',
+ '@EXTRA_ARGS@',
+ ]
+
+ if cc.get_argument_syntax() == 'msvc'
+ rc = find_program('rc', required: true)
+ rcgen_base_args += ['--rc', rc.path()]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ else
+ windres = find_program('windres', required: true)
+ rcgen_base_args += ['--windres', windres.path()]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ endif
+
+ # msbuild backend doesn't support this atm
+ if meson.backend() == 'ninja'
+ rcgen_base_args += ['--depfile', '@DEPFILE@']
+ endif
+
+ rcgen_bin_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_APP',
+ '--FILEENDING', 'exe',
+ '--ICO', pg_ico
+ ]
+
+ rcgen_lib_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_DLL',
+ '--FILEENDING', 'dll',
+ ]
+
+ rc_bin_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_bin_args,
+ output: rcgen_outputs,
+ )
+
+ rc_lib_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_lib_args,
+ output: rcgen_outputs,
+ )
+endif
+
+
+
# headers that the whole build tree depends on
generated_headers = []
# headers that the backend build depends on
diff --git a/src/timezone/meson.build b/src/timezone/meson.build
index 16f082ecfa8..9e0934c000b 100644
--- a/src/timezone/meson.build
+++ b/src/timezone/meson.build
@@ -28,6 +28,12 @@ if get_option('system_tzdata') == ''
if meson.is_cross_build()
zic = find_program(get_option('ZIC'), native: true, required: true)
else
+ if host_system == 'windows'
+ zic_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'zic',
+ '--FILEDESC', 'zic - time zone compiler',])
+ endif
+
zic = executable('zic', zic_sources,
dependencies: [frontend_code],
kwargs: default_bin_args + {'install': false}
diff --git a/src/tools/rcgen b/src/tools/rcgen
new file mode 100755
index 00000000000..5b62bfe5410
--- /dev/null
+++ b/src/tools/rcgen
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+
+import argparse
+import os
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description='generate PostgreSQL rc file')
+
+parser.add_argument('--srcdir', type=os.path.abspath,
+ required=True)
+parser.add_argument('--builddir', type=os.path.abspath,
+ required=True)
+
+binaries = parser.add_argument_group('binaries')
+binaries.add_argument('--windres', type=os.path.abspath)
+binaries.add_argument('--rc', type=os.path.abspath)
+
+inout = parser.add_argument_group('inout')
+inout.add_argument('--depfile', type=argparse.FileType('w'))
+inout.add_argument('--input', type=argparse.FileType('r'),
+ required=True)
+inout.add_argument('--rcout', type=argparse.FileType('w'),
+ required=True)
+inout.add_argument('--out', type=str,
+ required=True)
+
+replacements = parser.add_argument_group('replacements')
+replacements.add_argument('--FILEDESC', type=str)
+replacements.add_argument('--NAME', type=str, required=True)
+replacements.add_argument('--VFT_TYPE', type=str, required=True)
+replacements.add_argument('--FILEENDING', type=str, required=True)
+replacements.add_argument('--ICO', type=str)
+
+args = parser.parse_args()
+
+# determine replacement strings
+
+internal_name = '"{0}"'.format(args.NAME)
+original_name = '"{0}.{1}"'.format(args.NAME, args.FILEENDING)
+
+# if no description is passed in, generate one based on the name
+if args.FILEDESC:
+ filedesc = args.FILEDESC
+elif args.NAME:
+ if args.VFT_TYPE == 'VFT_DLL':
+ filedesc = 'PostgreSQL {0} library'.format(args.NAME)
+ else:
+ filedesc = 'PostgreSQL {0} binary'.format(args.NAME)
+filedesc = '"{0}"'.format(filedesc)
+
+
+if args.ICO:
+ ico = 'IDI_ICON ICON "{0}"'.format(args.ICO)
+ if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(args.rcout.name, args.ICO))
+else:
+ ico = ''
+
+
+data = args.input.read()
+
+data = data.replace('VFT_APP', args.VFT_TYPE)
+data = data.replace('_INTERNAL_NAME_', internal_name)
+data = data.replace('_ORIGINAL_NAME_', original_name)
+data = data.replace('FILEDESC', filedesc)
+data = data.replace("_ICO_", ico)
+
+args.rcout.write(data)
+args.rcout.close()
+
+if args.windres:
+ cmd = [
+ args.windres,
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '-o', args.out, '-i', args.rcout.name,
+ ]
+elif args.rc:
+ cmd = [
+ args.rc, '/nologo',
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '/fo', args.out, args.rcout.name,
+ ]
+else:
+ sys.exit('either --windres or --rc needs to be specified')
+
+sp = subprocess.run(cmd)
+if sp.returncode != 0:
+ sys.exit(sp.returncode)
+
+# It'd be nicer if we could generate correct dependencies here, but 'rc'
+# doesn't support doing so. It's unlikely we'll ever need more, so...
+if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(
+ args.rcout.name, args.input.name))
+ args.depfile.write("{0} : {1}/{2}\n".format(
+ args.out, args.builddir, 'src/include/pg_config.h'))
--
2.37.3.542.gdd3f6c4cae
--losgcde4yzp6hbli
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
filename="v17-0007-meson-Add-docs-for-building-with-meson.patch"
^ permalink raw reply [nested|flat] 18+ messages in thread
* [PATCH v18 04/22] meson: Add windows resource files
@ 2022-10-01 18:54 Andres Freund <[email protected]>
0 siblings, 0 replies; 18+ messages in thread
From: Andres Freund @ 2022-10-01 18:54 UTC (permalink / raw)
The generated resource files aren't exactly the same ones as the old
buildsystems generate. Previously "InternalName" and "OriginalFileName" were
mostly wrong / not set (despite being required), but that was hard to fix in
at least the make build. Additionally, the meson build falls back to a
"auto-generated" description when not set, and doesn't set it in a few cases -
unlikely that anybody looks at these descriptions in detail.
Author: Andres Freund <[email protected]>
Author: Nazir Bilal Yavuz <[email protected]>
Reviewed-by: Peter Eisentraut <[email protected]>
---
src/backend/jit/llvm/meson.build | 6 +
.../replication/libpqwalreceiver/meson.build | 6 +
src/backend/replication/pgoutput/meson.build | 6 +
src/backend/snowball/meson.build | 6 +
.../utils/mb/conversion_procs/meson.build | 9 +-
src/bin/initdb/meson.build | 6 +
src/bin/pg_amcheck/meson.build | 8 +-
src/bin/pg_archivecleanup/meson.build | 12 +-
src/bin/pg_basebackup/meson.build | 38 ++++++-
src/bin/pg_checksums/meson.build | 12 +-
src/bin/pg_config/meson.build | 12 +-
src/bin/pg_controldata/meson.build | 12 +-
src/bin/pg_ctl/meson.build | 12 +-
src/bin/pg_dump/meson.build | 18 +++
src/bin/pg_resetwal/meson.build | 12 +-
src/bin/pg_rewind/meson.build | 6 +
src/bin/pg_test_fsync/meson.build | 10 +-
src/bin/pg_test_timing/meson.build | 12 +-
src/bin/pg_upgrade/meson.build | 6 +
src/bin/pg_verifybackup/meson.build | 6 +
src/bin/pg_waldump/meson.build | 6 +
src/bin/pgbench/meson.build | 6 +
src/bin/pgevent/meson.build | 6 +
src/bin/psql/meson.build | 6 +
src/bin/scripts/meson.build | 10 +-
src/interfaces/libpq/meson.build | 6 +-
src/interfaces/libpq/test/meson.build | 25 ++++-
src/pl/plperl/meson.build | 7 ++
src/pl/plpgsql/src/meson.build | 6 +
src/pl/plpython/meson.build | 6 +
src/pl/tcl/meson.build | 6 +
contrib/adminpack/meson.build | 12 +-
contrib/amcheck/meson.build | 17 ++-
contrib/auth_delay/meson.build | 12 +-
contrib/auto_explain/meson.build | 12 +-
contrib/basebackup_to_shell/meson.build | 6 +
contrib/basic_archive/meson.build | 6 +
contrib/bloom/meson.build | 6 +
contrib/bool_plperl/meson.build | 6 +
contrib/btree_gin/meson.build | 12 +-
contrib/btree_gist/meson.build | 6 +
contrib/citext/meson.build | 6 +
contrib/cube/meson.build | 6 +
contrib/dblink/meson.build | 6 +
contrib/dict_int/meson.build | 12 +-
contrib/dict_xsyn/meson.build | 12 +-
contrib/earthdistance/meson.build | 12 +-
contrib/file_fdw/meson.build | 12 +-
contrib/fuzzystrmatch/meson.build | 16 ++-
contrib/hstore/meson.build | 24 ++--
contrib/hstore_plperl/meson.build | 6 +
contrib/hstore_plpython/meson.build | 6 +
contrib/intarray/meson.build | 6 +
contrib/isn/meson.build | 6 +
contrib/jsonb_plperl/meson.build | 6 +
contrib/jsonb_plpython/meson.build | 6 +
contrib/lo/meson.build | 6 +
contrib/ltree/meson.build | 6 +
contrib/ltree_plpython/meson.build | 6 +
contrib/oid2name/meson.build | 12 +-
contrib/old_snapshot/meson.build | 6 +
contrib/pageinspect/meson.build | 6 +
contrib/passwordcheck/meson.build | 6 +
contrib/pg_buffercache/meson.build | 14 ++-
contrib/pg_freespacemap/meson.build | 14 ++-
contrib/pg_prewarm/meson.build | 16 ++-
contrib/pg_stat_statements/meson.build | 12 +-
contrib/pg_surgery/meson.build | 14 ++-
contrib/pg_trgm/meson.build | 20 +++-
contrib/pg_visibility/meson.build | 14 ++-
contrib/pg_walinspect/meson.build | 6 +
contrib/pgcrypto/meson.build | 6 +
contrib/pgrowlocks/meson.build | 14 ++-
contrib/pgstattuple/meson.build | 18 ++-
contrib/postgres_fdw/meson.build | 6 +
contrib/seg/meson.build | 6 +
contrib/sepgsql/meson.build | 6 +
contrib/spi/meson.build | 48 +++++++-
contrib/sslinfo/meson.build | 14 ++-
contrib/tablefunc/meson.build | 14 ++-
contrib/tcn/meson.build | 14 ++-
contrib/test_decoding/meson.build | 6 +
contrib/tsm_system_rows/meson.build | 14 ++-
contrib/tsm_system_time/meson.build | 14 ++-
contrib/unaccent/meson.build | 14 ++-
contrib/uuid-ossp/meson.build | 14 ++-
contrib/vacuumlo/meson.build | 12 +-
contrib/xml2/meson.build | 16 ++-
src/interfaces/ecpg/compatlib/meson.build | 6 +
src/interfaces/ecpg/ecpglib/meson.build | 6 +
src/interfaces/ecpg/pgtypeslib/meson.build | 6 +
src/interfaces/ecpg/preproc/meson.build | 6 +
src/interfaces/ecpg/test/meson.build | 5 +
src/test/isolation/meson.build | 13 +++
src/test/modules/delay_execution/meson.build | 13 ++-
src/test/modules/dummy_index_am/meson.build | 13 ++-
src/test/modules/dummy_seclabel/meson.build | 13 ++-
src/test/modules/libpq_pipeline/meson.build | 14 ++-
src/test/modules/plsample/meson.build | 13 ++-
src/test/modules/spgist_name_ops/meson.build | 13 ++-
.../ssl_passphrase_callback/meson.build | 13 ++-
src/test/modules/test_bloomfilter/meson.build | 13 ++-
src/test/modules/test_ddl_deparse/meson.build | 13 ++-
.../modules/test_ginpostinglist/meson.build | 13 ++-
src/test/modules/test_integerset/meson.build | 13 ++-
src/test/modules/test_lfind/meson.build | 13 ++-
src/test/modules/test_oat_hooks/meson.build | 13 ++-
src/test/modules/test_parser/meson.build | 13 ++-
src/test/modules/test_predtest/meson.build | 13 ++-
src/test/modules/test_rbtree/meson.build | 13 ++-
src/test/modules/test_regex/meson.build | 13 ++-
src/test/modules/test_rls_hooks/meson.build | 13 ++-
src/test/modules/test_shm_mq/meson.build | 19 +++-
src/test/modules/worker_spi/meson.build | 15 ++-
src/test/regress/meson.build | 6 +
meson.build | 59 ++++++++++
src/timezone/meson.build | 6 +
src/tools/rcgen | 105 ++++++++++++++++++
118 files changed, 1292 insertions(+), 131 deletions(-)
create mode 100755 src/tools/rcgen
diff --git a/src/backend/jit/llvm/meson.build b/src/backend/jit/llvm/meson.build
index 6ae7aaad015..25c5618e8a3 100644
--- a/src/backend/jit/llvm/meson.build
+++ b/src/backend/jit/llvm/meson.build
@@ -20,6 +20,12 @@ llvmjit_sources += files(
'llvmjit_expr.c',
)
+if host_system == 'windows'
+ llvmjit_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'llvmjit',
+ '--FILEDESC', 'llvmjit - JIT using LLVM',])
+endif
+
llvmjit = shared_module('llvmjit',
llvmjit_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/libpqwalreceiver/meson.build b/src/backend/replication/libpqwalreceiver/meson.build
index 3fc786c80a0..4c653a05d36 100644
--- a/src/backend/replication/libpqwalreceiver/meson.build
+++ b/src/backend/replication/libpqwalreceiver/meson.build
@@ -2,6 +2,12 @@ libpqwalreceiver_sources = files(
'libpqwalreceiver.c',
)
+if host_system == 'windows'
+ libpqwalreceiver_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pqwalreceiver',
+ '--FILEDESC', 'libpqwalreceiver - receive WAL during streaming replication',])
+endif
+
libpqwalreceiver = shared_module('pqwalreceiver',
libpqwalreceiver_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/replication/pgoutput/meson.build b/src/backend/replication/pgoutput/meson.build
index ab956361a62..5df27d7b764 100644
--- a/src/backend/replication/pgoutput/meson.build
+++ b/src/backend/replication/pgoutput/meson.build
@@ -2,6 +2,12 @@ pgoutput_sources = files(
'pgoutput.c',
)
+if host_system == 'windows'
+ pgoutput_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgoutput',
+ '--FILEDESC', 'pgoutput - standard logical replication output plugin',])
+endif
+
pgoutput = shared_module('pgoutput',
pgoutput_sources,
kwargs: pg_mod_args,
diff --git a/src/backend/snowball/meson.build b/src/backend/snowball/meson.build
index 8c6f685cb32..974401d187e 100644
--- a/src/backend/snowball/meson.build
+++ b/src/backend/snowball/meson.build
@@ -58,6 +58,12 @@ dict_snowball_sources += files(
# see comment in src/include/snowball/header.h
stemmer_inc = include_directories('../../include/snowball')
+if host_system == 'windows'
+ dict_snowball_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_snowball',
+ '--FILEDESC', 'snowball - natural language stemmers',])
+endif
+
dict_snowball = shared_module('dict_snowball',
dict_snowball_sources,
kwargs: pg_mod_args + {
diff --git a/src/backend/utils/mb/conversion_procs/meson.build b/src/backend/utils/mb/conversion_procs/meson.build
index 1bc971d1945..1c18f2ac85a 100644
--- a/src/backend/utils/mb/conversion_procs/meson.build
+++ b/src/backend/utils/mb/conversion_procs/meson.build
@@ -29,8 +29,15 @@ encodings = {
}
foreach encoding, sources : encodings
+ source_files = files(sources)
+
+ if host_system == 'windows'
+ source_files += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', encoding])
+ endif
+
backend_targets += shared_module(encoding,
- sources,
+ source_files,
kwargs: pg_mod_args,
)
endforeach
diff --git a/src/bin/initdb/meson.build b/src/bin/initdb/meson.build
index 9f213274d2f..6ced9a31b80 100644
--- a/src/bin/initdb/meson.build
+++ b/src/bin/initdb/meson.build
@@ -7,6 +7,12 @@ initdb_sources += timezone_localtime_source
#fixme: reimplement libpq_pgport logic
+if host_system == 'windows'
+ initdb_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'initdb',
+ '--FILEDESC', 'initdb - initialize a new database cluster',])
+endif
+
initdb = executable('initdb',
initdb_sources,
include_directories: [timezone_inc],
diff --git a/src/bin/pg_amcheck/meson.build b/src/bin/pg_amcheck/meson.build
index 8e197eba5f3..25f5e7a0948 100644
--- a/src/bin/pg_amcheck/meson.build
+++ b/src/bin/pg_amcheck/meson.build
@@ -1,7 +1,13 @@
pg_amcheck_sources = files(
- 'pg_amcheck.c'
+ 'pg_amcheck.c',
)
+if host_system == 'windows'
+ pg_amcheck_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_amcheck',
+ '--FILEDESC', 'pg_amcheck - detect corruption within database relations',])
+endif
+
pg_amcheck = executable('pg_amcheck',
pg_amcheck_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_archivecleanup/meson.build b/src/bin/pg_archivecleanup/meson.build
index 87a0d980c4f..aaa2e76977f 100644
--- a/src/bin/pg_archivecleanup/meson.build
+++ b/src/bin/pg_archivecleanup/meson.build
@@ -1,5 +1,15 @@
+pg_archivecleanup_sources = files(
+ 'pg_archivecleanup.c',
+)
+
+if host_system == 'windows'
+ pg_archivecleanup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_archivecleanup',
+ '--FILEDESC', 'pg_archivecleanup - cleans archive when used with streaming replication',])
+endif
+
pg_archivecleanup = executable('pg_archivecleanup',
- ['pg_archivecleanup.c'],
+ pg_archivecleanup_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_basebackup/meson.build b/src/bin/pg_basebackup/meson.build
index d26fed9cd8a..2c934e0c26e 100644
--- a/src/bin/pg_basebackup/meson.build
+++ b/src/bin/pg_basebackup/meson.build
@@ -17,24 +17,56 @@ pg_basebackup_common = static_library('libpg_basebackup_common',
kwargs: internal_lib_args,
)
-pg_basebackup = executable('pg_basebackup',
+pg_basebackup_sources = files(
'pg_basebackup.c',
+)
+
+if host_system == 'windows'
+ pg_basebackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_basebackup',
+ '--FILEDESC', 'pg_basebackup - streaming WAL and backup receivers',])
+endif
+
+pg_basebackup = executable('pg_basebackup',
+ pg_basebackup_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_basebackup
-pg_receivewal = executable('pg_receivewal',
+
+pg_receivewal_sources = files(
'pg_receivewal.c',
+)
+
+if host_system == 'windows'
+ pg_receivewal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_receivewal',
+ '--FILEDESC', 'pg_receivewal - streaming WAL and backup receivers',])
+endif
+
+pg_receivewal = executable('pg_receivewal',
+ pg_receivewal_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
)
bin_targets += pg_receivewal
-pg_recvlogical = executable('pg_recvlogical',
+
+pg_recvlogical_sources = files(
'pg_recvlogical.c',
+)
+
+if host_system == 'windows'
+ pg_recvlogical_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_recvlogical',
+ '--FILEDESC', 'pg_recvlogical - streaming WAL and backup receivers',])
+endif
+
+pg_recvlogical = executable('pg_recvlogical',
+ pg_recvlogical_sources,
link_with: [pg_basebackup_common],
dependencies: pg_basebackup_deps,
kwargs: default_bin_args,
diff --git a/src/bin/pg_checksums/meson.build b/src/bin/pg_checksums/meson.build
index ee1f367bac3..d07ebc999b3 100644
--- a/src/bin/pg_checksums/meson.build
+++ b/src/bin/pg_checksums/meson.build
@@ -1,5 +1,15 @@
+pg_checksums_sources = files(
+ 'pg_checksums.c',
+)
+
+if host_system == 'windows'
+ pg_checksums_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_checksums',
+ '--FILEDESC', 'pg_checksums - verify data checksums in an offline cluster',])
+endif
+
pg_checksums = executable('pg_checksums',
- ['pg_checksums.c'],
+ pg_checksums_sources,
include_directories: [timezone_inc],
dependencies: [frontend_code],
kwargs: default_bin_args,
diff --git a/src/bin/pg_config/meson.build b/src/bin/pg_config/meson.build
index 0ecbf2f9d28..4be2fdc84ae 100644
--- a/src/bin/pg_config/meson.build
+++ b/src/bin/pg_config/meson.build
@@ -1,5 +1,15 @@
+pg_config_sources = files(
+ 'pg_config.c',
+)
+
+if host_system == 'windows'
+ pg_config_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_config',
+ '--FILEDESC', 'pg_config - report configuration information',])
+endif
+
pg_config = executable('pg_config',
- ['pg_config.c'],
+ pg_config_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_controldata/meson.build b/src/bin/pg_controldata/meson.build
index 557e672beb7..7fc239dbe65 100644
--- a/src/bin/pg_controldata/meson.build
+++ b/src/bin/pg_controldata/meson.build
@@ -1,5 +1,15 @@
+pg_controldata_sources = files(
+ 'pg_controldata.c',
+)
+
+if host_system == 'windows'
+ pg_controldata_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_controldata',
+ '--FILEDESC', 'pg_controldata - reads the data from pg_control',])
+endif
+
pg_controldata = executable('pg_controldata',
- ['pg_controldata.c'],
+ pg_controldata_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_ctl/meson.build b/src/bin/pg_ctl/meson.build
index 6812e73e329..96f962fa762 100644
--- a/src/bin/pg_ctl/meson.build
+++ b/src/bin/pg_ctl/meson.build
@@ -1,5 +1,15 @@
+pg_ctl_sources = files(
+ 'pg_ctl.c',
+)
+
+if host_system == 'windows'
+ pg_ctl_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_ctl',
+ '--FILEDESC', 'pg_ctl - starts/stops/restarts the PostgreSQL server',])
+endif
+
pg_ctl = executable('pg_ctl',
- ['pg_ctl.c'],
+ pg_ctl_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build
index 785ec094dbd..3527a25c288 100644
--- a/src/bin/pg_dump/meson.build
+++ b/src/bin/pg_dump/meson.build
@@ -24,6 +24,12 @@ pg_dump_sources = files(
'pg_dump_sort.c',
)
+if host_system == 'windows'
+ pg_dump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dump',
+ '--FILEDESC', 'pg_dump - backup one PostgreSQL database',])
+endif
+
pg_dump = executable('pg_dump',
pg_dump_sources,
link_with: [pg_dump_common],
@@ -37,6 +43,12 @@ pg_dumpall_sources = files(
'pg_dumpall.c',
)
+if host_system == 'windows'
+ pg_dumpall_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_dumpall',
+ '--FILEDESC', 'pg_dumpall - backup PostgreSQL databases'])
+endif
+
pg_dumpall = executable('pg_dumpall',
pg_dumpall_sources,
link_with: [pg_dump_common],
@@ -50,6 +62,12 @@ pg_restore_sources = files(
'pg_restore.c',
)
+if host_system == 'windows'
+ pg_restore_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_restore',
+ '--FILEDESC', 'pg_restore - restore PostgreSQL databases'])
+endif
+
pg_restore = executable('pg_restore',
pg_restore_sources,
link_with: [pg_dump_common],
diff --git a/src/bin/pg_resetwal/meson.build b/src/bin/pg_resetwal/meson.build
index 7c5de134ac0..d503db97b71 100644
--- a/src/bin/pg_resetwal/meson.build
+++ b/src/bin/pg_resetwal/meson.build
@@ -1,5 +1,15 @@
+pg_resetwal_sources = files(
+ 'pg_resetwal.c',
+)
+
+if host_system == 'windows'
+ pg_resetwal_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_resetwal',
+ '--FILEDESC', 'pg_resetwal - reset PostgreSQL WAL log'])
+endif
+
pg_resetwal = executable('pg_resetwal',
- files('pg_resetwal.c'),
+ pg_resetwal_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_rewind/meson.build b/src/bin/pg_rewind/meson.build
index d8ec9e482d5..6cd970909a2 100644
--- a/src/bin/pg_rewind/meson.build
+++ b/src/bin/pg_rewind/meson.build
@@ -11,6 +11,12 @@ pg_rewind_sources = files(
pg_rewind_sources += xlogreader_sources
+if host_system == 'windows'
+ pg_rewind_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_rewind',
+ '--FILEDESC', 'pg_rewind - synchronize a data directory with another one forked from'])
+endif
+
pg_rewind = executable('pg_rewind',
pg_rewind_sources,
dependencies: [frontend_code, libpq, lz4, zstd],
diff --git a/src/bin/pg_test_fsync/meson.build b/src/bin/pg_test_fsync/meson.build
index 2c01831e11f..31d288ba6da 100644
--- a/src/bin/pg_test_fsync/meson.build
+++ b/src/bin/pg_test_fsync/meson.build
@@ -1,4 +1,12 @@
-test_fsync_sources = files('pg_test_fsync.c')
+test_fsync_sources = files(
+ 'pg_test_fsync.c',
+)
+
+if host_system == 'windows'
+ test_fsync_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_fsync',
+ '--FILEDESC', 'pg_test_fsync - test various disk sync methods'])
+endif
pg_test_fsync = executable('pg_test_fsync',
test_fsync_sources,
diff --git a/src/bin/pg_test_timing/meson.build b/src/bin/pg_test_timing/meson.build
index 0a3068f1657..0aed03ea32f 100644
--- a/src/bin/pg_test_timing/meson.build
+++ b/src/bin/pg_test_timing/meson.build
@@ -1,5 +1,15 @@
+pg_test_timing_sources = files(
+ 'pg_test_timing.c'
+)
+
+if host_system == 'windows'
+ pg_test_timing_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_test_timing',
+ '--FILEDESC', 'pg_test_timing - test timing overhead'])
+endif
+
pg_test_timing = executable('pg_test_timing',
- ['pg_test_timing.c'],
+ pg_test_timing_sources,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
diff --git a/src/bin/pg_upgrade/meson.build b/src/bin/pg_upgrade/meson.build
index 02f030e0ccf..a7b927a45c7 100644
--- a/src/bin/pg_upgrade/meson.build
+++ b/src/bin/pg_upgrade/meson.build
@@ -16,6 +16,12 @@ pg_upgrade_sources = files(
'version.c',
)
+if host_system == 'windows'
+ pg_upgrade_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_upgrade',
+ '--FILEDESC', 'pg_upgrade - an in-place binary upgrade utility'])
+endif
+
pg_upgrade = executable('pg_upgrade',
pg_upgrade_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_verifybackup/meson.build b/src/bin/pg_verifybackup/meson.build
index 4c3b2bb5f97..b934a408443 100644
--- a/src/bin/pg_verifybackup/meson.build
+++ b/src/bin/pg_verifybackup/meson.build
@@ -3,6 +3,12 @@ pg_verifybackup_sources = files(
'pg_verifybackup.c'
)
+if host_system == 'windows'
+ pg_verifybackup_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_verifybackup',
+ '--FILEDESC', 'pg_verifybackup - verify a backup against using a backup manifest'])
+endif
+
pg_verifybackup = executable('pg_verifybackup',
pg_verifybackup_sources,
dependencies: [frontend_code, libpq],
diff --git a/src/bin/pg_waldump/meson.build b/src/bin/pg_waldump/meson.build
index 95872652ffd..9605976870d 100644
--- a/src/bin/pg_waldump/meson.build
+++ b/src/bin/pg_waldump/meson.build
@@ -8,6 +8,12 @@ pg_waldump_sources += rmgr_desc_sources
pg_waldump_sources += xlogreader_sources
pg_waldump_sources += files('../../backend/access/transam/xlogstats.c')
+if host_system == 'windows'
+ pg_waldump_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_waldump',
+ '--FILEDESC', 'pg_waldump - decode and display WA'])
+endif
+
pg_waldump = executable('pg_waldump',
pg_waldump_sources,
dependencies: [frontend_code, lz4, zstd],
diff --git a/src/bin/pgbench/meson.build b/src/bin/pgbench/meson.build
index 6564e54029c..a32eb51fe07 100644
--- a/src/bin/pgbench/meson.build
+++ b/src/bin/pgbench/meson.build
@@ -17,6 +17,12 @@ exprparse = custom_target('exprparse',
generated_sources += exprparse.to_list()
pgbench_sources += exprparse
+if host_system == 'windows'
+ pgbench_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgbench',
+ '--FILEDESC', 'pgbench - a simple program for running benchmark tests'])
+endif
+
pgbench = executable('pgbench',
pgbench_sources,
dependencies: [frontend_code, libpq, thread_dep],
diff --git a/src/bin/pgevent/meson.build b/src/bin/pgevent/meson.build
index 7a468879fd2..2e9aea4b0e1 100644
--- a/src/bin/pgevent/meson.build
+++ b/src/bin/pgevent/meson.build
@@ -6,6 +6,12 @@ pgevent_sources = files(
'pgevent.c',
)
+pgevent_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgevent',
+ '--FILEDESC', 'Eventlog message formatter',])
+
+pgevent_sources += windows.compile_resources('pgmsgevent.rc')
+
# FIXME: copied from Mkvcbuild.pm, but I don't think that's the right approach
pgevent_link_args = []
if cc.get_id() == 'msvc'
diff --git a/src/bin/psql/meson.build b/src/bin/psql/meson.build
index 410788e4767..1264fc19fbd 100644
--- a/src/bin/psql/meson.build
+++ b/src/bin/psql/meson.build
@@ -36,6 +36,12 @@ sql_help = custom_target('psql_help',
generated_sources += sql_help.to_list()
psql_sources += sql_help
+if host_system == 'windows'
+ psql_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'psql',
+ '--FILEDESC', 'psql - the PostgreSQL interactive terminal',])
+endif
+
psql = executable('psql',
psql_sources,
include_directories: include_directories('.'),
diff --git a/src/bin/scripts/meson.build b/src/bin/scripts/meson.build
index eaf250c7f73..837562c24e5 100644
--- a/src/bin/scripts/meson.build
+++ b/src/bin/scripts/meson.build
@@ -16,8 +16,16 @@ binaries = [
]
foreach binary : binaries
+ binary_sources = files('@[email protected]'.format(binary))
+
+ if host_system == 'windows'
+ binary_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', binary,
+ '--FILEDESC', '@0@ - PostgreSQL utility'.format(binary),])
+ endif
+
binary = executable(binary,
- files(binary + '.c'),
+ binary_sources,
link_with: [scripts_common],
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build
index 34cb58c2617..533b2e6f773 100644
--- a/src/interfaces/libpq/meson.build
+++ b/src/interfaces/libpq/meson.build
@@ -16,9 +16,13 @@ libpq_sources = files(
'libpq-events.c',
'pqexpbuffer.c',
)
+libpq_so_sources = [] # for shared lib, in addition to the above
if host_system == 'windows'
libpq_sources += files('pthread-win32.c', 'win32.c')
+ libpq_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq',
+ '--FILEDESC', 'PostgreSQL Access Library',])
endif
if ssl.found()
@@ -59,7 +63,7 @@ libpq_st = static_library('libpq',
)
libpq_so = shared_library('libpq',
- libpq_sources,
+ libpq_sources + libpq_so_sources,
include_directories: [libpq_inc, postgres_inc],
c_args: libpq_c_args,
version: '5.' + pg_version_major.to_string(),
diff --git a/src/interfaces/libpq/test/meson.build b/src/interfaces/libpq/test/meson.build
index 16f94c1ed8b..017f729d435 100644
--- a/src/interfaces/libpq/test/meson.build
+++ b/src/interfaces/libpq/test/meson.build
@@ -1,13 +1,34 @@
+libpq_uri_regress_sources = files(
+ 'libpq_uri_regress.c',
+)
+
+if host_system == 'windows'
+ libpq_uri_regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_uri_regress',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_uri_regress',
- files('libpq_uri_regress.c'),
+ libpq_uri_regress_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
}
)
+
+libpq_testclient_sources = files(
+ 'libpq_testclient.c',
+)
+
+if host_system == 'windows'
+ libpq_testclient_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_testclient',
+ '--FILEDESC', 'libpq test program',])
+endif
+
executable('libpq_testclient',
- files('libpq_testclient.c'),
+ libpq_testclient_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/pl/plperl/meson.build b/src/pl/plperl/meson.build
index 73b733dd50b..535660085dd 100644
--- a/src/pl/plperl/meson.build
+++ b/src/pl/plperl/meson.build
@@ -36,6 +36,13 @@ foreach n : ['SPI', 'Util']
endforeach
plperl_inc = include_directories('.')
+
+if host_system == 'windows'
+ plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plperl',
+ '--FILEDESC', 'PL/Perl - procedural language',])
+endif
+
plperl = shared_module('plperl',
plperl_sources,
include_directories: [plperl_inc, postgres_inc],
diff --git a/src/pl/plpgsql/src/meson.build b/src/pl/plpgsql/src/meson.build
index dd499fdd151..c46c0a1da2a 100644
--- a/src/pl/plpgsql/src/meson.build
+++ b/src/pl/plpgsql/src/meson.build
@@ -40,6 +40,12 @@ pl_unreserved = custom_target('pl_unreserved_kwlist',
generated_sources += pl_unreserved
plpgsql_sources += pl_unreserved
+if host_system == 'windows'
+ plpgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpgsql',
+ '--FILEDESC', 'PL/pgSQL - procedural language',])
+endif
+
plpgsql = shared_module('plpgsql',
plpgsql_sources,
include_directories: include_directories('.'),
diff --git a/src/pl/plpython/meson.build b/src/pl/plpython/meson.build
index 366b3b171ac..40888386b5f 100644
--- a/src/pl/plpython/meson.build
+++ b/src/pl/plpython/meson.build
@@ -28,6 +28,12 @@ plpython_sources += custom_target('spiexceptions.h',
# FIXME: need to duplicate import library ugliness?
plpython_inc = include_directories('.')
+if host_system == 'windows'
+ plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plpython3',
+ '--FILEDESC', 'PL/Python - procedural language',])
+endif
+
plpython = shared_module('plpython3',
plpython_sources,
include_directories: [plpython_inc, postgres_inc],
diff --git a/src/pl/tcl/meson.build b/src/pl/tcl/meson.build
index 9b6addd7fd5..f09bb14c950 100644
--- a/src/pl/tcl/meson.build
+++ b/src/pl/tcl/meson.build
@@ -14,6 +14,12 @@ pltcl_sources += custom_target('pltclerrcodes.h',
command: [perl, gen_pltclerrcodes, '@INPUT@']
)
+if host_system == 'windows'
+ pltcl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pltcl',
+ '--FILEDESC', 'PL/Tcl - procedural language',])
+endif
+
pltcl = shared_module('pltcl',
pltcl_sources,
include_directories: [include_directories('.'), postgres_inc],
diff --git a/contrib/adminpack/meson.build b/contrib/adminpack/meson.build
index fc2368d02cf..7efec0efbc0 100644
--- a/contrib/adminpack/meson.build
+++ b/contrib/adminpack/meson.build
@@ -1,5 +1,15 @@
+adminpack_sources = files(
+ 'adminpack.c',
+)
+
+if host_system == 'windows'
+ adminpack_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'adminpack',
+ '--FILEDESC', 'adminpack - support functions for pgAdmin',])
+endif
+
adminpack = shared_module('adminpack',
- ['adminpack.c'],
+ adminpack_sources,
kwargs: contrib_mod_args,
)
contrib_targets += adminpack
diff --git a/contrib/amcheck/meson.build b/contrib/amcheck/meson.build
index 1db3d20349e..fa807b72d98 100644
--- a/contrib/amcheck/meson.build
+++ b/contrib/amcheck/meson.build
@@ -1,7 +1,16 @@
-amcheck = shared_module('amcheck', [
- 'verify_heapam.c',
- 'verify_nbtree.c',
- ],
+amcheck_sources = files(
+ 'verify_heapam.c',
+ 'verify_nbtree.c',
+)
+
+if host_system == 'windows'
+ amcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'amcheck',
+ '--FILEDESC', 'amcheck - function for verifying relation integrity',])
+endif
+
+amcheck = shared_module('amcheck',
+ amcheck_sources,
kwargs: contrib_mod_args,
)
contrib_targets += amcheck
diff --git a/contrib/auth_delay/meson.build b/contrib/auth_delay/meson.build
index d2e01968f54..c4ffb0663bc 100644
--- a/contrib/auth_delay/meson.build
+++ b/contrib/auth_delay/meson.build
@@ -1,5 +1,15 @@
+auth_delay_sources = files(
+ 'auth_delay.c',
+)
+
+if host_system == 'windows'
+ auth_delay_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auth_delay',
+ '--FILEDESC', 'auth_delay - delay authentication failure reports',])
+endif
+
autoinc = shared_module('auth_delay',
- ['auth_delay.c'],
+ auth_delay_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
diff --git a/contrib/auto_explain/meson.build b/contrib/auto_explain/meson.build
index 249a8376faa..76f86617850 100644
--- a/contrib/auto_explain/meson.build
+++ b/contrib/auto_explain/meson.build
@@ -1,5 +1,15 @@
+auto_explain_sources = files(
+ 'auto_explain.c',
+)
+
+if host_system == 'windows'
+ auto_explain_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'auto_explain',
+ '--FILEDESC', 'auto_explain - logging facility for execution plans',])
+endif
+
auto_explain = shared_module('auto_explain',
- files('auto_explain.c'),
+ auto_explain_sources,
kwargs: contrib_mod_args,
)
contrib_targets += auto_explain
diff --git a/contrib/basebackup_to_shell/meson.build b/contrib/basebackup_to_shell/meson.build
index 9f0517f1701..3a389de9175 100644
--- a/contrib/basebackup_to_shell/meson.build
+++ b/contrib/basebackup_to_shell/meson.build
@@ -2,6 +2,12 @@ basebackup_to_shell_sources = files(
'basebackup_to_shell.c',
)
+if host_system == 'windows'
+ basebackup_to_shell_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basebackup_to_shell',
+ '--FILEDESC', 'basebackup_to_shell - target basebackup to shell command',])
+endif
+
basebackup_to_shell = shared_module('basebackup_to_shell',
basebackup_to_shell_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/basic_archive/meson.build b/contrib/basic_archive/meson.build
index b67cbef60bd..c30dcfa5d41 100644
--- a/contrib/basic_archive/meson.build
+++ b/contrib/basic_archive/meson.build
@@ -2,6 +2,12 @@ basic_archive_sources = files(
'basic_archive.c',
)
+if host_system == 'windows'
+ basic_archive_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'basic_archive',
+ '--FILEDESC', 'basic_archive - basic archive module',])
+endif
+
basic_archive = shared_module('basic_archive',
basic_archive_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bloom/meson.build b/contrib/bloom/meson.build
index 1fe7632bdbe..16f3b83e4d2 100644
--- a/contrib/bloom/meson.build
+++ b/contrib/bloom/meson.build
@@ -7,6 +7,12 @@ bloom_sources = files(
'blvalidate.c',
)
+if host_system == 'windows'
+ bloom_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bloom',
+ '--FILEDESC', 'bloom access method - signature file based index',])
+endif
+
bloom = shared_module('bloom',
bloom_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/bool_plperl/meson.build b/contrib/bool_plperl/meson.build
index c20b667d75f..a68daab0dcd 100644
--- a/contrib/bool_plperl/meson.build
+++ b/contrib/bool_plperl/meson.build
@@ -6,6 +6,12 @@ bool_plperl_sources = files(
'bool_plperl.c',
)
+if host_system == 'windows'
+ bool_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'bool_plperl',
+ '--FILEDESC', 'bool_plperl - bool transform for plperl',])
+endif
+
bool_plperl = shared_module('bool_plperl',
bool_plperl_sources,
include_directories: [plperl_inc, include_directories('.')],
diff --git a/contrib/btree_gin/meson.build b/contrib/btree_gin/meson.build
index 15d6d31a6ee..fd4c76767a7 100644
--- a/contrib/btree_gin/meson.build
+++ b/contrib/btree_gin/meson.build
@@ -1,5 +1,15 @@
+btree_gin_sources = files(
+ 'btree_gin.c',
+)
+
+if host_system == 'windows'
+ btree_gin_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gin',
+ '--FILEDESC', 'btree_gin - B-tree equivalent GIN operator classes',])
+endif
+
btree_gin = shared_module('btree_gin',
- files('btree_gin.c'),
+ btree_gin_sources,
kwargs: contrib_mod_args,
)
contrib_targets += btree_gin
diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build
index c0a8d238540..e98c91dacc8 100644
--- a/contrib/btree_gist/meson.build
+++ b/contrib/btree_gist/meson.build
@@ -25,6 +25,12 @@ btree_gist_sources = files(
'btree_uuid.c',
)
+if host_system == 'windows'
+ btree_gist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'btree_gist',
+ '--FILEDESC', 'btree_gist - B-tree equivalent GiST operator classes',])
+endif
+
btree_gist = shared_module('btree_gist',
btree_gist_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/citext/meson.build b/contrib/citext/meson.build
index ca60eded80b..26a101a19bd 100644
--- a/contrib/citext/meson.build
+++ b/contrib/citext/meson.build
@@ -2,6 +2,12 @@ citext_sources = files(
'citext.c',
)
+if host_system == 'windows'
+ citext_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'citext',
+ '--FILEDESC', 'citext - case-insensitive character string data type',])
+endif
+
citext = shared_module('citext',
citext_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/cube/meson.build b/contrib/cube/meson.build
index 72342b0c82c..041acf95a90 100644
--- a/contrib/cube/meson.build
+++ b/contrib/cube/meson.build
@@ -17,6 +17,12 @@ cube_parse = custom_target('cubeparse',
generated_sources += cube_parse.to_list()
cube_sources += cube_parse
+if host_system == 'windows'
+ cube_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'cube',
+ '--FILEDESC', 'cube - multidimensional cube data type',])
+endif
+
cube = shared_module('cube',
cube_sources,
include_directories: include_directories('.'),
diff --git a/contrib/dblink/meson.build b/contrib/dblink/meson.build
index d35f7b5d49e..66eeb03b736 100644
--- a/contrib/dblink/meson.build
+++ b/contrib/dblink/meson.build
@@ -2,6 +2,12 @@ dblink_sources = files(
'dblink.c',
)
+if host_system == 'windows'
+ dblink_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dblink',
+ '--FILEDESC', 'dblink - connect to other PostgreSQL databases',])
+endif
+
dblink = shared_module('dblink',
dblink_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/dict_int/meson.build b/contrib/dict_int/meson.build
index f00e8085619..6fff921adda 100644
--- a/contrib/dict_int/meson.build
+++ b/contrib/dict_int/meson.build
@@ -1,5 +1,15 @@
+dict_int_sources = files(
+ 'dict_int.c',
+)
+
+if host_system == 'windows'
+ dict_int_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_int',
+ '--FILEDESC', 'dict_int - add-on dictionary template for full-text search',])
+endif
+
dict_int = shared_module('dict_int',
- files('dict_int.c'),
+ dict_int_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_int
diff --git a/contrib/dict_xsyn/meson.build b/contrib/dict_xsyn/meson.build
index be53f55bb79..fabd505a7df 100644
--- a/contrib/dict_xsyn/meson.build
+++ b/contrib/dict_xsyn/meson.build
@@ -1,5 +1,15 @@
+dict_xsyn_sources = files(
+ 'dict_xsyn.c',
+)
+
+if host_system == 'windows'
+ dict_xsyn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dict_xsyn',
+ '--FILEDESC', 'dict_xsyn - add-on dictionary template for full-text search',])
+endif
+
dict_xsyn = shared_module('dict_xsyn',
- files('dict_xsyn.c'),
+ dict_xsyn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += dict_xsyn
diff --git a/contrib/earthdistance/meson.build b/contrib/earthdistance/meson.build
index 807f5cb7de3..78dc29c3da3 100644
--- a/contrib/earthdistance/meson.build
+++ b/contrib/earthdistance/meson.build
@@ -1,5 +1,15 @@
+earthdistance_sources = files(
+ 'earthdistance.c',
+)
+
+if host_system == 'windows'
+ earthdistance_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'earthdistance',
+ '--FILEDESC', 'earthdistance - calculate distances on the surface of the Earth',])
+endif
+
earthdistance = shared_module('earthdistance',
- files('earthdistance.c'),
+ earthdistance_sources,
kwargs: contrib_mod_args,
)
contrib_targets += earthdistance
diff --git a/contrib/file_fdw/meson.build b/contrib/file_fdw/meson.build
index f13efb6e38e..c4071faa669 100644
--- a/contrib/file_fdw/meson.build
+++ b/contrib/file_fdw/meson.build
@@ -1,5 +1,15 @@
+file_fdw_sources = files(
+ 'file_fdw.c',
+)
+
+if host_system == 'windows'
+ file_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'file_fdw',
+ '--FILEDESC', 'file_fdw - foreign data wrapper for files',])
+endif
+
file_fdw = shared_module('file_fdw',
- files('file_fdw.c'),
+ file_fdw_sources,
kwargs: contrib_mod_args,
)
contrib_targets += file_fdw
diff --git a/contrib/fuzzystrmatch/meson.build b/contrib/fuzzystrmatch/meson.build
index ec278a6211e..e6d06149cec 100644
--- a/contrib/fuzzystrmatch/meson.build
+++ b/contrib/fuzzystrmatch/meson.build
@@ -1,8 +1,16 @@
+fuzzystrmatch_sources = files(
+ 'fuzzystrmatch.c',
+ 'dmetaphone.c',
+)
+
+if host_system == 'windows'
+ fuzzystrmatch_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'fuzzystrmatch',
+ '--FILEDESC', 'fuzzystrmatch - similarities and distance between strings',])
+endif
+
fuzzystrmatch = shared_module('fuzzystrmatch',
- files(
- 'fuzzystrmatch.c',
- 'dmetaphone.c'
- ),
+ fuzzystrmatch_sources,
kwargs: contrib_mod_args,
)
contrib_targets += fuzzystrmatch
diff --git a/contrib/hstore/meson.build b/contrib/hstore/meson.build
index 07c59f40a97..2bb26bb772b 100644
--- a/contrib/hstore/meson.build
+++ b/contrib/hstore/meson.build
@@ -1,15 +1,23 @@
# .. so that includes of hstore/hstore.h work
hstore_inc = include_directories('.', '../')
+hstore_sources = files(
+ 'hstore_compat.c',
+ 'hstore_gin.c',
+ 'hstore_gist.c',
+ 'hstore_io.c',
+ 'hstore_op.c',
+ 'hstore_subs.c',
+)
+
+if host_system == 'windows'
+ hstore_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore',
+ '--FILEDESC', 'hstore - key/value pair data type',])
+endif
+
hstore = shared_module('hstore',
- files(
- 'hstore_compat.c',
- 'hstore_gin.c',
- 'hstore_gist.c',
- 'hstore_io.c',
- 'hstore_op.c',
- 'hstore_subs.c',
- ),
+ hstore_sources,
kwargs: contrib_mod_args,
)
contrib_targets += hstore
diff --git a/contrib/hstore_plperl/meson.build b/contrib/hstore_plperl/meson.build
index bbafa0221bd..a238fee6a26 100644
--- a/contrib/hstore_plperl/meson.build
+++ b/contrib/hstore_plperl/meson.build
@@ -6,6 +6,12 @@ hstore_plperl_sources = files(
'hstore_plperl.c',
)
+if host_system == 'windows'
+ hstore_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plperl',
+ '--FILEDESC', 'hstore_plperl - hstore transform for plperl',])
+endif
+
hstore_plperl = shared_module('hstore_plperl',
hstore_plperl_sources,
include_directories: [plperl_inc, hstore_inc],
diff --git a/contrib/hstore_plpython/meson.build b/contrib/hstore_plpython/meson.build
index 214b48519a9..6071aaeb4b3 100644
--- a/contrib/hstore_plpython/meson.build
+++ b/contrib/hstore_plpython/meson.build
@@ -6,6 +6,12 @@ hstore_plpython_sources = files(
'hstore_plpython.c',
)
+if host_system == 'windows'
+ hstore_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'hstore_plpython3',
+ '--FILEDESC', 'hstore_plpython - hstore transform for plpython',])
+endif
+
hstore_plpython = shared_module('hstore_plpython3',
hstore_plpython_sources,
include_directories: [plpython_inc, hstore_inc, ],
diff --git a/contrib/intarray/meson.build b/contrib/intarray/meson.build
index 1655bcbb3fd..b7cf1ce0cad 100644
--- a/contrib/intarray/meson.build
+++ b/contrib/intarray/meson.build
@@ -8,6 +8,12 @@ intarray_sources = files(
'_intbig_gist.c',
)
+if host_system == 'windows'
+ intarray_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', '_int',
+ '--FILEDESC', 'intarray - functions and operators for arrays of integers',])
+endif
+
intarray = shared_module('_int',
intarray_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/isn/meson.build b/contrib/isn/meson.build
index cc30bbeb55c..db68a718313 100644
--- a/contrib/isn/meson.build
+++ b/contrib/isn/meson.build
@@ -2,6 +2,12 @@ isn_sources = files(
'isn.c',
)
+if host_system == 'windows'
+ isn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isn',
+ '--FILEDESC', 'isn - data types for international product numbering standards',])
+endif
+
isn = shared_module('isn',
isn_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/jsonb_plperl/meson.build b/contrib/jsonb_plperl/meson.build
index 5c915d8ed94..071a7a98d2c 100644
--- a/contrib/jsonb_plperl/meson.build
+++ b/contrib/jsonb_plperl/meson.build
@@ -6,6 +6,12 @@ jsonb_plperl_sources = files(
'jsonb_plperl.c',
)
+if host_system == 'windows'
+ jsonb_plperl_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plperl',
+ '--FILEDESC', 'jsonb_plperl - jsonb transform for plperl',])
+endif
+
jsonb_plperl = shared_module('jsonb_plperl',
jsonb_plperl_sources,
include_directories: [plperl_inc],
diff --git a/contrib/jsonb_plpython/meson.build b/contrib/jsonb_plpython/meson.build
index de8e1105c6a..84dc1161e8b 100644
--- a/contrib/jsonb_plpython/meson.build
+++ b/contrib/jsonb_plpython/meson.build
@@ -6,6 +6,12 @@ jsonb_plpython_sources = files(
'jsonb_plpython.c',
)
+if host_system == 'windows'
+ jsonb_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'jsonb_plpython3',
+ '--FILEDESC', 'jsonb_plpython - jsonb transform for plpython',])
+endif
+
jsonb_plpython = shared_module('jsonb_plpython3',
jsonb_plpython_sources,
include_directories: [plpython_inc],
diff --git a/contrib/lo/meson.build b/contrib/lo/meson.build
index 9082d5713c7..61ae131f1cc 100644
--- a/contrib/lo/meson.build
+++ b/contrib/lo/meson.build
@@ -2,6 +2,12 @@ lo_sources = files(
'lo.c',
)
+if host_system == 'windows'
+ lo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'lo',
+ '--FILEDESC', 'lo - management for large objects',])
+endif
+
lo = shared_module('lo',
lo_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree/meson.build b/contrib/ltree/meson.build
index 9463fc2c5e5..421292cea9d 100644
--- a/contrib/ltree/meson.build
+++ b/contrib/ltree/meson.build
@@ -13,6 +13,12 @@ ltree_sources = files(
# .. so that includes of ltree/ltree.h work
ltree_inc = include_directories('.', '../')
+if host_system == 'windows'
+ ltree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree',
+ '--FILEDESC', 'ltree - hierarchical label data type',])
+endif
+
ltree = shared_module('ltree',
ltree_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/ltree_plpython/meson.build b/contrib/ltree_plpython/meson.build
index 429d75006aa..acf5e4a6fc8 100644
--- a/contrib/ltree_plpython/meson.build
+++ b/contrib/ltree_plpython/meson.build
@@ -6,6 +6,12 @@ ltree_plpython_sources = files(
'ltree_plpython.c',
)
+if host_system == 'windows'
+ ltree_plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ltree_plpython3',
+ '--FILEDESC', 'ltree_plpython - ltree transform for plpython',])
+endif
+
ltree_plpython = shared_module('ltree_plpython3',
ltree_plpython_sources,
include_directories: [plpython_inc, ltree_inc],
diff --git a/contrib/oid2name/meson.build b/contrib/oid2name/meson.build
index 1dad5d8f6e7..1a248f19260 100644
--- a/contrib/oid2name/meson.build
+++ b/contrib/oid2name/meson.build
@@ -1,5 +1,15 @@
+oid2name_sources = files(
+ 'oid2name.c',
+)
+
+if host_system == 'windows'
+ oid2name_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'oid2name',
+ '--FILEDESC', 'oid2name - examine the file structure',])
+endif
+
oid2name = executable('oid2name',
- ['oid2name.c'],
+ oid2name_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/old_snapshot/meson.build b/contrib/old_snapshot/meson.build
index 8e7ee09a43a..77276c3715a 100644
--- a/contrib/old_snapshot/meson.build
+++ b/contrib/old_snapshot/meson.build
@@ -2,6 +2,12 @@ old_snapshot_sources = files(
'time_mapping.c',
)
+if host_system == 'windows'
+ old_snapshot_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'old_snapshot',
+ '--FILEDESC', 'old_snapshot - utilities in support of old_snapshot_threshold',])
+endif
+
old_snapshot = shared_module('old_snapshot',
old_snapshot_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/pageinspect/meson.build b/contrib/pageinspect/meson.build
index 4af8153e4fd..3ec50b9445e 100644
--- a/contrib/pageinspect/meson.build
+++ b/contrib/pageinspect/meson.build
@@ -9,6 +9,12 @@ pageinspect_sources = files(
'rawpage.c',
)
+if host_system == 'windows'
+ pageinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pageinspect',
+ '--FILEDESC', 'pageinspect - functions to inspect contents of database pages',])
+endif
+
pageinspect = shared_module('pageinspect',
pageinspect_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/passwordcheck/meson.build b/contrib/passwordcheck/meson.build
index 7da47d02f1d..383d7df372a 100644
--- a/contrib/passwordcheck/meson.build
+++ b/contrib/passwordcheck/meson.build
@@ -9,6 +9,12 @@ passwordcheck_deps = []
# passwordcheck_c_args += ['-DUSE_CRACKLIB', '-DCRACKLIB_DICTPATH="/usr/lib/cracklib_dict"']
# passwordcheck_deps += [cc.find_library('crack')]
+if host_system == 'windows'
+ passwordcheck_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'passwordcheck',
+ '--FILEDESC', 'passwordcheck - strengthen user password checks',])
+endif
+
passwordcheck = shared_module('passwordcheck',
passwordcheck_sources,
c_args: passwordcheck_c_args,
diff --git a/contrib/pg_buffercache/meson.build b/contrib/pg_buffercache/meson.build
index 2c69eae3ea2..dd9948e5f0b 100644
--- a/contrib/pg_buffercache/meson.build
+++ b/contrib/pg_buffercache/meson.build
@@ -1,7 +1,15 @@
+pg_buffercache_sources = files(
+ 'pg_buffercache_pages.c',
+)
+
+if host_system == 'windows'
+ pg_buffercache_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_buffercache',
+ '--FILEDESC', 'pg_buffercache - monitoring of shared buffer cache in real-time',])
+endif
+
pg_buffercache = shared_module('pg_buffercache',
- files(
- 'pg_buffercache_pages.c',
- ),
+ pg_buffercache_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_buffercache
diff --git a/contrib/pg_freespacemap/meson.build b/contrib/pg_freespacemap/meson.build
index f795014d7ca..904b37b6e9b 100644
--- a/contrib/pg_freespacemap/meson.build
+++ b/contrib/pg_freespacemap/meson.build
@@ -1,7 +1,15 @@
+pg_freespacemap_sources = files(
+ 'pg_freespacemap.c',
+)
+
+if host_system == 'windows'
+ pg_freespacemap_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_freespacemap',
+ '--FILEDESC', 'pg_freespacemap - monitoring of free space map',])
+endif
+
pg_freespacemap = shared_module('pg_freespacemap',
- files(
- 'pg_freespacemap.c',
- ),
+ pg_freespacemap_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_freespacemap
diff --git a/contrib/pg_prewarm/meson.build b/contrib/pg_prewarm/meson.build
index bdca9af4f27..b7140cee34b 100644
--- a/contrib/pg_prewarm/meson.build
+++ b/contrib/pg_prewarm/meson.build
@@ -1,8 +1,16 @@
+pg_prewarm_sources = files(
+ 'autoprewarm.c',
+ 'pg_prewarm.c',
+)
+
+if host_system == 'windows'
+ pg_prewarm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_prewarm',
+ '--FILEDESC', 'pg_prewarm - preload relation data into system buffer cache',])
+endif
+
pg_prewarm = shared_module('pg_prewarm',
- files(
- 'autoprewarm.c',
- 'pg_prewarm.c',
- ),
+ pg_prewarm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_prewarm
diff --git a/contrib/pg_stat_statements/meson.build b/contrib/pg_stat_statements/meson.build
index ac117d2fc1d..854df138e76 100644
--- a/contrib/pg_stat_statements/meson.build
+++ b/contrib/pg_stat_statements/meson.build
@@ -1,5 +1,15 @@
+pg_stat_statements_sources = files(
+ 'pg_stat_statements.c',
+)
+
+if host_system == 'windows'
+ pg_stat_statements_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_stat_statements',
+ '--FILEDESC', 'pg_stat_statements - execution statistics of SQL statements',])
+endif
+
pg_stat_statements = shared_module('pg_stat_statements',
- files('pg_stat_statements.c'),
+ pg_stat_statements_sources,
kwargs: contrib_mod_args + {
'dependencies': contrib_mod_args['dependencies'],
},
diff --git a/contrib/pg_surgery/meson.build b/contrib/pg_surgery/meson.build
index ac71caa5276..7b5c5999f4b 100644
--- a/contrib/pg_surgery/meson.build
+++ b/contrib/pg_surgery/meson.build
@@ -1,7 +1,15 @@
+pg_surgery_sources = files(
+ 'heap_surgery.c',
+)
+
+if host_system == 'windows'
+ pg_surgery_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_surgery',
+ '--FILEDESC', 'pg_surgery - perform surgery on a damaged relation',])
+endif
+
pg_surgery = shared_module('pg_surgery',
- files(
- 'heap_surgery.c',
- ),
+ pg_surgery_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_surgery
diff --git a/contrib/pg_trgm/meson.build b/contrib/pg_trgm/meson.build
index a90628d23c6..c8c7c07b308 100644
--- a/contrib/pg_trgm/meson.build
+++ b/contrib/pg_trgm/meson.build
@@ -1,10 +1,18 @@
+pg_trgm_sources = files(
+ 'trgm_gin.c',
+ 'trgm_gist.c',
+ 'trgm_op.c',
+ 'trgm_regexp.c',
+)
+
+if host_system == 'windows'
+ pg_trgm_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_trgm',
+ '--FILEDESC', 'pg_trgm - trigram matching',])
+endif
+
pg_trgm = shared_module('pg_trgm',
- files(
- 'trgm_gin.c',
- 'trgm_gist.c',
- 'trgm_op.c',
- 'trgm_regexp.c',
- ),
+ pg_trgm_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_trgm
diff --git a/contrib/pg_visibility/meson.build b/contrib/pg_visibility/meson.build
index 933dc99ac4d..263a0d08b82 100644
--- a/contrib/pg_visibility/meson.build
+++ b/contrib/pg_visibility/meson.build
@@ -1,7 +1,15 @@
+pg_visibility_sources = files(
+ 'pg_visibility.c',
+)
+
+if host_system == 'windows'
+ pg_visibility_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_visibility',
+ '--FILEDESC', 'pg_visibility - page visibility information',])
+endif
+
pg_visibility = shared_module('pg_visibility',
- files(
- 'pg_visibility.c',
- ),
+ pg_visibility_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pg_visibility
diff --git a/contrib/pg_walinspect/meson.build b/contrib/pg_walinspect/meson.build
index d6b27877dd0..4314a3182a2 100644
--- a/contrib/pg_walinspect/meson.build
+++ b/contrib/pg_walinspect/meson.build
@@ -1,5 +1,11 @@
pg_walinspect_sources = files('pg_walinspect.c')
+if host_system == 'windows'
+ pg_walinspect_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_walinspect',
+ '--FILEDESC', 'pg_walinspect - functions to inspect contents of PostgreSQL Write-Ahead Log',])
+endif
+
pg_walinspect = shared_module('pg_walinspect',
pg_walinspect_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/pgcrypto/meson.build b/contrib/pgcrypto/meson.build
index fe0851bf8e8..7fc7bbc7ca1 100644
--- a/contrib/pgcrypto/meson.build
+++ b/contrib/pgcrypto/meson.build
@@ -69,6 +69,12 @@ else
pgcrypto_regress += 'pgp-zlib-DISABLED'
endif
+if host_system == 'windows'
+ pgcrypto_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgcrypto',
+ '--FILEDESC', 'pgcrypto - cryptographic functions',])
+endif
+
pgcrypto = shared_module('pgcrypto',
pgcrypto_sources,
link_with: pgcrypto_link_with,
diff --git a/contrib/pgrowlocks/meson.build b/contrib/pgrowlocks/meson.build
index 1b41691a2a3..8092f0d4a64 100644
--- a/contrib/pgrowlocks/meson.build
+++ b/contrib/pgrowlocks/meson.build
@@ -1,7 +1,15 @@
+pgrowlocks_sources = files(
+ 'pgrowlocks.c',
+)
+
+if host_system == 'windows'
+ pgrowlocks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgrowlocks',
+ '--FILEDESC', 'pgrowlocks - display row locking information',])
+endif
+
pgrowlocks = shared_module('pgrowlocks',
- files(
- 'pgrowlocks.c',
- ),
+ pgrowlocks_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgrowlocks
diff --git a/contrib/pgstattuple/meson.build b/contrib/pgstattuple/meson.build
index 8e828692d5c..05e4cd46a5c 100644
--- a/contrib/pgstattuple/meson.build
+++ b/contrib/pgstattuple/meson.build
@@ -1,9 +1,17 @@
+pgstattuple_sources = files(
+ 'pgstatapprox.c',
+ 'pgstatindex.c',
+ 'pgstattuple.c',
+)
+
+if host_system == 'windows'
+ pgstattuple_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgstattuple',
+ '--FILEDESC', 'pgstattuple - tuple-level statistics',])
+endif
+
pgstattuple = shared_module('pgstattuple',
- files(
- 'pgstatapprox.c',
- 'pgstatindex.c',
- 'pgstattuple.c',
- ),
+ pgstattuple_sources,
kwargs: contrib_mod_args,
)
contrib_targets += pgstattuple
diff --git a/contrib/postgres_fdw/meson.build b/contrib/postgres_fdw/meson.build
index 378885ec93b..d3746ff135c 100644
--- a/contrib/postgres_fdw/meson.build
+++ b/contrib/postgres_fdw/meson.build
@@ -6,6 +6,12 @@ postgres_fdw_sources = files(
'shippable.c',
)
+if host_system == 'windows'
+ postgres_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'postgres_fdw',
+ '--FILEDESC', 'postgres_fdw - foreign data wrapper for PostgreSQL',])
+endif
+
postgres_fdw = shared_module('postgres_fdw',
postgres_fdw_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/seg/meson.build b/contrib/seg/meson.build
index e476eab2a77..c6fbb22999b 100644
--- a/contrib/seg/meson.build
+++ b/contrib/seg/meson.build
@@ -17,6 +17,12 @@ seg_parse = custom_target('segparse',
generated_sources += seg_parse.to_list()
seg_sources += seg_parse
+if host_system == 'windows'
+ seg_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'seg',
+ '--FILEDESC', 'seg - line segment data type',])
+endif
+
seg = shared_module('seg',
seg_sources,
include_directories: include_directories('.'),
diff --git a/contrib/sepgsql/meson.build b/contrib/sepgsql/meson.build
index 60a95e17c2f..8bef239e3c2 100644
--- a/contrib/sepgsql/meson.build
+++ b/contrib/sepgsql/meson.build
@@ -14,6 +14,12 @@ sepgsql_sources = files(
'uavc.c',
)
+if host_system == 'windows'
+ sepgsql_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sepgsql',
+ '--FILEDESC', 'sepgsql - SELinux integration',])
+endif
+
sepgsql = shared_module('sepgsql',
sepgsql_sources,
kwargs: contrib_mod_args + {
diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build
index 98008980ec2..e7d78189ef5 100644
--- a/contrib/spi/meson.build
+++ b/contrib/spi/meson.build
@@ -1,5 +1,15 @@
+autoinc_sources = files(
+ 'autoinc.c',
+)
+
+if host_system == 'windows'
+ autoinc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'autoinc',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
autoinc = shared_module('autoinc',
- ['autoinc.c'],
+ autoinc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += autoinc
@@ -9,8 +19,18 @@ install_data('autoinc.control', 'autoinc--1.0.sql',
)
+insert_username_sources = files(
+ 'insert_username.c',
+)
+
+if host_system == 'windows'
+ insert_username_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'insert_username',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
insert_username = shared_module('insert_username',
- ['insert_username.c'],
+ insert_username_sources,
kwargs: contrib_mod_args,
)
contrib_targets += insert_username
@@ -22,8 +42,18 @@ install_data(
)
+moddatetime_sources = files(
+ 'moddatetime.c',
+)
+
+if host_system == 'windows'
+ moddatetime_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'moddatetime',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
moddatetime = shared_module('moddatetime',
- ['moddatetime.c'],
+ moddatetime_sources,
kwargs: contrib_mod_args,
)
contrib_targets += moddatetime
@@ -38,8 +68,18 @@ install_data(
# comment out if you want a quieter refint package for other uses
refint_cflags = ['-DREFINT_VERBOSE']
+refint_sources = files(
+ 'refint.c',
+)
+
+if host_system == 'windows'
+ refint_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'refint',
+ '--FILEDESC', 'spi - examples of using SPI and triggers',])
+endif
+
refint = shared_module('refint',
- ['refint.c'],
+ refint_sources,
c_args: refint_cflags,
kwargs: contrib_mod_args,
)
diff --git a/contrib/sslinfo/meson.build b/contrib/sslinfo/meson.build
index 53f752a08ac..136983e783d 100644
--- a/contrib/sslinfo/meson.build
+++ b/contrib/sslinfo/meson.build
@@ -2,10 +2,18 @@ if not ssl.found()
subdir_done()
endif
+sslinfo_sources = files(
+ 'sslinfo.c',
+)
+
+if host_system == 'windows'
+ sslinfo_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'sslinfo',
+ '--FILEDESC', 'sslinfo - information about client SSL certificate',])
+endif
+
sslinfo = shared_module('sslinfo',
- files(
- 'sslinfo.c',
- ),
+ sslinfo_sources,
kwargs: contrib_mod_args + {
'dependencies': [ssl, contrib_mod_args['dependencies']],
}
diff --git a/contrib/tablefunc/meson.build b/contrib/tablefunc/meson.build
index f4230096c0c..d2ddc8d3b39 100644
--- a/contrib/tablefunc/meson.build
+++ b/contrib/tablefunc/meson.build
@@ -1,7 +1,15 @@
+tablefunc_sources = files(
+ 'tablefunc.c',
+)
+
+if host_system == 'windows'
+ tablefunc_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tablefunc',
+ '--FILEDESC', 'tablefunc - various functions that return tables',])
+endif
+
tablefunc = shared_module('tablefunc',
- files(
- 'tablefunc.c',
- ),
+ tablefunc_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tablefunc
diff --git a/contrib/tcn/meson.build b/contrib/tcn/meson.build
index c3a025247d4..71261c3b0a2 100644
--- a/contrib/tcn/meson.build
+++ b/contrib/tcn/meson.build
@@ -1,7 +1,15 @@
+tcn_sources = files(
+ 'tcn.c',
+)
+
+if host_system == 'windows'
+ tcn_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tcn',
+ '--FILEDESC', 'tcn - trigger function notifying listeners',])
+endif
+
tcn = shared_module('tcn',
- files(
- 'tcn.c',
- ),
+ tcn_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tcn
diff --git a/contrib/test_decoding/meson.build b/contrib/test_decoding/meson.build
index dd7cb0101ad..6376103c689 100644
--- a/contrib/test_decoding/meson.build
+++ b/contrib/test_decoding/meson.build
@@ -2,6 +2,12 @@ test_decoding_sources = files(
'test_decoding.c',
)
+if host_system == 'windows'
+ test_decoding_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_decoding',
+ '--FILEDESC', 'test_decoding - example of a logical decoding output plugin',])
+endif
+
test_decoding = shared_module('test_decoding',
test_decoding_sources,
kwargs: contrib_mod_args,
diff --git a/contrib/tsm_system_rows/meson.build b/contrib/tsm_system_rows/meson.build
index b9cd42115a8..380abb49883 100644
--- a/contrib/tsm_system_rows/meson.build
+++ b/contrib/tsm_system_rows/meson.build
@@ -1,7 +1,15 @@
+tsm_system_rows_sources = files(
+ 'tsm_system_rows.c',
+)
+
+if host_system == 'windows'
+ tsm_system_rows_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_rows',
+ '--FILEDESC', 'tsm_system_rows - TABLESAMPLE method which accepts number of rows as a limit',])
+endif
+
tsm_system_rows = shared_module('tsm_system_rows',
- files(
- 'tsm_system_rows.c',
- ),
+ tsm_system_rows_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_rows
diff --git a/contrib/tsm_system_time/meson.build b/contrib/tsm_system_time/meson.build
index 18015912ffb..e57a2702c60 100644
--- a/contrib/tsm_system_time/meson.build
+++ b/contrib/tsm_system_time/meson.build
@@ -1,7 +1,15 @@
+tsm_system_time_sources = files(
+ 'tsm_system_time.c',
+)
+
+if host_system == 'windows'
+ tsm_system_time_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'tsm_system_time',
+ '--FILEDESC', 'tsm_system_time - TABLESAMPLE method which accepts time in milliseconds as a limit',])
+endif
+
tsm_system_time = shared_module('tsm_system_time',
- files(
- 'tsm_system_time.c',
- ),
+ tsm_system_time_sources,
kwargs: contrib_mod_args,
)
contrib_targets += tsm_system_time
diff --git a/contrib/unaccent/meson.build b/contrib/unaccent/meson.build
index 872b76e3223..438035132f8 100644
--- a/contrib/unaccent/meson.build
+++ b/contrib/unaccent/meson.build
@@ -1,7 +1,15 @@
+unaccent_sources = files(
+ 'unaccent.c',
+)
+
+if host_system == 'windows'
+ unaccent_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'unaccent',
+ '--FILEDESC', 'unaccent - text search dictionary that removes accents',])
+endif
+
unaccent = shared_module('unaccent',
- files(
- 'unaccent.c',
- ),
+ unaccent_sources,
kwargs: contrib_mod_args,
)
contrib_targets += unaccent
diff --git a/contrib/uuid-ossp/meson.build b/contrib/uuid-ossp/meson.build
index da6d1d75c12..28730f398f0 100644
--- a/contrib/uuid-ossp/meson.build
+++ b/contrib/uuid-ossp/meson.build
@@ -2,10 +2,18 @@ if not uuid.found()
subdir_done()
endif
+uuid_ossp_sources = files(
+ 'uuid-ossp.c',
+)
+
+if host_system == 'windows'
+ uuid_ossp_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'uuid-ossp',
+ '--FILEDESC', 'uuid-ossp - UUID generation',])
+endif
+
uuid_ossp = shared_module('uuid-ossp',
- files(
- 'uuid-ossp.c',
- ),
+ uuid_ossp_sources,
kwargs: contrib_mod_args + {
'dependencies': [uuid, contrib_mod_args['dependencies']],
},
diff --git a/contrib/vacuumlo/meson.build b/contrib/vacuumlo/meson.build
index 7a632b87d1b..846de47dbd1 100644
--- a/contrib/vacuumlo/meson.build
+++ b/contrib/vacuumlo/meson.build
@@ -1,5 +1,15 @@
+vacuumlo_sources = files(
+ 'vacuumlo.c',
+)
+
+if host_system == 'windows'
+ vacuumlo_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'vacuumlo',
+ '--FILEDESC', 'vacuumlo - removes orphaned large objects',])
+endif
+
vacuumlo = executable('vacuumlo',
- ['vacuumlo.c'],
+ vacuumlo_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args,
)
diff --git a/contrib/xml2/meson.build b/contrib/xml2/meson.build
index 9c0b56f01f6..89b0d677516 100644
--- a/contrib/xml2/meson.build
+++ b/contrib/xml2/meson.build
@@ -2,11 +2,19 @@ if not libxml.found()
subdir_done()
endif
+xml2_sources = files(
+ 'xpath.c',
+ 'xslt_proc.c',
+)
+
+if host_system == 'windows'
+ xml2_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgxml',
+ '--FILEDESC', 'xml2 - XPath querying and XSLT',])
+endif
+
xml2 = shared_module('pgxml',
- files(
- 'xpath.c',
- 'xslt_proc.c',
- ),
+ xml2_sources,
kwargs: contrib_mod_args + {
'dependencies': [libxml, libxslt, contrib_mod_args['dependencies']],
},
diff --git a/src/interfaces/ecpg/compatlib/meson.build b/src/interfaces/ecpg/compatlib/meson.build
index b803000c708..4d6454381b5 100644
--- a/src/interfaces/ecpg/compatlib/meson.build
+++ b/src/interfaces/ecpg/compatlib/meson.build
@@ -7,6 +7,12 @@ ecpg_compat_inc = [include_directories('.'), ecpg_inc, libpq_inc]
ecpg_compat_c_args = ['-DSO_MAJOR_VERSION=3']
export_file = custom_target('libecpg_compat.exports', kwargs: gen_export_kwargs)
+if host_system == 'windows'
+ ecpg_compat_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libecpg_compat',
+ '--FILEDESC', 'ECPG compat - compatibility library for ECPG',])
+endif
+
# see src/interfaces/libpq/meson.build
ecpg_compat_st = static_library('libecpg_compat',
ecpg_compat_sources,
diff --git a/src/interfaces/ecpg/ecpglib/meson.build b/src/interfaces/ecpg/ecpglib/meson.build
index 6fdf019149c..7e6e6fbf5c0 100644
--- a/src/interfaces/ecpg/ecpglib/meson.build
+++ b/src/interfaces/ecpg/ecpglib/meson.build
@@ -16,6 +16,12 @@ ecpglib_inc = [include_directories('.'), ecpg_inc]
ecpglib_c_args = ['-DSO_MAJOR_VERSION=6']
export_file = custom_target('libecpg.exports', kwargs: gen_export_kwargs)
+if host_system == 'windows'
+ ecpglib_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libecpg',
+ '--FILEDESC', 'ECPG - embedded SQL in C',])
+endif
+
# see src/interfaces/libpq/meson.build
ecpglib_st = static_library('libecpg',
ecpglib_sources,
diff --git a/src/interfaces/ecpg/pgtypeslib/meson.build b/src/interfaces/ecpg/pgtypeslib/meson.build
index 8e5d235810a..530dd2c602d 100644
--- a/src/interfaces/ecpg/pgtypeslib/meson.build
+++ b/src/interfaces/ecpg/pgtypeslib/meson.build
@@ -12,6 +12,12 @@ export_file = custom_target('libpgtypes.exports', kwargs: gen_export_kwargs)
ecpg_pgtypes_inc = [include_directories('.'), ecpg_inc]
ecpg_pgtypes_c_args = ['-DSO_MAJOR_VERSION=3']
+if host_system == 'windows'
+ ecpg_pgtypes_so_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pgtypes',
+ '--FILEDESC', 'pgtypes - library for data type mapping',])
+endif
+
# see src/interfaces/libpq/meson.build
ecpg_pgtypes_st = static_library('libpgtypes',
ecpg_pgtypes_sources,
diff --git a/src/interfaces/ecpg/preproc/meson.build b/src/interfaces/ecpg/preproc/meson.build
index 1be49c8c27f..74876f039c9 100644
--- a/src/interfaces/ecpg/preproc/meson.build
+++ b/src/interfaces/ecpg/preproc/meson.build
@@ -93,6 +93,12 @@ ecpg_kwlist = custom_target('ecpg_kwlist_d.h',
generated_sources += ecpg_kwlist
ecpg_sources += ecpg_kwlist
+if host_system == 'windows'
+ ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ecpg',
+ '--FILEDESC', 'ecpg - embedded SQL precompiler for C',])
+endif
+
ecpg_exe = executable('ecpg',
ecpg_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
diff --git a/src/interfaces/ecpg/test/meson.build b/src/interfaces/ecpg/test/meson.build
index 8904aa7fd90..94b26d10314 100644
--- a/src/interfaces/ecpg/test/meson.build
+++ b/src/interfaces/ecpg/test/meson.build
@@ -7,6 +7,11 @@ pg_regress_ecpg_sources = pg_regress_c + files(
'pg_regress_ecpg.c',
)
+if host_system == 'windows'
+ pg_regress_ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress_ecpg',])
+endif
+
pg_regress_ecpg = executable('pg_regress_ecpg',
pg_regress_ecpg_sources,
c_args: pg_regress_cflags,
diff --git a/src/test/isolation/meson.build b/src/test/isolation/meson.build
index c7656fd4609..ba27b8c1d44 100644
--- a/src/test/isolation/meson.build
+++ b/src/test/isolation/meson.build
@@ -23,6 +23,12 @@ spec_parser = custom_target('specparse',
isolationtester_sources += spec_parser
generated_sources += spec_parser.to_list()
+if host_system == 'windows'
+ isolation_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_isolation_regress',
+ '--FILEDESC', 'pg_isolation_regress - multi-client test driver',])
+endif
+
pg_isolation_regress = executable('pg_isolation_regress',
isolation_sources,
c_args: pg_regress_cflags,
@@ -34,6 +40,13 @@ pg_isolation_regress = executable('pg_isolation_regress',
)
bin_targets += pg_isolation_regress
+
+if host_system == 'windows'
+ isolationtester_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'isolationtester',
+ '--FILEDESC', 'isolationtester - multi-client test driver',])
+endif
+
isolationtester = executable('isolationtester',
isolationtester_sources,
include_directories: include_directories('.'),
diff --git a/src/test/modules/delay_execution/meson.build b/src/test/modules/delay_execution/meson.build
index cf4bdaba637..a0c3ab6afe7 100644
--- a/src/test/modules/delay_execution/meson.build
+++ b/src/test/modules/delay_execution/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+delay_execution_sources = files(
+ 'delay_execution.c',
+)
+
+if host_system == 'windows'
+ delay_execution_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'delay_execution',
+ '--FILEDESC', 'delay_execution - allow delay between parsing and execution',])
+endif
+
delay_execution = shared_module('delay_execution',
- ['delay_execution.c'],
+ delay_execution_sources,
kwargs: pg_mod_args,
)
testprep_targets += delay_execution
diff --git a/src/test/modules/dummy_index_am/meson.build b/src/test/modules/dummy_index_am/meson.build
index 56ff5f48001..4ce82491135 100644
--- a/src/test/modules/dummy_index_am/meson.build
+++ b/src/test/modules/dummy_index_am/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_index_am_sources = files(
+ 'dummy_index_am.c',
+)
+
+if host_system == 'windows'
+ dummy_index_am_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_index_am',
+ '--FILEDESC', 'dummy_index_am - index access method template',])
+endif
+
dummy_index_am = shared_module('dummy_index_am',
- ['dummy_index_am.c'],
+ dummy_index_am_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_index_am
diff --git a/src/test/modules/dummy_seclabel/meson.build b/src/test/modules/dummy_seclabel/meson.build
index 21b7cf8f353..81b626e496c 100644
--- a/src/test/modules/dummy_seclabel/meson.build
+++ b/src/test/modules/dummy_seclabel/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+dummy_seclabel_sources = files(
+ 'dummy_seclabel.c',
+)
+
+if host_system == 'windows'
+ dummy_seclabel_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'dummy_seclabel',
+ '--FILEDESC', 'dummy_seclabel - regression testing of the SECURITY LABEL statement',])
+endif
+
dummy_seclabel = shared_module('dummy_seclabel',
- ['dummy_seclabel.c'],
+ dummy_seclabel_sources,
kwargs: pg_mod_args,
)
testprep_targets += dummy_seclabel
diff --git a/src/test/modules/libpq_pipeline/meson.build b/src/test/modules/libpq_pipeline/meson.build
index 8384b6e3b2a..de0e2d15626 100644
--- a/src/test/modules/libpq_pipeline/meson.build
+++ b/src/test/modules/libpq_pipeline/meson.build
@@ -1,7 +1,15 @@
+libpq_pipeline_sources = files(
+ 'libpq_pipeline.c',
+)
+
+if host_system == 'windows'
+ libpq_pipeline_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'libpq_pipeline',
+ '--FILEDESC', 'libpq_pipeline - test program for pipeline execution',])
+endif
+
libpq_pipeline = executable('libpq_pipeline',
- files(
- 'libpq_pipeline.c',
- ),
+ libpq_pipeline_sources,
dependencies: [frontend_code, libpq],
kwargs: default_bin_args + {
'install': false,
diff --git a/src/test/modules/plsample/meson.build b/src/test/modules/plsample/meson.build
index 45de3f1990d..e1ea2c7a16f 100644
--- a/src/test/modules/plsample/meson.build
+++ b/src/test/modules/plsample/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+plsample_sources = files(
+ 'plsample.c',
+)
+
+if host_system == 'windows'
+ plsample_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'plsample',
+ '--FILEDESC', 'PL/Sample - template for procedural language',])
+endif
+
plsample = shared_module('plsample',
- ['plsample.c'],
+ plsample_sources,
kwargs: pg_mod_args,
)
testprep_targets += plsample
diff --git a/src/test/modules/spgist_name_ops/meson.build b/src/test/modules/spgist_name_ops/meson.build
index 857fc7e140e..445296fee0b 100644
--- a/src/test/modules/spgist_name_ops/meson.build
+++ b/src/test/modules/spgist_name_ops/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+spgist_name_ops_sources = files(
+ 'spgist_name_ops.c',
+)
+
+if host_system == 'windows'
+ spgist_name_ops_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'spgist_name_ops',
+ '--FILEDESC', 'spgist_name_ops - test opclass for SP-GiST',])
+endif
+
spgist_name_ops = shared_module('spgist_name_ops',
- ['spgist_name_ops.c'],
+ spgist_name_ops_sources,
kwargs: pg_mod_args,
)
testprep_targets += spgist_name_ops
diff --git a/src/test/modules/ssl_passphrase_callback/meson.build b/src/test/modules/ssl_passphrase_callback/meson.build
index a57bd0693a3..a9eb4c564da 100644
--- a/src/test/modules/ssl_passphrase_callback/meson.build
+++ b/src/test/modules/ssl_passphrase_callback/meson.build
@@ -3,8 +3,19 @@ if not ssl.found()
endif
# FIXME: prevent install during main install, but not during test :/
+
+ssl_passphrase_callback_sources = files(
+ 'ssl_passphrase_func.c',
+)
+
+if host_system == 'windows'
+ ssl_passphrase_callback_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'ssl_passphrase_func',
+ '--FILEDESC', 'callback function to provide a passphrase',])
+endif
+
ssl_passphrase_callback = shared_module('ssl_passphrase_func',
- ['ssl_passphrase_func.c'],
+ ssl_passphrase_callback_sources,
kwargs: pg_mod_args + {
'dependencies': [ssl, pg_mod_args['dependencies']],
},
diff --git a/src/test/modules/test_bloomfilter/meson.build b/src/test/modules/test_bloomfilter/meson.build
index 945eb5a70c4..3cf6b05754f 100644
--- a/src/test/modules/test_bloomfilter/meson.build
+++ b/src/test/modules/test_bloomfilter/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_bloomfilter_sources = files(
+ 'test_bloomfilter.c',
+)
+
+if host_system == 'windows'
+ test_bloomfilter_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_bloomfilter',
+ '--FILEDESC', 'test_bloomfilter - test code for Bloom filter library',])
+endif
+
test_bloomfilter = shared_module('test_bloomfilter',
- ['test_bloomfilter.c'],
+ test_bloomfilter_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_bloomfilter
diff --git a/src/test/modules/test_ddl_deparse/meson.build b/src/test/modules/test_ddl_deparse/meson.build
index 81ad5adc526..54d44f9b2b4 100644
--- a/src/test/modules/test_ddl_deparse/meson.build
+++ b/src/test/modules/test_ddl_deparse/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ddl_deparse_sources = files(
+ 'test_ddl_deparse.c',
+)
+
+if host_system == 'windows'
+ test_ddl_deparse_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ddl_deparse',
+ '--FILEDESC', 'test_ddl_deparse - regression testing for DDL deparsing',])
+endif
+
test_ddl_deparse = shared_module('test_ddl_deparse',
- ['test_ddl_deparse.c'],
+ test_ddl_deparse_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ddl_deparse
diff --git a/src/test/modules/test_ginpostinglist/meson.build b/src/test/modules/test_ginpostinglist/meson.build
index abf0a3b0430..b3b49c56122 100644
--- a/src/test/modules/test_ginpostinglist/meson.build
+++ b/src/test/modules/test_ginpostinglist/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_ginpostinglist_sources = files(
+ 'test_ginpostinglist.c',
+)
+
+if host_system == 'windows'
+ test_ginpostinglist_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_ginpostinglist',
+ '--FILEDESC', 'test_ginpostinglist - test code for src/backend/access/gin//ginpostinglist.c',])
+endif
+
test_ginpostinglist = shared_module('test_ginpostinglist',
- ['test_ginpostinglist.c'],
+ test_ginpostinglist_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_ginpostinglist
diff --git a/src/test/modules/test_integerset/meson.build b/src/test/modules/test_integerset/meson.build
index c32c469c69a..4bd75af4b5e 100644
--- a/src/test/modules/test_integerset/meson.build
+++ b/src/test/modules/test_integerset/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_integerset_sources = files(
+ 'test_integerset.c',
+)
+
+if host_system == 'windows'
+ test_integerset_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_integerset',
+ '--FILEDESC', 'test_integerset - test code for src/backend/lib/integerset.c',])
+endif
+
test_integerset = shared_module('test_integerset',
- ['test_integerset.c'],
+ test_integerset_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_integerset
diff --git a/src/test/modules/test_lfind/meson.build b/src/test/modules/test_lfind/meson.build
index a388de1156a..c5405b8f878 100644
--- a/src/test/modules/test_lfind/meson.build
+++ b/src/test/modules/test_lfind/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_lfind_sources = files(
+ 'test_lfind.c',
+)
+
+if host_system == 'windows'
+ test_lfind_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_lfind',
+ '--FILEDESC', 'test_lfind - test code for optimized linear search functions',])
+endif
+
test_lfind = shared_module('test_lfind',
- ['test_lfind.c'],
+ test_lfind_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_lfind
diff --git a/src/test/modules/test_oat_hooks/meson.build b/src/test/modules/test_oat_hooks/meson.build
index 5faf0459777..8802bbbac55 100644
--- a/src/test/modules/test_oat_hooks/meson.build
+++ b/src/test/modules/test_oat_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_oat_hooks_sources = files(
+ 'test_oat_hooks.c',
+)
+
+if host_system == 'windows'
+ test_oat_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_oat_hooks',
+ '--FILEDESC', 'test_oat_hooks - example use of object access hooks',])
+endif
+
test_oat_hooks = shared_module('test_oat_hooks',
- ['test_oat_hooks.c'],
+ test_oat_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_oat_hooks
diff --git a/src/test/modules/test_parser/meson.build b/src/test/modules/test_parser/meson.build
index b59960f615e..1c17113347f 100644
--- a/src/test/modules/test_parser/meson.build
+++ b/src/test/modules/test_parser/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_parser_sources = files(
+ 'test_parser.c',
+)
+
+if host_system == 'windows'
+ test_parser_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_parser',
+ '--FILEDESC', 'test_parser - example of a custom parser for full-text search',])
+endif
+
test_parser = shared_module('test_parser',
- ['test_parser.c'],
+ test_parser_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_parser
diff --git a/src/test/modules/test_predtest/meson.build b/src/test/modules/test_predtest/meson.build
index 1cfa84b3609..9a5be43c9c0 100644
--- a/src/test/modules/test_predtest/meson.build
+++ b/src/test/modules/test_predtest/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_predtest_sources = files(
+ 'test_predtest.c',
+)
+
+if host_system == 'windows'
+ test_predtest_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_predtest',
+ '--FILEDESC', 'test_predtest - test code for optimizer/util/predtest.c',])
+endif
+
test_predtest = shared_module('test_predtest',
- ['test_predtest.c'],
+ test_predtest_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_predtest
diff --git a/src/test/modules/test_rbtree/meson.build b/src/test/modules/test_rbtree/meson.build
index 34cbc3e1624..f067e08d321 100644
--- a/src/test/modules/test_rbtree/meson.build
+++ b/src/test/modules/test_rbtree/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rbtree_sources = files(
+ 'test_rbtree.c',
+)
+
+if host_system == 'windows'
+ test_rbtree_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rbtree',
+ '--FILEDESC', 'test_rbtree - test code for red-black tree library',])
+endif
+
test_rbtree = shared_module('test_rbtree',
- ['test_rbtree.c'],
+ test_rbtree_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rbtree
diff --git a/src/test/modules/test_regex/meson.build b/src/test/modules/test_regex/meson.build
index 867a64e57c3..cfb938d9f1e 100644
--- a/src/test/modules/test_regex/meson.build
+++ b/src/test/modules/test_regex/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_regex_sources = files(
+ 'test_regex.c',
+)
+
+if host_system == 'windows'
+ test_regex_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_regex',
+ '--FILEDESC', 'test_regex - test code for backend/regex/',])
+endif
+
test_regex = shared_module('test_regex',
- ['test_regex.c'],
+ test_regex_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_regex
diff --git a/src/test/modules/test_rls_hooks/meson.build b/src/test/modules/test_rls_hooks/meson.build
index 80d8adda332..3fb273b2934 100644
--- a/src/test/modules/test_rls_hooks/meson.build
+++ b/src/test/modules/test_rls_hooks/meson.build
@@ -1,6 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_rls_hooks_sources = files(
+ 'test_rls_hooks.c',
+)
+
+if host_system == 'windows'
+ test_rls_hooks_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_rls_hooks',
+ '--FILEDESC', 'test_rls_hooks - example use of RLS hooks',])
+endif
+
test_rls_hooks = shared_module('test_rls_hooks',
- ['test_rls_hooks.c'],
+ test_rls_hooks_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_rls_hooks
diff --git a/src/test/modules/test_shm_mq/meson.build b/src/test/modules/test_shm_mq/meson.build
index b663543d616..16c8fdb57f4 100644
--- a/src/test/modules/test_shm_mq/meson.build
+++ b/src/test/modules/test_shm_mq/meson.build
@@ -1,10 +1,19 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_shm_mq_sources = files(
+ 'setup.c',
+ 'test.c',
+ 'worker.c',
+)
+
+if host_system == 'windows'
+ test_shm_mq_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'test_shm_mq',
+ '--FILEDESC', 'test_shm_mq - example use of shared memory message queue',])
+endif
+
test_shm_mq = shared_module('test_shm_mq',
- files(
- 'setup.c',
- 'test.c',
- 'worker.c',
- ),
+ test_shm_mq_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_shm_mq
diff --git a/src/test/modules/worker_spi/meson.build b/src/test/modules/worker_spi/meson.build
index 32acad883b2..a4a158c75b9 100644
--- a/src/test/modules/worker_spi/meson.build
+++ b/src/test/modules/worker_spi/meson.build
@@ -1,8 +1,17 @@
# FIXME: prevent install during main install, but not during test :/
+
+test_worker_spi_sources = files(
+ 'worker_spi.c',
+)
+
+if host_system == 'windows'
+ test_worker_spi_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'worker_spi',
+ '--FILEDESC', 'worker_spi - background worker example',])
+endif
+
test_worker_spi = shared_module('worker_spi',
- files(
- 'worker_spi.c',
- ),
+ test_worker_spi_sources,
kwargs: pg_mod_args,
)
testprep_targets += test_worker_spi
diff --git a/src/test/regress/meson.build b/src/test/regress/meson.build
index 03de591b0c7..3dcfc11278f 100644
--- a/src/test/regress/meson.build
+++ b/src/test/regress/meson.build
@@ -17,6 +17,12 @@ host_tuple = '@0@-@1@-@2@'.format(host_cpu, host_system, host_tuple_cc)
pg_regress_cflags = ['-DHOST_TUPLE="@0@"'.format(host_tuple), '-DSHELLPROG="/bin/sh"']
+if host_system == 'windows'
+ regress_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'pg_regress',
+ '--FILEDESC', 'pg_regress - test driver',])
+endif
+
pg_regress = executable('pg_regress',
regress_sources,
c_args: pg_regress_cflags,
diff --git a/meson.build b/meson.build
index c709643fe5e..25a6fa941cc 100644
--- a/meson.build
+++ b/meson.build
@@ -2564,6 +2564,65 @@ gen_export_kwargs = {
+###
+### windows resources related stuff
+###
+
+if host_system == 'windows'
+ pg_ico = meson.source_root() / 'src' / 'port' / 'win32.ico'
+ win32ver_rc = files('src/port/win32ver.rc')
+ rcgen = find_program('src/tools/rcgen', native: true)
+
+ rcgen_base_args = [
+ '--srcdir', '@SOURCE_DIR@',
+ '--builddir', meson.build_root(),
+ '--rcout', '@OUTPUT0@',
+ '--out', '@OUTPUT1@',
+ '--input', '@INPUT@',
+ '@EXTRA_ARGS@',
+ ]
+
+ if cc.get_argument_syntax() == 'msvc'
+ rc = find_program('rc', required: true)
+ rcgen_base_args += ['--rc', rc.path()]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ else
+ windres = find_program('windres', required: true)
+ rcgen_base_args += ['--windres', windres.path()]
+ rcgen_outputs = ['@[email protected]', '@[email protected]']
+ endif
+
+ # msbuild backend doesn't support this atm
+ if meson.backend() == 'ninja'
+ rcgen_base_args += ['--depfile', '@DEPFILE@']
+ endif
+
+ rcgen_bin_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_APP',
+ '--FILEENDING', 'exe',
+ '--ICO', pg_ico
+ ]
+
+ rcgen_lib_args = rcgen_base_args + [
+ '--VFT_TYPE', 'VFT_DLL',
+ '--FILEENDING', 'dll',
+ ]
+
+ rc_bin_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_bin_args,
+ output: rcgen_outputs,
+ )
+
+ rc_lib_gen = generator(rcgen,
+ depfile: '@[email protected]',
+ arguments: rcgen_lib_args,
+ output: rcgen_outputs,
+ )
+endif
+
+
+
# headers that the whole build tree depends on
generated_headers = []
# headers that the backend build depends on
diff --git a/src/timezone/meson.build b/src/timezone/meson.build
index 16f082ecfa8..9e0934c000b 100644
--- a/src/timezone/meson.build
+++ b/src/timezone/meson.build
@@ -28,6 +28,12 @@ if get_option('system_tzdata') == ''
if meson.is_cross_build()
zic = find_program(get_option('ZIC'), native: true, required: true)
else
+ if host_system == 'windows'
+ zic_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
+ '--NAME', 'zic',
+ '--FILEDESC', 'zic - time zone compiler',])
+ endif
+
zic = executable('zic', zic_sources,
dependencies: [frontend_code],
kwargs: default_bin_args + {'install': false}
diff --git a/src/tools/rcgen b/src/tools/rcgen
new file mode 100755
index 00000000000..0c84772163c
--- /dev/null
+++ b/src/tools/rcgen
@@ -0,0 +1,105 @@
+#!/usr/bin/env python3
+
+# Helper for building resource files when building for windows. Always
+# generates a .rc from the input .rc file. When building with msvc we
+# additionally generate a .res file with 'rc', when building with gcc, we use
+# windres to directly generate a .o. Additionally we generate basic
+# dependencies if depfile is specified.
+
+import argparse
+import os
+import subprocess
+import sys
+
+parser = argparse.ArgumentParser(description='generate PostgreSQL rc file')
+
+parser.add_argument('--srcdir', type=os.path.abspath,
+ required=True)
+parser.add_argument('--builddir', type=os.path.abspath,
+ required=True)
+
+binaries = parser.add_argument_group('binaries')
+binaries.add_argument('--windres', type=os.path.abspath)
+binaries.add_argument('--rc', type=os.path.abspath)
+
+inout = parser.add_argument_group('inout')
+inout.add_argument('--depfile', type=argparse.FileType('w'))
+inout.add_argument('--input', type=argparse.FileType('r'),
+ required=True)
+inout.add_argument('--rcout', type=argparse.FileType('w'),
+ required=True)
+inout.add_argument('--out', type=str,
+ required=True)
+
+replacements = parser.add_argument_group('replacements')
+replacements.add_argument('--FILEDESC', type=str)
+replacements.add_argument('--NAME', type=str, required=True)
+replacements.add_argument('--VFT_TYPE', type=str, required=True)
+replacements.add_argument('--FILEENDING', type=str, required=True)
+replacements.add_argument('--ICO', type=str)
+
+args = parser.parse_args()
+
+# determine replacement strings
+
+internal_name = '"{0}"'.format(args.NAME)
+original_name = '"{0}.{1}"'.format(args.NAME, args.FILEENDING)
+
+# if no description is passed in, generate one based on the name
+if args.FILEDESC:
+ filedesc = args.FILEDESC
+elif args.NAME:
+ if args.VFT_TYPE == 'VFT_DLL':
+ filedesc = 'PostgreSQL {0} library'.format(args.NAME)
+ else:
+ filedesc = 'PostgreSQL {0} binary'.format(args.NAME)
+filedesc = '"{0}"'.format(filedesc)
+
+
+if args.ICO:
+ ico = 'IDI_ICON ICON "{0}"'.format(args.ICO)
+ if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(args.rcout.name, args.ICO))
+else:
+ ico = ''
+
+
+data = args.input.read()
+
+data = data.replace('VFT_APP', args.VFT_TYPE)
+data = data.replace('_INTERNAL_NAME_', internal_name)
+data = data.replace('_ORIGINAL_NAME_', original_name)
+data = data.replace('FILEDESC', filedesc)
+data = data.replace("_ICO_", ico)
+
+args.rcout.write(data)
+args.rcout.close()
+
+if args.windres:
+ cmd = [
+ args.windres,
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '-o', args.out, '-i', args.rcout.name,
+ ]
+elif args.rc:
+ cmd = [
+ args.rc, '/nologo',
+ '-I{0}/src/include/'.format(args.builddir),
+ '-I{0}/src/include/'.format(args.srcdir),
+ '/fo', args.out, args.rcout.name,
+ ]
+else:
+ sys.exit('either --windres or --rc needs to be specified')
+
+sp = subprocess.run(cmd)
+if sp.returncode != 0:
+ sys.exit(sp.returncode)
+
+# It'd be nicer if we could generate correct dependencies here, but 'rc'
+# doesn't support doing so. It's unlikely we'll ever need more, so...
+if args.depfile:
+ args.depfile.write("{0} : {1}\n".format(
+ args.rcout.name, args.input.name))
+ args.depfile.write("{0} : {1}/{2}\n".format(
+ args.out, args.builddir, 'src/include/pg_config.h'))
--
2.37.3.542.gdd3f6c4cae
--bu2u4tjq2bvmz2x5--
^ permalink raw reply [nested|flat] 18+ messages in thread
end of thread, other threads:[~2022-10-01 18:54 UTC | newest]
Thread overview: 18+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2018-09-04 14:52 pgsql: Clean up after TAP tests in oid2name and vacuumlo. Tom Lane <[email protected]>
2018-09-04 17:29 ` Michael Paquier <[email protected]>
2018-09-04 17:41 ` Tom Lane <[email protected]>
2018-09-04 19:03 ` Michael Paquier <[email protected]>
2018-09-04 19:16 ` Tom Lane <[email protected]>
2018-09-04 20:58 ` Michael Paquier <[email protected]>
2018-09-05 14:39 ` Alvaro Herrera <[email protected]>
2018-09-05 17:45 ` Michael Paquier <[email protected]>
2018-09-05 17:49 ` Tom Lane <[email protected]>
2018-09-05 18:20 ` Alvaro Herrera <[email protected]>
2018-09-05 20:05 ` Michael Paquier <[email protected]>
2018-09-06 01:50 ` Michael Paquier <[email protected]>
2022-02-01 04:22 Add DBState to pg_control_system function Bharath Rupireddy <[email protected]>
2022-02-21 18:01 ` Re: Add DBState to pg_control_system function Fujii Masao <[email protected]>
2022-09-21 18:03 [PATCH v16 04/16] meson: Add windows resource files Andres Freund <[email protected]>
2022-09-21 18:03 [PATCH v15 05/14] meson: Add windows resource files Andres Freund <[email protected]>
2022-09-26 17:32 [PATCH v17 06/23] meson: Add windows resource files Andres Freund <[email protected]>
2022-10-01 18:54 [PATCH v18 04/22] meson: Add windows resource files Andres Freund <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox