mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-14 19:30:21 +00:00
84 lines
2.0 KiB
Nix
84 lines
2.0 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
rustPlatform,
|
|
pkg-config,
|
|
libuv,
|
|
openssl,
|
|
vimUtils,
|
|
nix-update-script,
|
|
}:
|
|
let
|
|
version = "2.1.0";
|
|
src = fetchFromGitHub {
|
|
owner = "mistricky";
|
|
repo = "codesnap.nvim";
|
|
tag = "v${version}";
|
|
hash = "sha256-HHBk6TgFPZ7zymzIFWWuGJAKrwKf4/PHNy9X+YnHBDE=";
|
|
};
|
|
codesnap-lib = rustPlatform.buildRustPackage {
|
|
pname = "codesnap-lib";
|
|
inherit version src;
|
|
|
|
sourceRoot = "${src.name}/generator";
|
|
|
|
cargoHash = "sha256-b+S56yRtly25fW1XmOVx5D3AT6PEY186r/KXVPI13dM=";
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
rustPlatform.bindgenHook
|
|
];
|
|
|
|
env = {
|
|
# Use system openssl
|
|
OPENSSL_NO_VENDOR = 1;
|
|
|
|
# Allow undefined symbols on Darwin - they will be provided by Neovim's LuaJIT runtime
|
|
RUSTFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-C link-arg=-undefined -C link-arg=dynamic_lookup";
|
|
};
|
|
|
|
postInstall = ''
|
|
echo "${version}" > $out/lib/.version
|
|
'';
|
|
|
|
buildInputs = [
|
|
libuv.dev
|
|
openssl
|
|
];
|
|
};
|
|
in
|
|
vimUtils.buildVimPlugin {
|
|
pname = "codesnap.nvim";
|
|
inherit version src;
|
|
|
|
postPatch =
|
|
let
|
|
extension = if stdenv.hostPlatform.isDarwin then "dylib" else "so";
|
|
in
|
|
''
|
|
substituteInPlace lua/codesnap/fetch.lua \
|
|
--replace-fail \
|
|
"local lib_name = get_platform_lib_name()" \
|
|
"local lib_name = 'libgenerator.${extension}'" \
|
|
--replace-fail \
|
|
'local lib_dir = path_utils.join(sep, vim.fn.fnamemodify(debug.getinfo(1).source:sub(2), ":p:h:h"), "libs")' \
|
|
'local lib_dir = "${codesnap-lib}/lib"'
|
|
'';
|
|
|
|
passthru = {
|
|
updateScript = nix-update-script {
|
|
attrPath = "vimPlugins.codesnap-nvim.codesnap-lib";
|
|
};
|
|
|
|
# needed for the update script
|
|
inherit codesnap-lib;
|
|
};
|
|
|
|
meta = {
|
|
homepage = "https://github.com/mistricky/codesnap.nvim/";
|
|
changelog = "https://github.com/mistricky/codesnap.nvim/releases/tag/${src.tag}";
|
|
license = lib.licenses.mit;
|
|
};
|
|
}
|