diff options
Diffstat (limited to 'contrib/flake.nix')
-rw-r--r-- | contrib/flake.nix | 58 |
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 |