{ inputs = { nixpkgs = { url = "github:NixOS/nixpkgs/nixos-unstable"; }; }; outputs = { self, nixpkgs }: let overlays = [ (self: super: { notcurses = super.notcurses.overrideAttrs (oldAttrs: { patches = [ ./subprojects/packagefiles/notcurses/duration_and_ffmpeg_fix.diff ]; }); }) ]; forAllSupportedSystems = function: nixpkgs.lib.genAttrs [ "x86_64-linux" "i686-linux" "aarch64-linux" ] (system: function (import nixpkgs { inherit system; inherit overlays; })); forAllDevSystems = function: nixpkgs.lib.genAttrs [ "x86_64-linux" "i686-linux" ] (system: function (import nixpkgs { inherit system; inherit overlays; })); in rec { packages = forAllSupportedSystems (pkgs: { default = with pkgs; stdenv.mkDerivation rec { name = "mauri"; version = "0.14"; src = fetchgit { url = "https://git.akon.city/mauri"; rev = "1971938a653ad11ee2775459dc7999ced3451d31"; postFetch = '' export NIX_SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt cd "$out" ${lib.getExe meson} subprojects download \ libalabaster libnaunet stela janus s3tc-dxt-decompression cd "$out/subprojects/libalabaster-c633226" ${lib.getExe meson} subprojects download c89atomic cd "$out/subprojects/libnaunet-a389b8f" ${lib.getExe meson} subprojects download libev cd "$out" find subprojects -type d -name .git -prune -execdir rm -r {} + ''; sha256 = "ktwoNUklVUfNnwOITdSISTOV0QwuTdz6fkdXaiJs3Kc="; }; window = "wayland"; audio = false; mesonFlags = [ "-Dwindow=${window}" ] ++ lib.optionals audio [ "-Daudio=enabled" ]; nvidia-support = false; fixupPhase = if nvidia-support then '' wrapProgram $out/bin/mauri --set __EGL_VENDOR_LIBRARY_DIRS "${pkgs.mesa}/share/glvnd/egl_vendor.d:${pkgs.linuxPackages.nvidia_x11}/share/glvnd/egl_vendor.d" '' else '' wrapProgram $out/bin/mauri --set __EGL_VENDOR_LIBRARY_DIRS "${pkgs.mesa}/share/glvnd/egl_vendor.d" '' + '' wrapProgram $out/bin/taro --prefix LD_LIBRARY_PATH : "$out/lib64" ''; nativeBuildInputs = [ git gcc pkg-config ninja meson cmake wayland-scanner.bin makeWrapper ]; buildInputs = [ lz4 stb libGL glm nlohmann_json jansson notcurses ] ++ lib.optionals audio [ fftw ] ++ lib.optionals (window == "wayland") [ wayland wayland-protocols wlr-protocols egl-wayland ] ++ lib.optionals (window == "x11") [ xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXfixes xorg.libXcursor libxkbcommon ] ++ lib.optionals (window == "glfw") [ glfw3 ]; meta = with lib; { homepage = "https://git.akon.city/mauri"; description = ""; changelog = ""; license = [ licenses.gpl3Only ]; maintainers = []; }; }; }); devShells = forAllDevSystems (pkgs: { default = with pkgs; mkShell { NIX_HARDENING_ENABLE = ""; nativeBuildInputs = packages.${stdenv.hostPlatform.system}.default.nativeBuildInputs ++ [ gdb clang-tools perf-tools valgrind asciidoctor (python3.withPackages (python-pkgs: [ python-pkgs.pygments ])) ]; buildInputs = packages.${stdenv.hostPlatform.system}.default.buildInputs ++ [ # sway build json_c pcre2 libxkbcommon cairo pango libevdev libinput libdrm gdk-pixbuf xwayland libxcb-wm # wlroots build mesa vulkan-headers vulkan-loader glslang seatd libdisplay-info libliftoff hwdata # notcurses build libdeflate libunistring ncurses ffmpeg-headless ]; shellHook = '' export SHELL="${pkgs.bashInteractive}/bin/bash" export __EGL_VENDOR_LIBRARY_DIRS="${pkgs.mesa}/share/glvnd/egl_vendor.d:$__EGL_VENDOR_LIBRARY_DIRS" export NIX_BUILD_SHELL=$SHELL export NIX_SHELL="mauri" export PS1="(\$NIX_SHELL)"$PS1 echo -en '\033]2;'nix-shell: $NIX_SHELL'\007' ''; }; mingw64 = with pkgs; let gcc = pkgsCross.ucrt64.buildPackages.wrapCC (pkgsCross.ucrt64.buildPackages.gcc-unwrapped.override ({ threadsCross = { model = "win32"; package = null; }; })); gccWin32Stdenv = overrideCC pkgsCross.ucrt64.stdenv gcc; in mkShell.override { stdenv = gccWin32Stdenv; } { NIX_HARDENING_ENABLE = ""; nativeBuildInputs = [ git buildPackages.gcc gdb pkg-config ninja meson cmake wineWowPackages.staging ]; buildInputs = with pkgsCross.ucrt64; [ (zlib.override { shared = false; static = true; }) ]; shellHook = '' export SHELL="${pkgs.bashInteractive}/bin/bash" export NIX_BUILD_SHELL=$SHELL export NIX_SHELL="mauri-mingw64" export PS1="(\$NIX_SHELL)"$PS1 ''; }; }); }; }