aboutsummaryrefslogtreecommitdiff
path: root/perl/lib/Nix/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'perl/lib/Nix/meson.build')
-rw-r--r--perl/lib/Nix/meson.build58
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,
+)