mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-27 07:21:09 +08:00
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
This commit is contained in:
parent
b9e3f8005c
commit
a1cd982098
14
meson.build
14
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…
Reference in New Issue
Block a user