badvpn-win32.nix 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. { stdenv, cmake, pkgconfig, openssl, nspr, nss, zlib, sqlite, zip, debug ? false }:
  2. rec {
  3. badvpn = (
  4. let
  5. compileFlags = "-O3 ${stdenv.lib.optionalString (!debug) "-DNDEBUG"}";
  6. in
  7. stdenv.mkDerivation {
  8. name = "badvpn";
  9. src = stdenv.lib.cleanSource ./.;
  10. nativeBuildInputs = [ cmake pkgconfig ];
  11. buildInputs = [ openssl nspr nss ];
  12. NIX_CFLAGS_COMPILE = "-I${nspr.crossDrv.dev}/include/nspr -I${nss.crossDrv.dev}/include/nss -ggdb";
  13. NIX_CFLAGS_LINK = ["-ggdb"];
  14. preConfigure = ''
  15. cmakeFlagsArray=( "-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=${compileFlags}" "-DCMAKE_SYSTEM_NAME=Windows" );
  16. '';
  17. postInstall = ''
  18. for lib in eay32; do
  19. cp ${openssl.crossDrv.bin}/bin/lib$lib.dll $out/bin/
  20. done
  21. for lib in nspr4 plc4 plds4; do
  22. cp ${nspr.crossDrv.out}/lib/lib$lib.dll $out/bin/
  23. done
  24. for lib in nss3 nssutil3 smime3 ssl3 softokn3 freebl3; do
  25. cp ${nss.crossDrv.out}/lib/$lib.dll $out/bin/
  26. done
  27. cp ${zlib.crossDrv.out}/bin/zlib1.dll $out/bin/
  28. cp ${sqlite.crossDrv.out}/bin/libsqlite3-0.dll $out/bin/
  29. _linkDLLs() { true; }
  30. '';
  31. dontCrossStrip = true;
  32. }).crossDrv;
  33. badvpnZip = stdenv.mkDerivation {
  34. name = "badvpn.zip";
  35. unpackPhase = "true";
  36. nativeBuildInputs = [ zip ];
  37. installPhase = ''
  38. mkdir badvpn-win32
  39. ln -s ${badvpn}/bin badvpn-win32/bin
  40. zip -q -r $out badvpn-win32
  41. '';
  42. };
  43. }