aboutsummaryrefslogtreecommitdiff
path: root/perl
diff options
context:
space:
mode:
authorBen Burdette <bburdette@gmail.com>2021-11-25 08:53:59 -0700
committerBen Burdette <bburdette@gmail.com>2021-11-25 08:53:59 -0700
commit64c4ba8f66c7569478fd5f19ebb72c9590cc2b45 (patch)
tree65d874c35432e81c3d244caadd7c467eccd0b87d /perl
parent69e26c5c4ba106bd16f60bfaac88ccf888b4383f (diff)
parentca82967ee3276e2aa8b02ea7e6d19cfd4fa75f4c (diff)
Merge branch 'master' into debug-merge
Diffstat (limited to 'perl')
-rw-r--r--perl/Makefile2
-rw-r--r--perl/Makefile.config.in1
-rw-r--r--perl/configure.ac2
-rw-r--r--perl/lib/Nix/Config.pm.in1
-rw-r--r--perl/lib/Nix/Store.pm1
-rw-r--r--perl/lib/Nix/Store.xs13
-rw-r--r--perl/local.mk2
7 files changed, 20 insertions, 2 deletions
diff --git a/perl/Makefile b/perl/Makefile
index 259ed7dc3..708f86882 100644
--- a/perl/Makefile
+++ b/perl/Makefile
@@ -1,6 +1,6 @@
makefiles = local.mk
-GLOBAL_CXXFLAGS += -g -Wall -std=c++17
+GLOBAL_CXXFLAGS += -g -Wall -std=c++17 -I ../src
-include Makefile.config
diff --git a/perl/Makefile.config.in b/perl/Makefile.config.in
index eccfbd9f6..d856de3ad 100644
--- a/perl/Makefile.config.in
+++ b/perl/Makefile.config.in
@@ -1,3 +1,4 @@
+HOST_OS = @host_os@
CC = @CC@
CFLAGS = @CFLAGS@
CXX = @CXX@
diff --git a/perl/configure.ac b/perl/configure.ac
index 85183c005..eb65ac17b 100644
--- a/perl/configure.ac
+++ b/perl/configure.ac
@@ -7,6 +7,8 @@ CXXFLAGS=
AC_PROG_CC
AC_PROG_CXX
+AC_CANONICAL_HOST
+
# Use 64-bit file system calls so that we can support files > 2 GiB.
AC_SYS_LARGEFILE
diff --git a/perl/lib/Nix/Config.pm.in b/perl/lib/Nix/Config.pm.in
index f7c6f2484..508a15e15 100644
--- a/perl/lib/Nix/Config.pm.in
+++ b/perl/lib/Nix/Config.pm.in
@@ -1,6 +1,7 @@
package Nix::Config;
use MIME::Base64;
+use Nix::Store;
$version = "@PACKAGE_VERSION@";
diff --git a/perl/lib/Nix/Store.pm b/perl/lib/Nix/Store.pm
index 179f1dc90..3e4bbee0a 100644
--- a/perl/lib/Nix/Store.pm
+++ b/perl/lib/Nix/Store.pm
@@ -22,6 +22,7 @@ our @EXPORT = qw(
derivationFromPath
addTempRoot
getBinDir getStoreDir
+ queryRawRealisation
);
our $VERSION = '0.15';
diff --git a/perl/lib/Nix/Store.xs b/perl/lib/Nix/Store.xs
index ad9042a2a..edbf12f7c 100644
--- a/perl/lib/Nix/Store.xs
+++ b/perl/lib/Nix/Store.xs
@@ -15,6 +15,7 @@
#include "crypto.hh"
#include <sodium.h>
+#include <nlohmann/json.hpp>
using namespace nix;
@@ -120,6 +121,18 @@ SV * queryPathInfo(char * path, int base32)
croak("%s", e.what());
}
+SV * queryRawRealisation(char * outputId)
+ PPCODE:
+ try {
+ auto realisation = store()->queryRealisation(DrvOutput::parse(outputId));
+ if (realisation)
+ XPUSHs(sv_2mortal(newSVpv(realisation->toJSON().dump().c_str(), 0)));
+ else
+ XPUSHs(sv_2mortal(newSVpv("", 0)));
+ } catch (Error & e) {
+ croak("%s", e.what());
+ }
+
SV * queryPathFromHashPart(char * hashPart)
PPCODE:
diff --git a/perl/local.mk b/perl/local.mk
index b13d4c0d6..0eae651d8 100644
--- a/perl/local.mk
+++ b/perl/local.mk
@@ -28,7 +28,7 @@ Store_CXXFLAGS = \
Store_LDFLAGS := $(SODIUM_LIBS) $(NIX_LIBS)
-ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
+ifdef HOST_CYGWIN
archlib = $(shell perl -E 'use Config; print $$Config{archlib};')
libperl = $(shell perl -E 'use Config; print $$Config{libperl};')
Store_LDFLAGS += $(shell find ${archlib} -name ${libperl})