This commit is contained in:
Septias
2024-11-13 13:34:08 +01:00
parent 37f15c5282
commit 4b13f9352c

View File

@@ -8,21 +8,23 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
android.url = "github:tadfisher/android-nixpkgs";
};
outputs = {
self,
nixpkgs,
flake-utils,
nix-filter,
naersk,
fenix,
android,
outputs =
{ self
, nixpkgs
, flake-utils
, nix-filter
, naersk
, fenix
, android
,
}:
flake-utils.lib.eachDefaultSystem (
system: let
system:
let
pkgs = nixpkgs.legacyPackages.${system};
inherit (pkgs.stdenv) isDarwin;
fenixPkgs = fenix.packages.${system};
naersk' = pkgs.callPackage naersk {};
naersk' = pkgs.callPackage naersk { };
manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
androidSdk = android.sdk.${system} (sdkPkgs:
builtins.attrValues {
@@ -104,7 +106,7 @@
mkRustPackage = packageName:
naersk'.buildPackage {
pname = packageName;
cargoBuildOptions = x: x ++ ["--package" packageName];
cargoBuildOptions = x: x ++ [ "--package" packageName ];
version = manifest.version;
src = pkgs.lib.cleanSource ./.;
nativeBuildInputs = [
@@ -117,7 +119,8 @@
doCheck = false; # Disable test as it requires network access.
};
pkgsWin64 = pkgs.pkgsCross.mingwW64;
mkWin64RustPackage = packageName: let
mkWin64RustPackage = packageName:
let
rustTarget = "x86_64-pc-windows-gnu";
toolchainWin = fenixPkgs.combine [
fenixPkgs.stable.rustc
@@ -131,7 +134,7 @@
in
naerskWin.buildPackage rec {
pname = packageName;
cargoBuildOptions = x: x ++ ["--package" packageName];
cargoBuildOptions = x: x ++ [ "--package" packageName ];
version = manifest.version;
strictDeps = true;
src = pkgs.lib.cleanSource ./.;
@@ -157,9 +160,11 @@
};
pkgsWin32 = pkgs.pkgsCross.mingw32;
mkWin32RustPackage = packageName: let
mkWin32RustPackage = packageName:
let
rustTarget = "i686-pc-windows-gnu";
in let
in
let
toolchainWin = fenixPkgs.combine [
fenixPkgs.stable.rustc
fenixPkgs.stable.cargo
@@ -183,8 +188,7 @@
model = "win32";
package = null;
};
})
.overrideAttrs (oldAttr: {
}).overrideAttrs (oldAttr: {
configureFlags =
oldAttr.configureFlags
++ [
@@ -195,7 +199,7 @@
in
naerskWin.buildPackage rec {
pname = packageName;
cargoBuildOptions = x: x ++ ["--package" packageName];
cargoBuildOptions = x: x ++ [ "--package" packageName ];
version = manifest.version;
strictDeps = true;
src = pkgs.lib.cleanSource ./.;
@@ -220,14 +224,16 @@
LD = "${winCC}/bin/${winCC.targetPrefix}cc";
};
mkCrossRustPackage = arch: packageName: let
mkCrossRustPackage = arch: packageName:
let
rustTarget = arch2targets."${arch}".rustTarget;
crossTarget = arch2targets."${arch}".crossTarget;
pkgsCross = import nixpkgs {
system = system;
crossSystem.config = crossTarget;
};
in let
in
let
toolchain = fenixPkgs.combine [
fenixPkgs.stable.rustc
fenixPkgs.stable.cargo
@@ -240,7 +246,7 @@
in
naersk-lib.buildPackage rec {
pname = packageName;
cargoBuildOptions = x: x ++ ["--package" packageName];
cargoBuildOptions = x: x ++ [ "--package" packageName ];
version = manifest.version;
strictDeps = true;
src = rustSrc;
@@ -280,7 +286,8 @@
};
};
mkAndroidRustPackage = arch: packageName: let
mkAndroidRustPackage = arch: packageName:
let
rustTarget = androidAttrs.${arch}.rustTarget;
toolchain = fenixPkgs.combine [
fenixPkgs.stable.rustc
@@ -297,7 +304,7 @@
in
naersk-lib.buildPackage rec {
pname = packageName;
cargoBuildOptions = x: x ++ ["--package" packageName];
cargoBuildOptions = x: x ++ [ "--package" packageName ];
version = manifest.version;
strictDeps = true;
src = rustSrc;
@@ -323,9 +330,11 @@
"deltachat-repl-${arch}-android" = mkAndroidRustPackage arch "deltachat-repl";
};
mkRustPackages = arch: let
mkRustPackages = arch:
let
rpc-server = mkCrossRustPackage arch "deltachat-rpc-server";
in {
in
{
"deltachat-repl-${arch}" = mkCrossRustPackage arch "deltachat-repl";
"deltachat-rpc-server-${arch}" = rpc-server;
"deltachat-rpc-server-${arch}-wheel" = pkgs.stdenv.mkDerivation {
@@ -355,7 +364,8 @@
installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out'';
};
};
in {
in
{
formatter = pkgs.nixpkgs-fmt;
packages =
@@ -435,7 +445,7 @@
pname = "docs";
version = manifest.version;
src = pkgs.lib.cleanSource ./.;
nativeBuildInputs = [pkgs.doxygen];
nativeBuildInputs = [ pkgs.doxygen ];
buildPhase = ''scripts/run-doxygen.sh'';
installPhase = ''mkdir -p $out; cp -av deltachat-ffi/html deltachat-ffi/xml $out'';
};
@@ -521,16 +531,17 @@
pkgs.python3Packages.breathe
pkgs.python3Packages.sphinx_rtd_theme
];
nativeBuildInputs = [pkgs.sphinx];
nativeBuildInputs = [ pkgs.sphinx ];
buildPhase = ''sphinx-build -b html -a python/doc/ dist/html'';
installPhase = ''mkdir -p $out; cp -av dist/html $out'';
};
};
devShells.default = let
devShells.default =
let
pkgs = import nixpkgs {
system = system;
overlays = [fenix.overlays.default];
overlays = [ fenix.overlays.default ];
};
in
pkgs.mkShell {