print3d/flake.nix

75 lines
1.9 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
devkitNix.url = "github:bandithedoge/devkitNix";
makerom = {
flake = false;
url = "github:/3DSGuy/Project_CTR";
};
};
outputs = {
self,
nixpkgs,
flake-utils,
devkitNix,
makerom,
...
}:
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = import nixpkgs {
inherit system;
overlays = [devkitNix.overlays.default];
};
in {
devShells.default =
pkgs.mkShell.override {
stdenv = pkgs.devkitNix.stdenvARM;
} {
packages = [self.packages.${pkgs.system}.makerom];
};
packages = {
default = pkgs.devkitNix.stdenvARM.mkDerivation {
name = "print3d";
src = ./.;
buildInputs = [pkgs.imagemagick pkgs.which];
# makeFlags = ["TARGET=example"];
installPhase = ''
mkdir $out
cp 3ds.3dsx $out
'';
};
makerom =
pkgs.stdenv.mkDerivation
{
name = "makerom";
src = "${makerom}/makerom";
buildInputs = let
pkgDep = name:
pkgs.stdenv.mkDerivation {
inherit name;
src = "${makerom}/makerom/deps/${name}";
installPhase = ''
mkdir -p $out/lib
cp bin/${name}.a $out/lib
'';
};
in [
(pkgDep "libblz")
(pkgDep "libmbedtls")
(pkgDep "libyaml")
];
installPhase = ''
mkdir -p $out/bin
cp bin/makerom $out/bin
'';
};
};
}
);
}