{ description = "Navidrome Client Dev Environment"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; initClangScript = pkgs.writeShellScriptBin "init-clang" '' if [ -f .clang-format ]; then echo "Fehler: .clang-format existiert bereits." else ${pkgs.clang-tools}/bin/clang-format -style=Google -dump-config > .clang-format echo "Erfolg: .clang-format (Google Style) wurde erstellt!" fi ''; in { devShells.default = pkgs.mkShell { name = "Qt-Navidrome-Dev"; buildInputs = with pkgs; [ qtcreator cmake ninja gdb pkg-config # Tools clang-tools initClangScript # Qt Module qt6.qtbase qt6.qtdeclarative qt6.qtmultimedia qt6.qtsvg ]; shellHook = '' export name="Qt-Navidrome-Dev" export CC=gcc export CXX=g++ echo "Qt Creator: $(qtcreator -version 2>&1 | head -n 1 | cut -d ' ' -f 1-4)" echo "CMake: $(cmake --version | head -n 1)" echo "GDB: $(gdb --version | head -n 1)" echo "Compiler: $(c++ --version | head -n 1)" ''; }; } ); }