Unverified Commit 922a4d82 authored by Matthieu Coudron's avatar Matthieu Coudron Committed by GitHub
Browse files

Merge pull request #260759 from mrcjkb/toml-edit

luaPackages: add some lua packages
parents ab50cb74 3425b6ce
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ lualogging,,,,,,
luaossl,,,,,5.1,
luaposix,,,,34.1.1-1,,vyp lblasc
luarepl,,,,,,
luarocks-build-rust-mlua,,,,,,mrcjkb
luasec,,,,,,flosse
luasocket,,,,,,
luasql-sqlite3,,,,,,vyp
@@ -92,6 +93,7 @@ mediator_lua,,,,,,
middleclass,,,,,,
mpack,,,,,,
moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
nui-nvim,,,,,,mrcjkb
nvim-client,https://github.com/neovim/lua-client.git,,,,,
nvim-cmp,https://github.com/hrsh7th/nvim-cmp,,,,,
penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
@@ -109,5 +111,7 @@ teal-language-server,,,http://luarocks.org/dev,,,
telescope.nvim,,,,,5.1,
telescope-manix,,,,,,
tl,,,,,,mephistophiles
toml,,,,,,mrcjkb
toml-edit,,,,,5.1,mrcjkb
vstruct,https://github.com/ToxicFrog/vstruct.git,,,,,
vusted,,,,,,figsoda
+36 −0
Original line number Diff line number Diff line
{ fetchFromGitHub
, lib
, stdenv
, cmake
, lua
}:
stdenv.mkDerivation (finalAttrs: {
  pname = "sol2";
  version = "3.3.1";
  src = fetchFromGitHub {
    owner = "ThePhD";
    repo = "sol2";
    rev = "v${finalAttrs.version}";
    hash = "sha256-7QHZRudxq3hdsfEAYKKJydc4rv6lyN6UIt/2Zmaejx8=";
  };

  nativeBuildInputs = [ cmake lua ];

  cmakeFlags = [
    "-DSOL2_LUA_VERSION=${lua.version}"
    "-DSOL2_BUILD_LUA=FALSE"
  ];

  meta = with lib;{
    description = "Lua API wrapper with advanced features and top notch performance";
    longDescription = ''
      sol2 is a C++ library binding to Lua.
      It currently supports all Lua versions 5.1+ (LuaJIT 2.0+ and MoonJIT included).
      sol2 aims to be easy to use and easy to add to a project.
      The library is header-only for easy integration with projects, and a single header can be used for drag-and-drop start up.
    '';
    homepage = "https://github.com/ThePhD/sol2";
    license = licenses.mit;
    maintainers = with maintainers; [ mrcjkb ];
  };
})
+123 −0
Original line number Diff line number Diff line
@@ -2066,6 +2066,35 @@ buildLuarocksPackage {
  };
}) {};

luarocks-build-rust-mlua = callPackage({ fetchgit, buildLuarocksPackage }:
buildLuarocksPackage {
  pname = "luarocks-build-rust-mlua";
  version = "0.1.2-1";
  knownRockspec = (fetchurl {
    url    = "mirror://luarocks/luarocks-build-rust-mlua-0.1.2-1.rockspec";
    sha256 = "1sx908fm2ihpxz2mm54xzkfmdzlqdvrqjkh1zz7rcjgmqba4mh1j";
  }).outPath;
  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
  "url": "https://github.com/khvzak/luarocks-build-rust-mlua",
  "rev": "c8080aa0832563b7f8b2cb85a195c1598ce312e0",
  "date": "2023-06-29T16:47:41+01:00",
  "path": "/nix/store/n7id28r1m11xd550hayv99xhz96vpdjq-luarocks-build-rust-mlua",
  "sha256": "1zh1p5k7xpczi5db3k0fw0ljw9w0xxk1qjjcfg5rcznqjf48i3x7",
  "fetchLFS": false,
  "fetchSubmodules": true,
  "deepClone": false,
  "leaveDotGit": false
}
 '') ["date" "path"]) ;


  meta = {
    homepage = "https://github.com/khvzak/luarocks-build-rust-mlua";
    description = "A LuaRocks build backend for Lua modules written in Rust using mlua";
    license.fullName = "MIT";
  };
}) {};

