Files

45 lines
1.7 KiB
Nix
Raw Permalink Normal View History

2026-03-19 19:42:15 +01:00
{
description = "Calculator C++ UI plugin for Logos - widget frontend for calc_module";
inputs = {
logos-module-builder.url = "github:logos-co/logos-module-builder";
2026-03-20 20:07:17 +01:00
logos-nix.url = "github:logos-co/logos-nix";
nixpkgs.follows = "logos-nix/nixpkgs";
2026-03-19 19:42:15 +01:00
logos-standalone-app.url = "github:logos-co/logos-standalone-app";
logos-standalone-app.inputs.logos-liblogos.inputs.nixpkgs.follows =
2026-03-20 20:07:17 +01:00
"logos-nix/nixpkgs";
2026-03-19 19:42:15 +01:00
calc_module.url = "github:logos-co/logos-tutorial?dir=logos-calc-module";
};
2026-03-20 20:07:17 +01:00
outputs = { self, logos-module-builder, logos-standalone-app, nixpkgs, calc_module, ... }:
2026-03-19 19:42:15 +01:00
let
systems = [ "aarch64-darwin" "x86_64-darwin" "aarch64-linux" "x86_64-linux" ];
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system);
moduleOutputs = logos-module-builder.lib.mkLogosModule {
src = ./.;
configFile = ./module.yaml;
moduleInputs = { inherit calc_module; };
};
in
moduleOutputs // {
apps = forAllSystems (system:
let
pkgs = import nixpkgs { inherit system; };
standalone = logos-standalone-app.packages.${system}.default;
plugin = moduleOutputs.packages.${system}.default;
pluginDir = pkgs.runCommand "calc-ui-cpp-plugin-dir" {} ''
mkdir -p $out/icons
cp ${plugin}/lib/*_plugin.* $out/
cp ${./metadata.json} $out/metadata.json
cp ${./icons/calc.png} $out/icons/calc.png
'';
run = pkgs.writeShellScript "run-calc-ui-cpp-standalone" ''
exec ${standalone}/bin/logos-standalone-app "${pluginDir}" "$@"
'';
in { default = { type = "app"; program = "${run}"; }; }
);
};
}