{ description = "Logos C++ SDK"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs }: let systems = [ "aarch64-darwin" "x86_64-darwin" "aarch64-linux" "x86_64-linux" ]; forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f { pkgs = import nixpkgs { inherit system; }; }); in { packages = forAllSystems ({ pkgs }: let # Common configuration common = import ./nix/default.nix { inherit pkgs; }; src = ./.; # Individual package components bin = import ./nix/bin.nix { inherit pkgs common src; }; lib = import ./nix/lib.nix { inherit pkgs common src; }; include = import ./nix/include.nix { inherit pkgs common src; }; # Combined SDK package sdk = pkgs.symlinkJoin { name = "logos-cpp-sdk"; paths = [ bin lib include ]; }; in { # Individual outputs logos-cpp-bin = bin; logos-cpp-lib = lib; logos-cpp-include = include; # Combined outputs (for backward compatibility) logos-cpp-sdk = sdk; cpp-generator = bin; # Alias for backward compatibility # Default package default = sdk; } ); devShells = forAllSystems ({ pkgs }: { default = pkgs.mkShell { nativeBuildInputs = [ pkgs.cmake pkgs.ninja pkgs.pkg-config ]; buildInputs = [ pkgs.qt6.qtbase pkgs.qt6.qtremoteobjects ]; }; }); }; }