diff options
Diffstat (limited to 'perl/lib/Nix/meson.build')
-rw-r--r-- | perl/lib/Nix/meson.build | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/perl/lib/Nix/meson.build b/perl/lib/Nix/meson.build new file mode 100644 index 000000000..6810622e3 --- /dev/null +++ b/perl/lib/Nix/meson.build @@ -0,0 +1,58 @@ +store_xs_cpp = custom_target( + input : 'Store.xs', + output : 'Store.cc', + command : [ + xsubpp, + '@INPUT@', + '-output', + '@OUTPUT@', + ], + build_by_default : true, +) + +soname_args = [] +if cxx.get_linker_id() in ['ld.bfd', 'ld.gold'] + soname_args = ['-Wl,-soname=Store.so'] +endif + +perl_libstore = shared_module( + 'Store', + store_xs_cpp, + # This library does NOT get the normal libprefix. it's just `Store.so`, not `libStore.so`. + name_prefix : '', + dependencies : [ + libstore, + sodium, + perl_include, + ], + link_args : [ + # Nix doesn't provide a pkg-config file for libutil. + '-lnixutil', + soname_args, + ], + install : true, + install_dir : perl_libdir / 'auto/Nix/Store', +) + +config_pm = configure_file( + input : 'Config.pm.in', + output : 'Config.pm', + configuration : { + 'PACKAGE_VERSION': meson.project_version(), + }, +) + +nix_perl_sources = files( + 'Store.pm', + 'Manifest.pm', + 'SSH.pm', + 'CopyClosure.pm', + 'Utils.pm', +) + +install_data( + nix_perl_sources, + config_pm, + install_dir : perl_libdir / 'Nix', + preserve_path : true, +) |