{ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs, }: let pkgs = import nixpkgs { system = "x86_64-linux"; }; in { packages.x86_64-linux = { # Define the default package, which will build the C++ app default = pkgs.stdenv.mkDerivation { pname = "cli"; version = "0.1.0"; # Source directory containing the C++ code src = ./.; # Build dependencies (e.g., compilers) buildInputs = [ pkgs.gcc pkgs.libusb1 ]; # Build commands buildPhase = '' mkdir -p $out/bin g++ -o $out/bin/cli src/cli.cpp src/usb_thingy.cpp -lusb-1.0 ''; # Optional: installation phase, if additional steps are needed #installPhase = '' # # Nothing extra needed here; the binary is already in $out/bin #''; }; }; devShells.x86_64-linux = { default = pkgs.mkShell { propagatedBuildInputs = with pkgs; [ bashInteractive cmake gcc gdb kdePackages.extra-cmake-modules kdePackages.kcoreaddons kdePackages.ki18n kdePackages.kiconthemes kdePackages.kirigami-addons.dev kdePackages.kirigami kdePackages.qqc2-desktop-style kdePackages.qtbase.dev kdePackages.qtdeclarative kdePackages.qttools.dev makeWrapper pkg-config qt6.wrapQtAppsHook qtcreator qt6.full qt6.qtbase libusb1 hidapi ninja ]; }; }; }; }