postgresql/src/interfaces/ecpg/preproc/meson.build

112 lines
2.3 KiB
Meson

ecpg_sources = files(
'../ecpglib/typename.c',
'c_keywords.c',
'descriptor.c',
'ecpg.c',
'ecpg_keywords.c',
'keywords.c',
'output.c',
'parser.c',
'type.c',
'variable.c',
)
pgc = custom_target('pgc.c',
input: 'pgc.l',
output: 'pgc.c',
command: flex_cmd,
)
generated_sources += pgc
ecpg_sources += pgc
ecpg_files = [
'ecpg.addons',
'ecpg.header',
'ecpg.tokens',
'ecpg.trailer',
'ecpg.type',
]
preproc_y = custom_target('preproc.y',
input: [
'../../../backend/parser/gram.y',
ecpg_files,
],
output: ['preproc.y'],
command: [
perl, files('parse.pl'),
'--srcdir', '@CURRENT_SOURCE_DIR@',
'--parser', '@INPUT0@',
'--output', '@OUTPUT0@',
],
)
generated_sources += preproc_y
check_rules = custom_target('preproc.y.check_rules',
input: [
'../../../backend/parser/gram.y',
ecpg_files,
],
output: 'preproc.y.check_rules',
command: [
perl, files('check_rules.pl'),
'--srcdir', '@CURRENT_SOURCE_DIR@',
'--parser', '@INPUT0@',
'--stamp', '@OUTPUT0@',
],
)
preproc = custom_target('preproc.c',
input: preproc_y,
kwargs: bison_kw,
)
generated_sources += preproc.to_list()
ecpg_sources += preproc
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@',
],
)
generated_sources += c_kwlist
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@',
]
)
generated_sources += ecpg_kwlist
ecpg_sources += ecpg_kwlist
if host_system == 'windows'
ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [
'--NAME', 'ecpg',
'--FILEDESC', 'ecpg - embedded SQL precompiler for C',])
endif
ecpg_exe = executable('ecpg',
ecpg_sources,
include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc],
c_pch: pch_postgres_fe_h,
dependencies: [frontend_code],
kwargs: default_bin_args,
)
ecpg_targets += ecpg_exe
subdir('po', if_found: libintl)