mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-07-03 05:29:50 +00:00
82 lines
2.8 KiB
Nix
82 lines
2.8 KiB
Nix
{
|
|
description = "Logos AMM QML UI — trade and provide liquidity on the LEZ AMM";
|
|
|
|
inputs = {
|
|
logos-module-builder.url = "github:logos-co/logos-module-builder";
|
|
nixpkgs.follows = "logos-module-builder/nixpkgs";
|
|
logos-standalone-app.follows = "logos-module-builder/logos-standalone-app";
|
|
|
|
# Core wallet module (the LEZ wallet FFI Qt plugin). The input name must
|
|
# match the metadata.json `dependencies` entry so the builder can resolve
|
|
# it as a module dependency. This rev pins LEZ (lssa) at d2e9400, which
|
|
# includes the macOS Metal-build fix, so no `--override-input` is needed.
|
|
logos_execution_zone.url = "github:logos-blockchain/logos-execution-zone-module?rev=d2e9400ac06c3cdbfc2405b4f153fff9841a453c";
|
|
};
|
|
|
|
outputs = inputs@{ logos-module-builder, logos-standalone-app, nixpkgs, ... }:
|
|
let
|
|
systems = [ "aarch64-darwin" "x86_64-darwin" "aarch64-linux" "x86_64-linux" ];
|
|
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f (import nixpkgs { inherit system; }));
|
|
|
|
fixedStandalonePackages = forAllSystems (pkgs:
|
|
let
|
|
base = logos-standalone-app.packages.${pkgs.system};
|
|
qtLibPath = pkgs.lib.makeLibraryPath ([
|
|
pkgs.qt6.qtbase
|
|
pkgs.qt6.qtremoteobjects
|
|
pkgs.qt6.qtdeclarative
|
|
pkgs.qt6.qtwebview
|
|
pkgs.zstd
|
|
pkgs.krb5
|
|
pkgs.zlib
|
|
pkgs.glib
|
|
pkgs.stdenv.cc.cc
|
|
pkgs.freetype
|
|
pkgs.fontconfig
|
|
pkgs.boost
|
|
pkgs.openssl
|
|
] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [
|
|
pkgs.libglvnd
|
|
pkgs.mesa
|
|
pkgs.xorg.libX11
|
|
pkgs.xorg.libXext
|
|
pkgs.xorg.libXrender
|
|
pkgs.xorg.libXrandr
|
|
pkgs.xorg.libXcursor
|
|
pkgs.xorg.libXi
|
|
pkgs.xorg.libXfixes
|
|
pkgs.xorg.libxcb
|
|
]);
|
|
fixedApp = base.default.overrideAttrs (old: {
|
|
inherit qtLibPath;
|
|
qtWrapperArgs = (old.qtWrapperArgs or [ ]) ++ [
|
|
"--prefix" "LD_LIBRARY_PATH" ":" qtLibPath
|
|
"--prefix" "QT_PLUGIN_PATH" ":" old.qtPluginPath
|
|
"--prefix" "QML_IMPORT_PATH" ":" old.qmlImportPath
|
|
"--prefix" "QML2_IMPORT_PATH" ":" old.qmlImportPath
|
|
];
|
|
});
|
|
in base // {
|
|
app = fixedApp;
|
|
default = fixedApp;
|
|
});
|
|
|
|
fixedStandalone = logos-standalone-app // {
|
|
packages = fixedStandalonePackages;
|
|
};
|
|
in
|
|
logos-module-builder.lib.mkLogosQmlModule {
|
|
src = ./.;
|
|
configFile = ./metadata.json;
|
|
flakeInputs = inputs;
|
|
logosStandalone = fixedStandalone;
|
|
preConfigure = ''
|
|
export AMM_UI_PROGRAM_DIR=${inputs.logos_execution_zone.inputs."logos-execution-zone"}/artifacts/program_methods
|
|
'';
|
|
postInstall = ''
|
|
mkdir -p "$out/lib/config"
|
|
cp -r ${./config}/. "$out/lib/config/"
|
|
'';
|
|
};
|
|
}
|