|
|
|
@ -128,29 +128,32 @@ let |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
in { |
|
|
|
|
|
|
|
|
|
inherit pkgs; |
|
|
|
|
|
|
|
|
|
release = naersk.buildPackage rec { |
|
|
|
|
inherit release; |
|
|
|
|
|
|
|
|
|
src = ./.; |
|
|
|
|
strictDeps = true; |
|
|
|
|
doCheck = false; |
|
|
|
|
|
|
|
|
|
depsBuildBuild = (buildTarget.depsBuildBuild pkgsCross) ++ [ |
|
|
|
|
# For some reason the pkgsCross.pkgsStatic build of libsodium doesn't contain |
|
|
|
|
# a `.a` file when compiled to a windows target, but rather contains |
|
|
|
|
# a `.dll.a` file which libsodium-sys doesn't pick up on. Copying the one to |
|
|
|
|
# the be the other seems to work. |
|
|
|
|
libsodium = pkgs.runCommand "libsodium-wrapped" { |
|
|
|
|
libsodium = pkgsCross.pkgsStatic.libsodium; |
|
|
|
|
} '' |
|
|
|
|
cp -rL "$libsodium" "$out" |
|
|
|
|
chmod -R +w "$out" |
|
|
|
|
if [ ! -e "$out"/lib/libsodium.a ] && [ -f "$out"/lib/libsodium.dll.a ]; then |
|
|
|
|
cp "$out"/lib/libsodium.dll.a "$out"/lib/libsodium.a |
|
|
|
|
fi |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
buildEnv = rec { |
|
|
|
|
nativeBuildInputs = (buildTarget.depsBuildBuild pkgsCross) ++ [ |
|
|
|
|
toolchain |
|
|
|
|
pkgs.protobuf |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
cargoBuildOptions = prev: prev++[ |
|
|
|
|
"--features=${builtins.concatStringsSep "," builtFeatures}" |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
OPENSSL_STATIC = "1"; |
|
|
|
|
OPENSSL_LIB_DIR = "${pkgsCross.pkgsStatic.openssl.out}/lib"; |
|
|
|
|
OPENSSL_INCLUDE_DIR = "${pkgsCross.pkgsStatic.openssl.dev}/include"; |
|
|
|
|
|
|
|
|
|
SODIUM_LIB_DIR = "${libsodium}/lib"; |
|
|
|
|
|
|
|
|
|
# Required because ring crate is special. This also seems to have |
|
|
|
|
# fixed some issues with the x86_64-windows cross-compile :shrug: |
|
|
|
|
TARGET_CC = "${pkgsCross.stdenv.cc}/bin/${pkgsCross.stdenv.cc.targetPrefix}cc"; |
|
|
|
@ -168,6 +171,24 @@ in { |
|
|
|
|
]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
in { |
|
|
|
|
|
|
|
|
|
inherit pkgs pkgsCross; |
|
|
|
|
|
|
|
|
|
release = naersk.buildPackage (rec { |
|
|
|
|
inherit release; |
|
|
|
|
|
|
|
|
|
src = ./.; |
|
|
|
|
strictDeps = true; |
|
|
|
|
doCheck = false; |
|
|
|
|
|
|
|
|
|
cargoBuildOptions = prev: prev++[ |
|
|
|
|
"--features=${builtins.concatStringsSep "," builtFeatures}" |
|
|
|
|
]; |
|
|
|
|
} // buildEnv); |
|
|
|
|
|
|
|
|
|
shell = pkgsCross.mkShell buildEnv; |
|
|
|
|
|
|
|
|
|
# TODO |
|
|
|
|
#clippy = { |
|
|
|
|
# amd64 = (compile { |
|
|
|
|