aboutsummaryrefslogtreecommitdiff
path: root/contrib/flake.nix
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-11-29 22:39:54 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-11-29 22:39:54 +0000
commit21cb7d04c387e4198ca8098a884c78b56ffcf4c2 (patch)
tree84fe5690df1551f0bb2bdfe1a13aacd29ebc1de7 /contrib/flake.nix
parentd9c904f85a23a496df4eb6be42aa43f007b22d50 (diff)
parent4a8bf24ac690004aedf5540fa440e788459e5e34 (diff)
downloadrneovim-colorcolchar.tar.gz
rneovim-colorcolchar.tar.bz2
rneovim-colorcolchar.zip
Merge remote-tracking branch 'upstream/master' into colorcolcharcolorcolchar
Diffstat (limited to 'contrib/flake.nix')
-rw-r--r--contrib/flake.nix58
1 files changed, 52 insertions, 6 deletions
diff --git a/contrib/flake.nix b/contrib/flake.nix
index 0898c943d7..57e56d0fdb 100644
--- a/contrib/flake.nix
+++ b/contrib/flake.nix
@@ -7,15 +7,64 @@
};
outputs = { self, nixpkgs, flake-utils }:
+ let
+ inherit (builtins)
+ elemAt
+ foldl'
+ mapAttrs
+ match
+ readFile
+ ;
+ inherit (nixpkgs.lib)
+ const
+ flip
+ pipe
+ remove
+ splitString
+ toLower
+ ;
+ in
{
overlay = final: prev: {
- neovim = final.neovim-unwrapped.overrideAttrs (oa: rec {
+ neovim = (final.neovim-unwrapped.override {
+ treesitter-parsers = pipe ../cmake.deps/deps.txt [
+ readFile
+ (splitString "\n")
+ (map (match "TREESITTER_([A-Z_]+)_(URL|SHA256)[[:space:]]+([^[:space:]]+)[[:space:]]*"))
+ (remove null)
+ (flip foldl' { }
+ (acc: matches:
+ let
+ lang = toLower (elemAt matches 0);
+ type = toLower (elemAt matches 1);
+ value = elemAt matches 2;
+ in
+ acc // {
+ ${lang} = acc.${lang} or { } // {
+ ${type} = value;
+ };
+ }))
+ (mapAttrs (const final.fetchurl))
+ (self: self // {
+ markdown = final.stdenv.mkDerivation {
+ inherit (self.markdown) name;
+ src = self.markdown;
+ installPhase = ''
+ mv tree-sitter-markdown $out
+ '';
+ };
+ })
+ ];
+ }).overrideAttrs (oa: rec {
version = self.shortRev or "dirty";
src = ../.;
- preConfigure = ''
+ preConfigure = oa.preConfigure or "" + ''
sed -i cmake.config/versiondef.h.in -e 's/@NVIM_VERSION_PRERELEASE@/-dev-${version}/'
'';
+ nativeBuildInputs = oa.nativeBuildInputs ++ [
+ final.libiconv
+ ];
});
# a development binary to help debug issues
@@ -33,7 +82,6 @@
NIX_CFLAGS_COMPILE = " -ggdb -Og";
cmakeBuildType = "Debug";
- cmakeFlags = oa.cmakeFlags ++ [ "-DMIN_LOG_LEVEL=0" ];
disallowedReferences = [ ];
});
@@ -45,12 +93,11 @@
}).overrideAttrs (oa: {
cmakeFlags = oa.cmakeFlags ++ [
"-DLUACHECK_PRG=${luacheck}/bin/luacheck"
- "-DMIN_LOG_LEVEL=0"
"-DENABLE_LTO=OFF"
] ++ final.lib.optionals final.stdenv.isLinux [
# https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
# https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports
- "-DCLANG_ASAN_UBSAN=ON"
+ "-DENABLE_ASAN_UBSAN=ON"
];
});
};
@@ -105,7 +152,6 @@
# ASAN_OPTIONS=detect_leaks=1
export ASAN_OPTIONS="log_path=./test.log:abort_on_error=1"
- export UBSAN_OPTIONS=print_stacktrace=1
# for treesitter functionaltests
mkdir -p runtime/parser