at 18.03-beta 1.5 kB view raw
1{ lua, writeText }: 2 3{ buildInputs ? [], disabled ? false, ... } @ attrs: 4 5if disabled then 6 throw "${attrs.name} not supported by interpreter lua-${lua.luaversion}" 7else 8 lua.stdenv.mkDerivation ( 9 { 10 makeFlags = [ 11 "PREFIX=$(out)" 12 "LUA_LIBDIR=$(out)/lib/lua/${lua.luaversion}" 13 "LUA_INC=-I${lua}/include" 14 ]; 15 } 16 // 17 attrs 18 // 19 { 20 name = "lua${lua.luaversion}-" + attrs.name; 21 buildInputs = buildInputs ++ [ lua ]; 22 23 setupHook = writeText "setup-hook.sh" '' 24 # check for lua/clua modules and don't add duplicates 25 26 addLuaLibPath() { 27 local package_path="$1/share/lua/${lua.luaversion}" 28 if [[ ! -d $package_path ]]; then return; fi 29 if [[ $LUA_PATH = *"$package_path"* ]]; then return; fi 30 31 if [[ -z $LUA_PATH ]]; then 32 export LUA_PATH="$package_path/?.lua" 33 else 34 export LUA_PATH="$LUA_PATH;$package_path/?.lua" 35 fi 36 } 37 38 addLuaLibCPath() { 39 local package_cpath="$1/lib/lua/${lua.luaversion}" 40 if [[ ! -d $package_cpath ]]; then return; fi 41 if [[ $LUA_CPATH = *"$package_cpath"* ]]; then return; fi 42 43 if [[ -z $LUA_CPATH ]]; then 44 export LUA_CPATH="$package_cpath/?.so" 45 else 46 export LUA_CPATH="$LUA_CPATH;$package_cpath/?.so" 47 fi 48 } 49 50 addEnvHooks "$hostOffset" addLuaLibPath 51 addEnvHooks "$hostOffset" addLuaLibCPath 52 ''; 53 } 54 )