dir_libsmartcols = include_directories('.', 'src')
defs = configuration_data()
-defs.set('LIBSMARTCOLS_VERSION', libsmartcols_version)
+defs.set('LIBSMARTCOLS_VERSION', pc_version)
-libsmartcols_h = configure_file(
+configure_file(
input : 'src/libsmartcols.h.in',
output : 'libsmartcols.h',
- configuration : defs)
+ configuration : defs,
+ install : build_libsmartcols,
+ install_dir : join_paths(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/grouping.c
src/walk.c
src/init.c
-'''.split()
+ 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)
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()
-pkgconfig.generate(lib_smartcols,
- description : 'table or tree library',
- subdirs : 'libsmartcols',
- version : pc_version)
+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
+
+manadocs += ['libsmartcols/scols-filter.5.adoc']