175 lines
4.1 KiB
Meson
175 lines
4.1 KiB
Meson
libexpr_generated_headers = [
|
|
gen_header.process('primops/derivation.nix', preserve_path_from : meson.current_source_dir()),
|
|
]
|
|
foreach header : [ 'imported-drv-to-derivation.nix', 'fetchurl.nix' ]
|
|
libexpr_generated_headers += custom_target(
|
|
command : [ 'bash', '-c', 'echo \'R"__NIX_STR(\' | cat - @INPUT@ && echo \')__NIX_STR"\'' ],
|
|
input : header,
|
|
output : '@PLAINNAME@.gen.hh',
|
|
capture : true,
|
|
install : true,
|
|
install_dir : includedir / 'lix/libexpr',
|
|
)
|
|
endforeach
|
|
subdir('flake')
|
|
|
|
libexpr_setting_definitions = files(
|
|
'settings/allow-import-from-derivation.md',
|
|
'settings/allow-unsafe-native-code-during-evaluation.md',
|
|
'settings/allowed-uris.md',
|
|
'settings/debugger-on-trace.md',
|
|
'settings/eval-cache.md',
|
|
'settings/eval-system.md',
|
|
'settings/ignore-try.md',
|
|
'settings/max-call-depth.md',
|
|
'settings/nix-path.md',
|
|
'settings/pure-eval.md',
|
|
'settings/repl-overlays.md',
|
|
'settings/restrict-eval.md',
|
|
'settings/trace-function-calls.md',
|
|
'settings/trace-verbose.md',
|
|
)
|
|
libexpr_settings_header = custom_target(
|
|
command : [
|
|
python.full_path(),
|
|
'@SOURCE_ROOT@/src/code-generation/build_settings.py',
|
|
'--kernel', host_machine.system(),
|
|
'--header', '@OUTPUT@',
|
|
'--experimental-features', '@SOURCE_ROOT@/src/libutil/experimental-features',
|
|
'@INPUT@',
|
|
],
|
|
input : libexpr_setting_definitions,
|
|
output : 'libexpr-settings.gen.inc',
|
|
install : true,
|
|
install_dir : includedir / 'lib/libexpr',
|
|
)
|
|
|
|
libexpr_sources = files(
|
|
'attr-path.cc',
|
|
'attr-set.cc',
|
|
'eval-cache.cc',
|
|
'eval-error.cc',
|
|
'eval-settings.cc',
|
|
'eval.cc',
|
|
'function-trace.cc',
|
|
'get-drvs.cc',
|
|
'gc-alloc.cc',
|
|
'json-to-value.cc',
|
|
'nixexpr.cc',
|
|
'parser/parser.cc',
|
|
'paths.cc',
|
|
'primops.cc',
|
|
'print-ambiguous.cc',
|
|
'print.cc',
|
|
'search-path.cc',
|
|
'value.cc',
|
|
'value-to-json.cc',
|
|
'value-to-xml.cc',
|
|
'flake/config.cc',
|
|
'flake/flake.cc',
|
|
'flake/flakeref.cc',
|
|
'flake/lockfile.cc',
|
|
'primops/context.cc',
|
|
'primops/fetchClosure.cc',
|
|
'primops/fetchMercurial.cc',
|
|
'primops/fetchTree.cc',
|
|
'primops/fromTOML.cc',
|
|
'value/context.cc',
|
|
)
|
|
|
|
libexpr_headers = files(
|
|
'attr-path.hh',
|
|
'attr-set.hh',
|
|
'eval-cache.hh',
|
|
'eval-error.hh',
|
|
'eval-inline.hh',
|
|
'eval-settings.hh',
|
|
'eval.hh',
|
|
'flake/flake.hh',
|
|
'flake/flakeref.hh',
|
|
'flake/lockfile.hh',
|
|
'function-trace.hh',
|
|
'gc-small-vector.hh',
|
|
'get-drvs.hh',
|
|
'gc-alloc.hh',
|
|
'json-to-value.hh',
|
|
'nixexpr.hh',
|
|
'parser/change_head.hh',
|
|
'parser/grammar.hh',
|
|
'parser/state.hh',
|
|
'pos-idx.hh',
|
|
'pos-table.hh',
|
|
'primops.hh',
|
|
'print-ambiguous.hh',
|
|
'print-options.hh',
|
|
'print.hh',
|
|
'repl-exit-status.hh',
|
|
'search-path.hh',
|
|
'symbol-table.hh',
|
|
'value/context.hh',
|
|
'value-to-json.hh',
|
|
'value-to-xml.hh',
|
|
'value.hh',
|
|
)
|
|
|
|
libexpr = library(
|
|
'lixexpr',
|
|
libexpr_sources,
|
|
libexpr_settings_header,
|
|
libexpr_generated_headers,
|
|
dependencies : [
|
|
liblixutil,
|
|
liblixstore,
|
|
liblixfetchers,
|
|
boehm,
|
|
boost,
|
|
toml11,
|
|
nlohmann_json,
|
|
],
|
|
# for shared.hh
|
|
include_directories : [
|
|
'../libmain',
|
|
],
|
|
cpp_pch : cpp_pch,
|
|
install : true,
|
|
# FIXME(Qyriad): is this right?
|
|
install_rpath : libdir,
|
|
)
|
|
|
|
install_headers(
|
|
libexpr_headers,
|
|
subdir : 'lix/libexpr',
|
|
preserve_path : true,
|
|
)
|
|
|
|
liblixexpr = declare_dependency(
|
|
include_directories : include_directories('.'),
|
|
sources : libexpr_settings_header,
|
|
link_with : libexpr,
|
|
)
|
|
|
|
# FIXME: remove when https://git.lix.systems/lix-project/lix/issues/359 is fixed.
|
|
if is_static
|
|
liblixexpr_mstatic = declare_dependency(
|
|
include_directories : include_directories('.'),
|
|
sources : libexpr_settings_header,
|
|
link_whole : libexpr,
|
|
)
|
|
else
|
|
liblixexpr_mstatic = liblixexpr
|
|
endif
|
|
|
|
# FIXME: not using the pkg-config module because it creates way too many deps
|
|
# while meson migration is in progress, and we want to not include boost here
|
|
configure_file(
|
|
input : 'lix-expr.pc.in',
|
|
output : 'lix-expr.pc',
|
|
install_dir : libdir / 'pkgconfig',
|
|
configuration : {
|
|
'prefix' : prefix,
|
|
'libdir' : libdir,
|
|
'includedir' : includedir,
|
|
'PACKAGE_VERSION' : meson.project_version(),
|
|
},
|
|
)
|