78 lines
2.1 KiB
Meson
78 lines
2.1 KiB
Meson
dir_libsmartcols = include_directories('.', 'src')
|
|
|
|
defs = configuration_data()
|
|
defs.set('LIBSMARTCOLS_VERSION', pc_version)
|
|
|
|
configure_file(
|
|
input : 'src/libsmartcols.h.in',
|
|
output : 'libsmartcols.h',
|
|
configuration : defs,
|
|
install : build_libsmartcols,
|
|
install_dir : get_option('includedir') / 'libsmartcols',
|
|
)
|
|
|
|
scols_bison = generator(
|
|
bison,
|
|
output : ['@BASENAME@.c', '@BASENAME@.h'],
|
|
arguments : ['@INPUT@', '--output=@OUTPUT0@', '--defines=@OUTPUT1@'])
|
|
scols_parser_c = scols_bison.process('src/filter-parser.y')
|
|
|
|
scols_flex = generator(
|
|
flex,
|
|
output : ['@BASENAME@.c', '@BASENAME@.h'],
|
|
arguments : ['--outfile=@OUTPUT0@', '--header-file=@OUTPUT1@', '@INPUT@'])
|
|
scols_scanner_c = scols_flex.process('src/filter-scanner.l')
|
|
|
|
lib_smartcols_sources = '''
|
|
src/smartcolsP.h
|
|
src/iter.c
|
|
src/symbols.c
|
|
src/cell.c
|
|
src/column.c
|
|
src/line.c
|
|
src/table.c
|
|
src/print.c
|
|
src/print-api.c
|
|
src/version.c
|
|
src/calculate.c
|
|
src/grouping.c
|
|
src/walk.c
|
|
src/init.c
|
|
src/filter.c
|
|
src/filter-param.c
|
|
src/filter-expr.c
|
|
'''.split() \
|
|
+ scols_parser_c + scols_scanner_c
|
|
|
|
|
|
libsmartcols_sym = 'src/libsmartcols.sym'
|
|
libsmartcols_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsmartcols_sym)
|
|
|
|
lib_smartcols = both_libraries(
|
|
'smartcols',
|
|
list_h,
|
|
lib_smartcols_sources,
|
|
include_directories : [dir_include, dir_libsmartcols],
|
|
link_depends : libsmartcols_sym,
|
|
version : libsmartcols_version,
|
|
link_args : ['-Wl,--version-script=@0@'.format(libsmartcols_sym_path)],
|
|
link_with : lib_common,
|
|
dependencies : build_libsmartcols ? [] : disabler(),
|
|
install : build_libsmartcols)
|
|
smartcols_dep = declare_dependency(link_with: lib_smartcols, include_directories: '.')
|
|
|
|
lib_smartcols_static = lib_smartcols.get_static_lib()
|
|
|
|
if build_libsmartcols
|
|
pkgconfig.generate(lib_smartcols,
|
|
description : 'table or tree library',
|
|
subdirs : 'libsmartcols',
|
|
version : pc_version)
|
|
if meson.version().version_compare('>=0.54.0')
|
|
meson.override_dependency('smartcols', smartcols_dep)
|
|
endif
|
|
endif
|
|
|
|
if build_libsmartcols
|
|
lib_smartcols_manadocs = files('scols-filter.5.adoc')
|
|
endif
|