Files
iDescriptor/flake.nix
2026-01-05 15:01:17 +04:00

96 lines
2.5 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }:
let
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ];
in
{
packages = forAllSystems (system: {
default = nixpkgs.legacyPackages.${system}.callPackage ./nix/package.nix { };
});
apps = forAllSystems (system: {
default = {
type = "app";
program = "${self.packages.${system}.default}/bin/idescriptor";
};
});
devShells = forAllSystems (system:
let pkgs = nixpkgs.legacyPackages.${system};
in {
default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [
cmake
pkg-config
go
qt6.wrapQtAppsHook
copyDesktopItems
];
buildInputs = with pkgs; [
qt6.qtbase
qt6.qtdeclarative
qt6.qtmultimedia
qt6.qtserialport
qt6.qtpositioning
qt6.qtlocation
lxqt.qtermwidget
qrencode
libheif
libde265
x265
libirecovery
libssh
ffmpeg
pugixml
avahi
avahi-compat
libimobiledevice
libirecovery
libplist
usbmuxd
libzip
openssl
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
"-DPACKAGE_MANAGER_MANAGED=ON"
"-DPACKAGE_MANAGER_HINT=nix"
];
};
});
nixosModules.default = { config, lib, pkgs, ... }:
let
cfg = config.programs.idescriptor;
idescriptorPkg = self.packages.${pkgs.system}.default;
in
{
imports = [ ./nix/nixos-module.nix ];
config = lib.mkIf cfg.enable {
programs.idescriptor.package = lib.mkDefault idescriptorPkg;
};
};
homeManagerModules.default = { config, lib, pkgs, ... }:
let
cfg = config.programs.idescriptor;
idescriptorPkg = self.packages.${pkgs.system}.default;
in
{
imports = [ ./nix/hm-module.nix ];
config = lib.mkIf cfg.enable {
programs.idescriptor.package = lib.mkDefault idescriptorPkg;
};
};
};
}