try fixing flake

This commit is contained in:
2026-07-26 18:29:13 +01:00
parent a9054b3be4
commit 1935be52ac
5 changed files with 161 additions and 54 deletions
+112 -34
View File
@@ -3,48 +3,126 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
self.submodules = true;
};
outputs =
{ self, nixpkgs }:
{ nixpkgs, ... }:
let
systems = [ "x86_64-linux" ];
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
staticPkgs = pkgs.pkgsStatic;
mruby = staticPkgs.stdenv.mkDerivation {
pname = "mruby";
version = "0.0.1";
src = staticPkgs.lib.cleanSourceWith {
src = ./libs;
name = "mruby-src";
};
patches = [
./libs/changes.patch
];
nativeBuildInputs = with pkgs; [
ruby
gnumake
clang
];
buildPhase = ''
cd mruby
rake
'';
installPhase = ''
mkdir -p $out
cp -r build/host/lib $out/lib
cp -r build/host/include $out/include
mkdir -p $out/bin
cp build/host/bin/mrbc $out/bin/mrbc
'';
};
game-engine = staticPkgs.stdenv.mkDerivation {
pname = "game-engine";
version = "0.1.0";
src = ./.;
nativeBuildInputs = with pkgs; [
clang
pkg-config
gnumake
bear
ccache
xxd
];
buildInputs = [
pkgs.sdl3
pkgs.sdl3-ttf
pkgs.sdl3-image
mruby
];
buildPhase = ''
make \
MRBC=${mruby}/bin/mrbc \
MRUBY_INCLUDE=${mruby}/include \
MRUBY_LIB=${mruby}/lib/libmruby.a
'';
installPhase = ''
mkdir -p $out/bin
cp game-engine $out/bin/game-engine
'';
CC = "${pkgs.clang}/bin/clang";
CXX = "${pkgs.clang}/bin/clang++";
};
forAllSystems =
f:
nixpkgs.lib.genAttrs systems (
system:
f (
import nixpkgs {
inherit system;
}
)
);
in
{
devShells = forAllSystems (pkgs: {
default = pkgs.mkShell {
packages = with pkgs; [
clang-tools
clang
ccache
pkg-config
gnumake
ruby
xxd
bear
packages.${system} = {
default = game-engine;
game-engine = game-engine;
mruby = mruby;
};
sdl3
sdl3-ttf
sdl3-image
];
devShells.${system}.default = pkgs.mkShell {
inputsFrom = [ game-engine ];
shellHook = ''
export CC=clang
export CXX=clang++
export LD=clang
'';
};
});
packages = [
pkgs.clang-tools
pkgs.clang
pkgs.ccache
pkgs.pkg-config
pkgs.gnumake
pkgs.bear
pkgs.ruby
pkgs.xxd
pkgs.sdl3
pkgs.sdl3-ttf
pkgs.sdl3-image
];
shellHook = ''
export CC=clang
export CXX=clang++
export LD=clang
export MRBC=${mruby}/bin/mrbc
export MRUBY_INCLUDE=${mruby}/include
export MRUBY_LIB=${mruby}/lib/libmruby.a
'';
};
};
}