luasec = callPackage({ fetchgit, luaOlder, luasocket, buildLuarocksPackage, lua }:
buildLuarocksPackage {
  pname = "luasec";
@@ -2574,6 +2603,36 @@ buildLuarocksPackage {
  };
}) {};

nui-nvim = callPackage( { fetchgit, buildLuarocksPackage }:
buildLuarocksPackage {
  pname = "nui.nvim";
  version = "0.2.0-1";
  knownRockspec = (fetchurl {
    url    = "mirror://luarocks/nui.nvim-0.2.0-1.rockspec";
    sha256 = "0v2z6lgl6hrzcjlzhis8nrkdkh9kvx8zg3q5svi5gyklg7vmcbc2";
  }).outPath;
  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
  "url": "https://github.com/MunifTanjim/nui.nvim.git",
  "rev": "9e3916e784660f55f47daa6f26053ad044db5d6a",
  "date": "2023-07-20T10:45:09+06:00",
  "path": "/nix/store/8zdhjgipjjhi9b1y40r2yk5np4lp39as-nui.nvim",
  "sha256": "14a73dwl56kah9h36b40ir6iylvfs261ysz17qvi9vhp63vjq9cx",
  "fetchLFS": false,
  "fetchSubmodules": true,
  "deepClone": false,
  "leaveDotGit": false
}
 '') ["date" "path"]) ;


  meta = {
    homepage = "https://github.com/MunifTanjim/nui.nvim";
    description = "UI Component Library for Neovim.";
    maintainers = with lib.maintainers; [ mrcjkb ];
    license.fullName = "MIT";
  };
}) {};

nvim-client = callPackage({ coxpcall, fetchurl, mpack, lua, luaOlder, luv, buildLuarocksPackage }:
buildLuarocksPackage {
  pname = "nvim-client";
@@ -3039,6 +3098,70 @@ buildLuarocksPackage {
  };
}) {};

toml = callPackage({ lua, fetchgit, luaOlder, buildLuarocksPackage }:
buildLuarocksPackage {
  pname = "toml";
  version = "0.3.0-0";
  knownRockspec = (fetchurl {
    url    = "mirror://luarocks/toml-0.3.0-0.rockspec";
    sha256 = "0y4qdzsvf4xwnr49xcpbqclrq9d6snv83cbdkrchl0cn4cx6zpxy";
  }).outPath;
  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
  "url": "https://github.com/LebJe/toml.lua.git",
  "rev": "319e9accf8c5cedf68795354ba81e54c817d1277",
  "date": "2023-02-19T23:00:49-05:00",
  "path": "/nix/store/p6a98sqp9a4jwsw6ghqcwpn9lxmhvkdg-toml.lua",
  "sha256": "05p33bq0ajl41vbsw9bx73shpf0p11n5gb6yy8asvp93zh2m51hq",
  "fetchLFS": false,
  "fetchSubmodules": true,
  "deepClone": false,
  "leaveDotGit": false
}
 '') ["date" "path"]) ;

  disabled = (luaOlder "5.1");
  propagatedBuildInputs = [ lua ];

  meta = {
    homepage = "https://github.com/LebJe/toml.lua";
    description = "TOML v1.0.0 parser and serializer for Lua. Powered by toml++.";
    maintainers = with lib.maintainers; [ mrcjkb ];
    license.fullName = "MIT";
  };
}) {};

toml-edit = callPackage({ luaOlder, luarocks-build-rust-mlua, buildLuarocksPackage, lua, fetchgit }:
buildLuarocksPackage {
  pname = "toml-edit";
  version = "0.1.4-1";
  knownRockspec = (fetchurl {
    url    = "mirror://luarocks/toml-edit-0.1.4-1.rockspec";
    sha256 = "05bcc1xafcspdf1rcka9bhg7b6z617b4jrcahs1r7grcp78w89vf";
  }).outPath;
  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
  "url": "https://github.com/vhyrro/toml-edit.lua",
  "rev": "f6efdab4ca6fab276f172060971781dc42a94f2d",
  "date": "2023-10-02T16:54:10+02:00",
  "path": "/nix/store/p1368agmqg4jwb1qvf2iff3fdrq9vkdj-toml-edit.lua",
  "sha256": "1aa8znjnmm84392gnl7w0hm069xfv7niym3i8my7kyk0vdgxja06",
  "fetchLFS": false,
  "fetchSubmodules": true,
  "deepClone": false,
  "leaveDotGit": false
}
 '') ["date" "path"]) ;

  disabled = (luaOlder "5.1");
  propagatedBuildInputs = [ lua luarocks-build-rust-mlua ];

  meta = {
    homepage = "https://github.com/vhyrro/toml-edit.lua";
    description = "TOML Parser + Formatting and Comment-Preserving Editor";
    maintainers = with lib.maintainers; [ mrcjkb ];
    license.fullName = "MIT";
  };
}) {};

