diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 77 |
1 files changed, 50 insertions, 27 deletions
@@ -10,7 +10,7 @@ flake-utils.lib.eachDefaultSystem (system: with import nixpkgs { inherit system; }; let - mkLua = { lua, luaPkgs }: + mkDeps = { lua, luaPkgs }: let luarocks-build-cpp = luaPkgs.buildLuarocksPackage rec { pname = "luarocks-build-cpp"; @@ -169,42 +169,65 @@ }; }; in - (lua.withPackages (p: with p; [ + with luaPkgs; [ moonscript lpeg luafilesystem luasocket luasystem fltk4lua losc bit32 ldoc busted discount lua-rtmidi - ])); + ]; in rec { - packages.alive-env-lua53 = stdenv.mkDerivation { - name = "alive-env-lua53"; - src = self; - - nativeBuildInputs = with pkgs; [ (mkLua { lua = lua5_3; luaPkgs = lua53Packages; }) ]; - - shellHook = '' - export LUA_PATH="?.lua;?/init.lua" - ''; - }; + packages.alive = lua53Packages.buildLuarocksPackage rec { + pname = "alive"; + version = "scm-10"; - packages.alive-env-luajit = stdenv.mkDerivation { - name = "alive-env-luajit"; - src = self; + src = ./.; + knownRockspec = ./dist/rocks/${pname}-${version}.rockspec; - nativeBuildInputs = with pkgs; [ - (mkLua { lua = luajit; luaPkgs = luajitPackages; }) - love_11 - ]; + propagatedBuildInputs = with pkgs; [ lua5_3 ] + ++ (mkDeps { lua = lua5_3; luaPkgs = lua53Packages; }); - shellHook = '' - source <( - LUA_PATH="?.lua;?/init.lua" luajit -e \ - "print(string.format('export LUA_PATH=%q; export LUA_CPATH=%q', package.path, package.cpath))" - ) - ''; + meta = { + homepage = "https://github.com/s-ol/lua-rtmidi"; + description = "Lua bindings for RtMidi"; + license = lib.licenses.bsd2; + }; }; + defaultPackage = packages.alive; + defaultApp = { type = "app"; program = "${defaultPackage}/bin/alv-fltk"; }; + + devShells.lua53 = + let + lua = pkgs.lua5_3; + deps = (mkDeps { lua = lua; luaPkgs = pkgs.lua53Packages; }); + in stdenv.mkDerivation { + name = "alive-env-lua53"; + src = self; + + propagatedBuildInputs = [ (lua.withPackages (o: deps)) ] ++ deps; + + shellHook = '' + export LUA_PATH="?.lua;?/init.lua" + ''; + }; - defaultPackage = packages.alive-env-luajit; + devShells.luajit = + let + lua = pkgs.lua5_3; + deps = (mkDeps { lua = lua; luaPkgs = pkgs.lua53Packages; }); + in stdenv.mkDerivation { + name = "alive-env-luajit"; + src = self; + + propagatedBuildInputs = [ (lua.withPackages (o: deps)) love_11 ] ++ deps; + + shellHook = '' + source <( + LUA_PATH="?.lua;?/init.lua" luajit -e \ + "print(string.format('export LUA_PATH=%q; export LUA_CPATH=%q', package.path, package.cpath))" + ) + ''; + }; + devShell = devShells.lua53; } ); } |
