On 07.11.23 17:08, Andres Freund wrote:
make world
make check-world
make install-world
that encompasses everything.
Now with meson to handle the documentation one needs to remember a variety of
additional targets. (There is a risk that once this gets more widespread, more
people will submit broken documentation.)
install-world with meson also installs docs.
Ok, I didn't know about ninja install-world. That works for me. Maybe
a "world" target would also be good.
I played around with this a bit and noticed some files missing or in the
wrong place. See two attached patches (plus e9f075f9a1 already committed).
From 543e669f78b65c5ec8a07dcad34c60c6f32439e7 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 8 Nov 2023 12:00:02 +0100
Subject: [PATCH 1/2] meson: Fix doc installation path computation
This applies the logic from 8f6858064b also to the doc installation
directory.
---
meson.build | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 88a9d9051f..6c0faa9490 100644
--- a/meson.build
+++ b/meson.build
@@ -511,7 +511,10 @@ endif
dir_man = get_option('mandir')
# FIXME: These used to be separately configurable - worth adding?
-dir_doc = get_option('datadir') / 'doc' / 'postgresql'
+dir_doc = get_option('datadir') / 'doc'
+if not (dir_prefix_contains_pg or dir_doc.contains('pgsql') or
dir_doc.contains('postgres'))
+ dir_doc = dir_doc / pkg
+endif
dir_doc_html = dir_doc / 'html'
dir_locale = get_option('localedir')
--
2.42.0
From e7067f3de85bee6bf3621d5fe902078ba1bcabe6 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 8 Nov 2023 12:00:40 +0100
Subject: [PATCH 2/2] meson: Install missing example files
Install the example files from contrib/spi/, to make makefiles.
---
contrib/meson.build | 5 +++++
contrib/spi/meson.build | 17 +++++++++++++++++
meson.build | 1 +
3 files changed, 23 insertions(+)
diff --git a/contrib/meson.build b/contrib/meson.build
index 84d4e18561..c0b267c632 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -7,6 +7,11 @@ contrib_data_args = {
'install_dir': contrib_data_dir,
}
+contrib_doc_dir = dir_doc_extension
+contrib_doc_args = {
+ 'install_dir': contrib_doc_dir,
+}
+
subdir('adminpack')
subdir('amcheck')
subdir('auth_delay')
diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build
index a80e2c8ce4..b551eda4a7 100644
--- a/contrib/spi/meson.build
+++ b/contrib/spi/meson.build
@@ -20,6 +20,10 @@ install_data('autoinc.control', 'autoinc--1.0.sql',
kwargs: contrib_data_args,
)
+install_data('autoinc.example',
+ kwargs: contrib_doc_args,
+)
+
insert_username_sources = files(
'insert_username.c',
@@ -43,6 +47,10 @@ install_data(
kwargs: contrib_data_args,
)
+install_data('insert_username.example',
+ kwargs: contrib_doc_args,
+)
+
moddatetime_sources = files(
'moddatetime.c',
@@ -66,6 +74,11 @@ install_data(
kwargs: contrib_data_args,
)
+install_data('moddatetime.example',
+ kwargs: contrib_doc_args,
+)
+
+
# this is needed for the regression tests;
# comment out if you want a quieter refint package for other uses
refint_cflags = ['-DREFINT_VERBOSE']
@@ -90,3 +103,7 @@ contrib_targets += refint
install_data('refint.control', 'refint--1.0.sql',
kwargs: contrib_data_args,
)
+
+install_data('refint.example',
+ kwargs: contrib_doc_args,
+)
diff --git a/meson.build b/meson.build
index 6c0faa9490..47c8fcdc53 100644
--- a/meson.build
+++ b/meson.build
@@ -526,6 +526,7 @@ dir_include_internal = dir_include_pkg / 'internal'
dir_include_server = dir_include_pkg / 'server'
dir_include_extension = dir_include_server / 'extension'
dir_data_extension = dir_data / 'extension'
+dir_doc_extension = dir_doc / 'extension'
--
2.42.0