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 <ilmari@ilmari.org>
Reviewed-by: Tristan Partin <tristan@neon.tech>
Discussion: https://postgr.es/m/87v8g7s6bf.fsf@wibble.ilmari.org
pull/137/head
Andres Freund 2 years ago
parent b9e3f8005c
commit a1cd982098
  1. 14
      meson.build
  2. 4
      src/common/meson.build
  3. 3
      src/common/unicode/meson.build
  4. 2
      src/include/catalog/meson.build
  5. 1
      src/include/nodes/meson.build
  6. 1
      src/include/utils/meson.build
  7. 19
      src/interfaces/ecpg/preproc/meson.build
  8. 7
      src/pl/plpgsql/src/meson.build

@ -2681,6 +2681,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
###

@ -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

@ -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,

@ -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: [

@ -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@',

@ -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],

@ -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

@ -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

Loading…
Cancel
Save