mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-12 16:53:21 +00:00
52 lines
1.9 KiB
XML
52 lines
1.9 KiB
XML
|
<section xmlns="http://docbook.org/ns/docbook"
|
||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||
|
xml:id="sec-language-lua">
|
||
|
|
||
|
<title>Lua</title>
|
||
|
|
||
|
<para>
|
||
|
Lua packages are built by the <varname>buildLuaPackage</varname> function. This function is
|
||
|
implemented
|
||
|
in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/lua-modules/generic/default.nix">
|
||
|
<filename>pkgs/development/lua-modules/generic/default.nix</filename></link>
|
||
|
and works similarly to <varname>buildPerlPackage</varname>. (See
|
||
|
<xref linkend="sec-language-perl"/> for details.)
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
Lua packages are defined
|
||
|
in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/lua-packages.nix"><filename>pkgs/top-level/lua-packages.nix</filename></link>.
|
||
|
Most of them are simple. For example:
|
||
|
|
||
|
<programlisting>
|
||
|
fileSystem = buildLuaPackage {
|
||
|
name = "filesystem-1.6.2";
|
||
|
src = fetchurl {
|
||
|
url = "https://github.com/keplerproject/luafilesystem/archive/v1_6_2.tar.gz";
|
||
|
sha256 = "1n8qdwa20ypbrny99vhkmx8q04zd2jjycdb5196xdhgvqzk10abz";
|
||
|
};
|
||
|
meta = {
|
||
|
homepage = "https://github.com/keplerproject/luafilesystem";
|
||
|
hydraPlatforms = stdenv.lib.platforms.linux;
|
||
|
maintainers = with maintainers; [ flosse ];
|
||
|
};
|
||
|
};
|
||
|
</programlisting>
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
Though, more complicated package should be placed in a seperate file in
|
||
|
<link
|
||
|
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/lua-modules"><filename>pkgs/development/lua-modules</filename></link>.
|
||
|
</para>
|
||
|
<para>
|
||
|
Lua packages accept additional parameter <varname>disabled</varname>, which defines
|
||
|
the condition of disabling package from luaPackages. For example, if package has
|
||
|
<varname>disabled</varname> assigned to <literal>lua.luaversion != "5.1"</literal>,
|
||
|
it will not be included in any luaPackages except lua51Packages, making it
|
||
|
only be built for lua 5.1.
|
||
|
</para>
|
||
|
|
||
|
</section>
|
||
|
|