lez-explorer-ui/flake.nix
2026-06-16 18:26:41 +03:00

62 lines
1.8 KiB
Nix

{
description = "LEZ Explorer UI - A Qt block explorer for the Logos Execution Zone";
inputs = {
# Pinned to the EXACT nixpkgs revision basecamp resolves via logos-nix, so this
# in-process `type: ui` module links the identical qtbase (6.9.2) and does not
# load a second QtCore into basecamp's process (which aborts with "Must construct
# a QApplication before a QWidget"). Matching the version string is not enough —
# the store path must match, so this must be re-pinned whenever basecamp bumps its
# logos-nix/nixpkgs lock.
nixpkgs.url = "github:NixOS/nixpkgs/e9f00bd893984bc8ce46c895c3bf7cac95331127";
};
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 = import ./nix/default.nix { inherit pkgs; };
src = ./.;
lib = import ./nix/lib.nix { inherit pkgs common src; };
app = import ./nix/app.nix {
inherit pkgs common src;
lezExplorerUI = lib;
};
in
{
lez-explorer-ui-lib = lib;
app = app;
lib = lib;
default = lib;
}
);
devShells = forAllSystems ({ pkgs }: {
default = pkgs.mkShell {
nativeBuildInputs = [
pkgs.cmake
pkgs.ninja
pkgs.pkg-config
];
buildInputs = [
pkgs.qt6.qtbase
pkgs.qt6.qtsvg
pkgs.qt6.qtwebsockets
];
shellHook = ''
echo "LEZ Explorer UI development environment"
'';
};
});
};
}