我正在尝试构建一个不在当前 nixpkgs 存储库中的 nix-shell。具体来说:raylua
我已经设法使用 Nim 将 Raylib 本身构建为 nix-shell的一部分。我现在正在尝试修改它以使用 Lua Raylib 和 Lua 库,但不确定如何继续。
我看到人们使用nix-shell ...
命令来绕过很多这种痛苦,但我想要一些我可以提交给 repo 的东西。
我拥有的文件是:
shell.nix
{ pkgs ? import <nixpkgs> {} }:
let
unstable = import <unstable> {};
raylib = pkgs.callPackage ./nix/raylib/default.nix { };
# toLuaModule
#raylib-lua = pkgs.callPackage ./nix/raylib-lua/default.nix { raylib };
in
pkgs.mkShell {
buildInputs = [
pkgs.bashInteractive
pkgs.glfw
pkgs.luajit
raylib
#raylua
];
}
nix/raylib/default.nix
与https://github.com/adamlwgriffiths/nix-nim/中的相同
nix/raylua/default.nix
{ stdenv, lib, fetchFromGitHub, make, luaPackages }: #, raylib }:
with luaPackages;
let
libs = [];
in
stdenv.mkDerivation rec {
pname = "raylua";
version = "3.5.0";
src = fetchFromGitHub {
owner = "Rabios";
repo = pname;
rev = version;
sha256 = "0syvd5js1lbx3g4cddwwncqg95l6hb3fdz5nsh5pqy7fr6v84kwj";
};
lualibs = [ luaPackages.lua ];
buildInputs = [ make ] ++ lualibs;
LUA_PATH = stdenv.lib.concatStringsSep ";" (map luaPackages.getLuaPath lualibs);
LUA_CPATH = stdenv.lib.concatStringsSep ";" (map luaPackages.getLuaCPath lualibs);
configureFlags = ''
LUA_PATH="${LUA_PATH}"
LUA_CPATH="${LUA_CPATH}"
INST_LIBDIR="$out/lib/lua/${luaPackages.lua.luaversion}"
INST_LUADIR="$out/share/lua/${luaPackages.lua.luaversion}"
LUA_BINDIR="${luaPackages.lua}/bin"
LUA_INCDIR="-I${luaPackages.lua}/include"
LUA_LIBDIR="-L${luaPackages.lua}/lib"
'';
meta = with stdenv.lib; {
description = "Lua bindings for raylib, a simple and easy-to-use library to enjoy videogames programming";
homepage = "https://github.com/Rabios/raylua";
license = licenses.isc;
maintainers = with maintainers; [ adamlwgriffiths ];
platforms = platforms.linux;
};
}