vstruct = callPackage({ fetchgit, lua, buildLuarocksPackage, luaOlder }:
buildLuarocksPackage {
  pname = "vstruct";
+28 −0
Original line number Diff line number Diff line
# do not add pkgs, it messes up splicing
{ stdenv
, cargo
, cmake
, curl
, cyrus_sasl
@@ -27,6 +28,7 @@
, libxcrypt
, libyaml
, mariadb
, magic-enum
, mpfr
, neovim-unwrapped
, openldap
@@ -35,7 +37,10 @@
, pkg-config
, postgresql
, readline
, rustPlatform
, sol2
, sqlite
, tomlplusplus
, unbound
, vimPlugins
, vimUtils
@@ -558,6 +563,29 @@ with prev;
    '';
  });

  toml = prev.toml.overrideAttrs (oa: {
    patches = [ ./toml.patch ];

    propagatedBuildInputs = oa.propagatedBuildInputs ++ [ magic-enum sol2 ];

    postPatch = ''
      substituteInPlace CMakeLists.txt --replace \
        "TOML_PLUS_PLUS_SRC" \
        "${tomlplusplus.src}"
    '';
  });

  toml-edit = prev.toml-edit.overrideAttrs (oa: {

    cargoDeps = rustPlatform.fetchCargoTarball {
      src = oa.src;
      hash = "sha256-pLAisfnSDoAToQO/kdKTdic6vEug7/WFNtgOfj0bRAE=";
    };

    propagatedBuildInputs = oa.propagatedBuildInputs ++ [ cargo rustPlatform.cargoSetupHook ];

  });

  vstruct = prev.vstruct.overrideAttrs (_: {
    meta.broken = (luaOlder "5.1" || luaAtLeast "5.4");
  });
+43 −0
Original line number Diff line number Diff line
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ab3884c..9432df7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,26 +38,17 @@ include(FetchContent)
 
 FetchContent_Declare(
 	${TOML++}
-	GIT_REPOSITORY "https://github.com/marzer/tomlplusplus.git"
-	GIT_SHALLOW ON
-    GIT_SUBMODULES ""
-	GIT_TAG "v3.3.0"
+  DOWNLOAD_COMMAND true
 )
 
 FetchContent_Declare(
 	${SOL2}
-	GIT_REPOSITORY "https://github.com/ThePhD/sol2.git"
-	GIT_SHALLOW ON
-    GIT_SUBMODULES ""
-	GIT_TAG "v3.3.0"
+  DOWNLOAD_COMMAND true
 )
 
 FetchContent_Declare(
 	${MAGIC_ENUM}
-	GIT_REPOSITORY "https://github.com/Neargye/magic_enum.git"
-	GIT_SHALLOW ON
-    GIT_SUBMODULES ""
-	GIT_TAG "v0.8.2"
+  DOWNLOAD_COMMAND true
 )
 
 FetchContent_GetProperties(${TOML++})
@@ -113,7 +104,7 @@ if(NOT LUA_INCLUDE_DIR OR (WIN32 AND NOT LUA_LIBRARIES))
     find_package(Lua)
 endif()
 
-include_directories(${LUA_INCLUDE_DIR} src src/include ${${TOML++}_SOURCE_DIR} ${${SOL2}_SOURCE_DIR}/include ${${MAGIC_ENUM}_SOURCE_DIR}/include)
+include_directories(${LUA_INCLUDE_DIR} src src/include TOML_PLUS_PLUS_SRC ${${SOL2}_SOURCE_DIR}/include ${${MAGIC_ENUM}_SOURCE_DIR}/include)
 
 set(SOURCES
     src/toml.cpp
Loading