summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Freund2023-06-10 03:12:16 +0000
committerAndres Freund2023-06-10 03:12:16 +0000
commita1cd982098c8f6a714870ae512b4a9cdeacb9440 (patch)
treed4abe5f070ce16fae6f0be8c1e8564d09d14f9a4
parentb9e3f8005c99dece44d60cdfad5b904554f4d435 (diff)
meson: Add dependencies to perl modules to various script invocations
Eventually it is likely worth trying to deal with this in a more expansive way, by generating dependency files generated within the scripts. But it's not entirely obvious how to do that in perl and is work more suitable for 17 anyway. Reported-by: Dagfinn Ilmari MannsÃ¥ker <[email protected]> Reviewed-by: Tristan Partin <[email protected]> Discussion: https://postgr.es/m/[email protected]
-rw-r--r--meson.build14
-rw-r--r--src/common/meson.build4
-rw-r--r--src/common/unicode/meson.build3
-rw-r--r--src/include/catalog/meson.build2
-rw-r--r--src/include/nodes/meson.build1
-rw-r--r--src/include/utils/meson.build1
-rw-r--r--src/interfaces/ecpg/preproc/meson.build19
-rw-r--r--src/pl/plpgsql/src/meson.build7
8 files changed, 30 insertions, 21 deletions
diff --git a/meson.build b/meson.build
index 16b2e866462..82f2782673e 100644
--- a/meson.build
+++ b/meson.build
@@ -2682,6 +2682,20 @@ gen_export_kwargs = {
###
+### Helpers for custom targets used across the tree
+###
+
+catalog_pm = files('src/backend/catalog/Catalog.pm')
+perfect_hash_pm = files('src/tools/PerfectHash.pm')
+gen_kwlist_deps = [perfect_hash_pm]
+gen_kwlist_cmd = [
+ perl, '-I', '@SOURCE_ROOT@/src/tools',
+ files('src/tools/gen_keywordlist.pl'),
+ '--output', '@OUTDIR@', '@INPUT@']
+
+
+
+###
### windows resources related stuff
###
diff --git a/src/common/meson.build b/src/common/meson.build
index 41bd58ebdf1..9efc80ac024 100644
--- a/src/common/meson.build
+++ b/src/common/meson.build
@@ -54,8 +54,8 @@ endif
common_kwlist = custom_target('kwlist',
input: files('../include/parser/kwlist.h'),
output: 'kwlist_d.h',
- command: [perl, '-I', '@SOURCE_ROOT@/src/tools', files('../tools/gen_keywordlist.pl'),
- '--extern', '--output', '@OUTDIR@', '@INPUT@'])
+ depend_files: gen_kwlist_deps,
+ command: [gen_kwlist_cmd, '--extern'])
generated_sources += common_kwlist
common_sources += common_kwlist
diff --git a/src/common/unicode/meson.build b/src/common/unicode/meson.build
index 1ffece1550a..9033c4a3dcf 100644
--- a/src/common/unicode/meson.build
+++ b/src/common/unicode/meson.build
@@ -28,6 +28,7 @@ update_unicode_targets += \
custom_target('unicode_norm_table.h',
input: [unicode_data['UnicodeData.txt'], unicode_data['CompositionExclusions.txt']],
output: ['unicode_norm_table.h', 'unicode_norm_hashfunc.h'],
+ depend_files: perfect_hash_pm,
command: [
perl, files('generate-unicode_norm_table.pl'),
'--outdir', '@OUTDIR@', '@INPUT@'],
@@ -38,6 +39,7 @@ update_unicode_targets += \
custom_target('unicode_nonspacing_table.h',
input: [unicode_data['UnicodeData.txt']],
output: ['unicode_nonspacing_table.h'],
+ depend_files: perfect_hash_pm,
command: [perl, files('generate-unicode_nonspacing_table.pl'), '@INPUT@'],
build_by_default: false,
capture: true,
@@ -56,6 +58,7 @@ update_unicode_targets += \
custom_target('unicode_normprops_table.h',
input: [unicode_data['DerivedNormalizationProps.txt']],
output: ['unicode_normprops_table.h'],
+ depend_files: perfect_hash_pm,
command: [perl, files('generate-unicode_normprops_table.pl'), '@INPUT@'],
build_by_default: false,
capture: true,
diff --git a/src/include/catalog/meson.build b/src/include/catalog/meson.build
index 3179be09d3d..c3fd05d0279 100644
--- a/src/include/catalog/meson.build
+++ b/src/include/catalog/meson.build
@@ -111,7 +111,7 @@ generated_catalog_headers = custom_target('generated_catalog_headers',
output: output_files,
install_dir: output_install,
input: input,
- depend_files: bki_data_f,
+ depend_files: bki_data_f + catalog_pm,
build_by_default: true,
install: true,
command: [
diff --git a/src/include/nodes/meson.build b/src/include/nodes/meson.build
index 9a8e85c4a5e..626dc696d51 100644
--- a/src/include/nodes/meson.build
+++ b/src/include/nodes/meson.build
@@ -50,6 +50,7 @@ node_support_install = [
generated_nodes = custom_target('nodetags.h',
input: node_support_input,
output: node_support_output,
+ depend_files: catalog_pm,
command: [
perl, files('../../backend/nodes/gen_node_support.pl'),
'-o', '@OUTDIR@',
diff --git a/src/include/utils/meson.build b/src/include/utils/meson.build
index 2fed1e3f8e9..c212c4091f7 100644
--- a/src/include/utils/meson.build
+++ b/src/include/utils/meson.build
@@ -44,6 +44,7 @@ fmgrtab_output = ['fmgroids.h', 'fmgrprotos.h', 'fmgrtab.c']
fmgrtab_target = custom_target('fmgrtab',
input: '../catalog/pg_proc.dat',
output : fmgrtab_output,
+ depend_files: catalog_pm,
command: [perl, '-I', '@SOURCE_ROOT@/src/backend/catalog/', files('../../backend/utils/Gen_fmgrtab.pl'), '--include-path=@SOURCE_ROOT@/src/include', '--output=@OUTDIR@', '@INPUT@'],
install: true,
install_dir: [dir_include_server / 'utils', dir_include_server / 'utils', false],
diff --git a/src/interfaces/ecpg/preproc/meson.build b/src/interfaces/ecpg/preproc/meson.build
index 08d772d2614..eef8f1864fe 100644
--- a/src/interfaces/ecpg/preproc/meson.build
+++ b/src/interfaces/ecpg/preproc/meson.build
@@ -69,14 +69,8 @@ c_kwlist = custom_target('c_kwlist_d.h',
input: ['c_kwlist.h'],
output: ['c_kwlist_d.h'],
depends: check_rules,
- command: [
- perl,
- '-I', '@SOURCE_ROOT@/src/tools',
- '@SOURCE_ROOT@/src/tools/gen_keywordlist.pl',
- '--output', '@OUTDIR@',
- '--varname', 'ScanCKeywords',
- '--no-case-fold', '@INPUT0@',
- ],
+ depend_files: gen_kwlist_deps,
+ command: [gen_kwlist_cmd, '--varname', 'ScanCKeywords', '--no-case-fold'],
)
generated_sources += c_kwlist
ecpg_sources += c_kwlist
@@ -84,13 +78,8 @@ ecpg_sources += c_kwlist
ecpg_kwlist = custom_target('ecpg_kwlist_d.h',
input: ['ecpg_kwlist.h'],
output: ['ecpg_kwlist_d.h'],
- command: [
- perl, '-I',
- '@SOURCE_ROOT@/src/tools',
- '@SOURCE_ROOT@/src/tools/gen_keywordlist.pl',
- '--output', '@OUTDIR@',
- '--varname', 'ScanECPGKeywords', '@INPUT0@',
- ]
+ depend_files: gen_kwlist_deps,
+ command: [gen_kwlist_cmd, '--varname', 'ScanECPGKeywords'],
)
generated_sources += ecpg_kwlist
ecpg_sources += ecpg_kwlist
diff --git a/src/pl/plpgsql/src/meson.build b/src/pl/plpgsql/src/meson.build
index e185a87024c..85e7293b374 100644
--- a/src/pl/plpgsql/src/meson.build
+++ b/src/pl/plpgsql/src/meson.build
@@ -25,11 +25,11 @@ pl_errcodes = custom_target('plerrcodes',
generated_sources += pl_errcodes
plpgsql_sources += pl_errcodes
-gen_keywordlist = files('../../../../src/tools/gen_keywordlist.pl')
pl_reserved = custom_target('pl_reserved_kwlist',
input: ['pl_reserved_kwlist.h'],
output: ['pl_reserved_kwlist_d.h'],
- command: [perl, '-I', '@SOURCE_ROOT@/src/tools', gen_keywordlist, '--output', '@OUTDIR@', '--varname', 'ReservedPLKeywords', '@INPUT@']
+ depend_files: gen_kwlist_deps,
+ command: [gen_kwlist_cmd, '--varname', 'ReservedPLKeywords'],
)
generated_sources += pl_reserved
plpgsql_sources += pl_reserved
@@ -37,7 +37,8 @@ plpgsql_sources += pl_reserved
pl_unreserved = custom_target('pl_unreserved_kwlist',
input: ['pl_unreserved_kwlist.h'],
output: ['pl_unreserved_kwlist_d.h'],
- command: [perl, '-I', '@SOURCE_ROOT@/src/tools', gen_keywordlist, '--output', '@OUTDIR@', '--varname', 'UnreservedPLKeywords', '@INPUT@']
+ depend_files: gen_kwlist_deps,
+ command: [gen_kwlist_cmd, '--varname', 'UnreservedPLKeywords'],
)
generated_sources += pl_unreserved
plpgsql_sources += pl_unreserved