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 16b2e86646..82f2782673 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 41bd58ebdf..9efc80ac02 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 1ffece1550..9033c4a3dc 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 3179be09d3..c3fd05d027 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 9a8e85c4a5..626dc696d5 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 2fed1e3f8e..c212c4091f 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 08d772d261..eef8f1864f 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 e185a87024..85e7293b37 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 |