src_inc += include_directories('.', 'primops')
libexpr_src = files(
join_paths(meson.source_root(), 'src/libexpr/primops/context.cc'),
join_paths(meson.source_root(), 'src/libexpr/primops/fetchGit.cc'),
join_paths(meson.source_root(), 'src/libexpr/primops/fetchMercurial.cc'),
join_paths(meson.source_root(), 'src/libexpr/primops/fromTOML.cc'),
join_paths(meson.source_root(), 'src/libexpr/attr-path.cc'),
join_paths(meson.source_root(), 'src/libexpr/attr-set.cc'),
join_paths(meson.source_root(), 'src/libexpr/common-eval-args.cc'),
join_paths(meson.source_root(), 'src/libexpr/eval.cc'),
join_paths(meson.source_root(), 'src/libexpr/function-trace.cc'),
join_paths(meson.source_root(), 'src/libexpr/get-drvs.cc'),
join_paths(meson.source_root(), 'src/libexpr/json-to-value.cc'),
join_paths(meson.source_root(), 'src/libexpr/names.cc'),
join_paths(meson.source_root(), 'src/libexpr/nixexpr.cc'),
join_paths(meson.source_root(), 'src/libexpr/primops.cc'),
join_paths(meson.source_root(), 'src/libexpr/symbol-table.cc'),
join_paths(meson.source_root(), 'src/libexpr/value-to-json.cc'),
join_paths(meson.source_root(), 'src/libexpr/value-to-xml.cc'),
)
libexpr_headers = files(
join_paths(meson.source_root(), 'src/libexpr/attr-path.hh'),
join_paths(meson.source_root(), 'src/libexpr/attr-set.hh'),
join_paths(meson.source_root(), 'src/libexpr/common-eval-args.hh'),
join_paths(meson.source_root(), 'src/libexpr/eval.hh'),
join_paths(meson.source_root(), 'src/libexpr/eval-inline.hh'),
join_paths(meson.source_root(), 'src/libexpr/function-trace.hh'),
join_paths(meson.source_root(), 'src/libexpr/get-drvs.hh'),
join_paths(meson.source_root(), 'src/libexpr/json-to-value.hh'),
join_paths(meson.source_root(), 'src/libexpr/names.hh'),
join_paths(meson.source_root(), 'src/libexpr/nixexpr.hh'),
join_paths(meson.source_root(), 'src/libexpr/primops.hh'),
join_paths(meson.source_root(), 'src/libexpr/symbol-table.hh'),
join_paths(meson.source_root(), 'src/libexpr/value.hh'),
join_paths(meson.source_root(), 'src/libexpr/value-to-json.hh'),
join_paths(meson.source_root(), 'src/libexpr/value-to-xml.hh'))
libexpr_dep_list = [
gc_dep,
glog_dep,
libdl_dep,
libsodium_dep,
] + absl_deps
libexpr_link_list = [
libutil_lib,
libstore_lib,
libmain_lib,
]
libexpr_link_args = [
'-lpthread',
'-lgccpp',
]
libexpr_cxx_args = []
libexpr_src += custom_target(
'parser_tab.[cchh]',
output : [
'parser-tab.cc',
'parser-tab.hh'],
input : 'parser.y',
command : [
bison,
'-v',
'--output=@OUTPUT0@',
'@INPUT@',
'-d'])
libexpr_src += custom_target(
'lexer_tab.[cchh]',
output : ['lexer-tab.cc', 'lexer-tab.hh'],
input : 'lexer.l',
command : [
flex,
'--outfile=@OUTPUT0@',
'--header-file=@OUTPUT1@',
'@INPUT@'])
libexpr_lib = library(
'nixexpr',
install : true,
install_mode : 'rwxr-xr-x',
install_dir : libdir,
include_directories : src_inc,
link_with : libexpr_link_list,
sources : libexpr_src,
link_args : libexpr_link_args,
dependencies : libexpr_dep_list)
install_headers(
libexpr_headers,
install_dir : join_paths(includedir, 'nix'))