diff options
author | Andres Freund | 2023-06-10 03:12:16 +0000 |
---|---|---|
committer | Andres Freund | 2023-06-10 03:12:16 +0000 |
commit | a1cd982098c8f6a714870ae512b4a9cdeacb9440 (patch) | |
tree | d4abe5f070ce16fae6f0be8c1e8564d09d14f9a4 | |
parent | b9e3f8005c99dece44d60cdfad5b904554f4d435 (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.build | 14 | ||||
-rw-r--r-- | src/common/meson.build | 4 | ||||
-rw-r--r-- | src/common/unicode/meson.build | 3 | ||||
-rw-r--r-- | src/include/catalog/meson.build | 2 | ||||
-rw-r--r-- | src/include/nodes/meson.build | 1 | ||||
-rw-r--r-- | src/include/utils/meson.build | 1 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/meson.build | 19 | ||||
-rw-r--r-- | src/pl/plpgsql/src/meson.build | 7 |
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 |