From c745afadf4f7870fb398cf94ddf51652d6fed2d8 Mon Sep 17 00:00:00 2001 From: amesgen Date: Thu, 5 May 2022 18:47:37 +0200 Subject: [PATCH] lmdb: fix cross compilation to mingwW64 --- pkgs/development/libraries/lmdb/bin-ext.patch | 21 +++++++++++++++++++ pkgs/development/libraries/lmdb/default.nix | 9 +++++--- 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/libraries/lmdb/bin-ext.patch diff --git a/pkgs/development/libraries/lmdb/bin-ext.patch b/pkgs/development/libraries/lmdb/bin-ext.patch new file mode 100644 index 00000000000..2d5af99772c --- /dev/null +++ b/pkgs/development/libraries/lmdb/bin-ext.patch @@ -0,0 +1,21 @@ +diff --git a/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile +index 612484e..2e6b562 100644 +--- a/libraries/liblmdb/Makefile ++++ b/libraries/liblmdb/Makefile +@@ -27,6 +27,7 @@ CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) + LDLIBS = + SOLIBS = + SOEXT = .so ++BINEXT = + prefix = /usr/local + exec_prefix = $(prefix) + bindir = $(exec_prefix)/bin +@@ -49,7 +50,7 @@ install: $(ILIBS) $(IPROGS) $(IHDRS) + mkdir -p $(DESTDIR)$(libdir) + mkdir -p $(DESTDIR)$(includedir) + mkdir -p $(DESTDIR)$(mandir)/man1 +- for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done ++ for f in $(IPROGS); do cp $$f$(BINEXT) $(DESTDIR)$(bindir); done + for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done + for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done + for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix index 0a3515db262..a8b5da5b56d 100644 --- a/pkgs/development/libraries/lmdb/default.nix +++ b/pkgs/development/libraries/lmdb/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitLab }: +{ lib, stdenv, fetchFromGitLab, windows }: stdenv.mkDerivation rec { pname = "lmdb"; @@ -14,17 +14,20 @@ stdenv.mkDerivation rec { postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb"; - patches = [ ./hardcoded-compiler.patch ]; + patches = [ ./hardcoded-compiler.patch ./bin-ext.patch ]; patchFlags = [ "-p3" ]; outputs = [ "bin" "out" "dev" ]; + buildInputs = lib.optional stdenv.hostPlatform.isWindows windows.pthreads; + makeFlags = [ "prefix=$(out)" "CC=${stdenv.cc.targetPrefix}cc" "AR=${stdenv.cc.targetPrefix}ar" ] - ++ lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so"; + ++ lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so" + ++ lib.optionals stdenv.hostPlatform.isWindows [ "SOEXT=.dll" "BINEXT=.exe" ]; doCheck = true; checkTarget = "test";