From 22410a8a7b58026607c37b0f64af96da41c074b0 Mon Sep 17 00:00:00 2001 From: Khushboo Mehta Date: Thu, 26 Mar 2026 11:48:27 +0100 Subject: [PATCH] fix: improvements 1. Adapt to changed made in standalone app to use capability module directy so it doesnt have to be loaded manually 2. adapt to using nix deriuvation for lgx packages directly from modules --- logos-calc-cpp-ui/CMakeLists.txt | 2 + logos-calc-cpp-ui/flake.lock | 1012 ++++++++++++----- logos-calc-cpp-ui/flake.nix | 1 + logos-calc-cpp-ui/interfaces/IComponent.h | 17 + logos-calc-cpp-ui/metadata.json | 2 +- logos-calc-cpp-ui/src/calc_ui_cpp_interface.h | 17 + logos-calc-cpp-ui/src/calc_ui_cpp_plugin.h | 9 +- logos-calc-module/flake.lock | 184 ++- logos-calc-module/flake.nix | 1 + logos-calc-ui/flake.lock | 1012 ++++++++++++----- logos-calc-ui/flake.nix | 1 + logos-developer-guide.md | 77 +- tutorial-cpp-ui-app.md | 26 +- tutorial-qml-ui-app.md | 28 +- tutorial-wrapping-c-library.md | 24 +- 15 files changed, 1740 insertions(+), 673 deletions(-) create mode 100644 logos-calc-cpp-ui/interfaces/IComponent.h create mode 100644 logos-calc-cpp-ui/src/calc_ui_cpp_interface.h diff --git a/logos-calc-cpp-ui/CMakeLists.txt b/logos-calc-cpp-ui/CMakeLists.txt index 6f06a40..a602b01 100644 --- a/logos-calc-cpp-ui/CMakeLists.txt +++ b/logos-calc-cpp-ui/CMakeLists.txt @@ -15,6 +15,8 @@ logos_module( src/calc_ui_cpp_plugin.cpp src/calc_backend.h src/calc_backend.cpp + INCLUDE_DIRS + ${CMAKE_CURRENT_SOURCE_DIR}/interfaces ) find_package(Qt6 REQUIRED COMPONENTS Widgets Quick QuickWidgets) diff --git a/logos-calc-cpp-ui/flake.lock b/logos-calc-cpp-ui/flake.lock index 79f7b79..b0744c9 100644 --- a/logos-calc-cpp-ui/flake.lock +++ b/logos-calc-cpp-ui/flake.lock @@ -22,22 +22,24 @@ }, "logos-capability-module": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_5", - "logos-liblogos": "logos-liblogos_2", + "logos-cpp-sdk": [ + "logos-standalone-app", + "logos-cpp-sdk" + ], + "logos-module": "logos-module_3", + "logos-nix": "logos-nix_8", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773757961, - "narHash": "sha256-EOSmES7qytHrMlomRoTKBqSdSrJXUv3091OcstF8vL0=", + "lastModified": 1774455138, + "narHash": "sha256-szx2dnnY9MP1NpdBnR8E2DRSz9CtQlo/6698zgJcAEM=", "owner": "logos-co", "repo": "logos-capability-module", - "rev": "e49b879eb8f05d361e6876f357f1c793edc21bb6", + "rev": "0655be68e0078bede0682bb6a5b53330dac37a72", "type": "github" }, "original": { @@ -48,24 +50,23 @@ }, "logos-capability-module_2": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_6", - "logos-liblogos": "logos-liblogos_3", + "logos-cpp-sdk": "logos-cpp-sdk_4", + "logos-module": "logos-module_4", + "logos-nix": "logos-nix_13", "nixpkgs": [ "logos-standalone-app", "logos-liblogos", "logos-capability-module", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773696504, - "narHash": "sha256-wBn8onAkEvtvl1McLVyFDSB8BRhUrwJAnnYIfXnIhdI=", + "lastModified": 1773963493, + "narHash": "sha256-C114twpGz7XEVXTC1KrfXQ9M0PObziRhwv4dzZe7itw=", "owner": "logos-co", "repo": "logos-capability-module", - "rev": "2ee07fea9d0b9aca89dc215ee8b3be222017d706", + "rev": "ced051d101df328ce8694bbe525992b6678ad8b1", "type": "github" }, "original": { @@ -99,42 +100,6 @@ "type": "github" } }, - "logos-cpp-sdk_10": { - "inputs": { - "nixpkgs": "nixpkgs_16" - }, - "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_11": { - "inputs": { - "nixpkgs": "nixpkgs_17" - }, - "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, "logos-cpp-sdk_2": { "inputs": { "logos-nix": "logos-nix_4", @@ -161,14 +126,20 @@ }, "logos-cpp-sdk_3": { "inputs": { - "nixpkgs": "nixpkgs_7" + "logos-nix": "logos-nix_9", + "nixpkgs": [ + "logos-standalone-app", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1774465221, + "narHash": "sha256-/DVmdsz1tupp5tgV7Nk2FoN0HsBZTh9K2aKDRLbNZn0=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", + "rev": "02baa918a8021de9652be52aff9068de679d1d3e", "type": "github" }, "original": { @@ -179,14 +150,22 @@ }, "logos-cpp-sdk_4": { "inputs": { - "nixpkgs": "nixpkgs_8" + "logos-nix": "logos-nix_11", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "logos-capability-module", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1773956385, + "narHash": "sha256-CV0Lo1FrosBt/MSP+GWQGWXnYobxRGXGOREylNuwZ58=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", + "rev": "4b66dac015e4b977d33cfae80a4c8e1d518679f3", "type": "github" }, "original": { @@ -197,14 +176,21 @@ }, "logos-cpp-sdk_5": { "inputs": { - "nixpkgs": "nixpkgs_9" + "logos-nix": "logos-nix_14", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1774465221, + "narHash": "sha256-/DVmdsz1tupp5tgV7Nk2FoN0HsBZTh9K2aKDRLbNZn0=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", + "rev": "02baa918a8021de9652be52aff9068de679d1d3e", "type": "github" }, "original": { @@ -215,68 +201,22 @@ }, "logos-cpp-sdk_6": { "inputs": { - "nixpkgs": "nixpkgs_10" + "logos-nix": "logos-nix_17", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "process-stats", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1774361657, + "narHash": "sha256-ojC5oLlzb7rrhArUaZzfChLxPwrPm1iAF+6lkH2kDCY=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_7": { - "inputs": { - "nixpkgs": "nixpkgs_11" - }, - "locked": { - "lastModified": 1761230734, - "narHash": "sha256-CMRUwXH7pJZ1OI6bd/TDDDXKqQ1tQZHQEOOwK8TgYHI=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "4b143922c190df00bb3835441c9f0075cb28283b", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_8": { - "inputs": { - "nixpkgs": "nixpkgs_12" - }, - "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_9": { - "inputs": { - "nixpkgs": "nixpkgs_13" - }, - "locked": { - "lastModified": 1767724329, - "narHash": "sha256-UPkqxqxbKwU5Dmu00TnjiJVXUmfVylF3p1qziEuYwIE=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "32f1d7080d784ff044d91d076ef2f0c7305d4784", + "rev": "39b0a9acce3dac6d8c4c2f30bd35571a17c42c37", "type": "github" }, "original": { @@ -287,20 +227,20 @@ }, "logos-design-system": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_4", + "logos-nix": "logos-nix_10", "nixpkgs": [ "logos-standalone-app", "logos-design-system", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773760216, - "narHash": "sha256-Q9g/lDd0eUofKEiCDr69vPZQs5ttTxorBW9lgFB8Hos=", + "lastModified": 1774455271, + "narHash": "sha256-fXPDvB4VoS9k0oiW3CjN1w2cw9noqcloftXKMc8E0ng=", "owner": "logos-co", "repo": "logos-design-system", - "rev": "09b7507e53a8f7b70d044b80823369a93dd9887a", + "rev": "75201e56002327864544b729ad0077bca7e5b03d", "type": "github" }, "original": { @@ -310,82 +250,24 @@ } }, "logos-liblogos": { - "inputs": { - "logos-capability-module": "logos-capability-module", - "logos-cpp-sdk": "logos-cpp-sdk_10", - "logos-module": "logos-module_4", - "nix-bundle-appimage": "nix-bundle-appimage_2", - "nix-bundle-dir": "nix-bundle-dir_4", - "nixpkgs": [ - "logos-standalone-app", - "logos-cpp-sdk", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773931072, - "narHash": "sha256-u9gzBkfHywYqqjgxMDGfPTBiXru6se7XZOQQVExRXvw=", - "owner": "logos-co", - "repo": "logos-liblogos", - "rev": "e318b6a4941074dd022f98d8df55700e0508337d", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-liblogos", - "type": "github" - } - }, - "logos-liblogos_2": { "inputs": { "logos-capability-module": "logos-capability-module_2", - "logos-cpp-sdk": "logos-cpp-sdk_8", - "logos-module": "logos-module_3", - "nix-bundle-appimage": "nix-bundle-appimage", - "nix-bundle-dir": "nix-bundle-dir_2", + "logos-cpp-sdk": "logos-cpp-sdk_5", + "logos-module": "logos-module_5", + "logos-nix": "logos-nix_16", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" - ] + ], + "process-stats": "process-stats" }, "locked": { - "lastModified": 1773696645, - "narHash": "sha256-GIb4xALCj3XK80rf6l89ZrZ/Y1YkqG1X/mfmVOUl/hw=", + "lastModified": 1774487399, + "narHash": "sha256-cn4V9l/7+AAp897Osll3SrOY5znDqdSvOPZzLpTc8nQ=", "owner": "logos-co", "repo": "logos-liblogos", - "rev": "5030aaaf86b89a382f3beb9426be4f8c2623215f", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-liblogos", - "type": "github" - } - }, - "logos-liblogos_3": { - "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_7", - "nixpkgs": [ - "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "logos-cpp-sdk", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1761845775, - "narHash": "sha256-ulK8xq05ejK6qIgZ7WtWb/MJt2rk5BKfDA2z7mM3wq8=", - "owner": "logos-co", - "repo": "logos-liblogos", - "rev": "a92c2c1268bc70764c8f73c7bce07d21024f5af9", + "rev": "28700caf108bec5066a95fcb1afd5693ed816999", "type": "github" }, "original": { @@ -457,11 +339,11 @@ ] }, "locked": { - "lastModified": 1774468631, - "narHash": "sha256-pwv7KVUbGMidRQ2Omt7mTORJDtaAxynD9bvC5zRpJaQ=", + "lastModified": 1774521784, + "narHash": "sha256-/rmNYffGTK+FTwJUr8dz7vsJz0Tq/sZH3mQ5yt1LCZA=", "owner": "logos-co", "repo": "logos-module-builder", - "rev": "1b8929cd8b57abe4a7e5450d7ac4877942b49b50", + "rev": "c55dfaaade0f1d0d971946f7d24733134c56d5a4", "type": "github" }, "original": { @@ -496,23 +378,21 @@ }, "logos-module_3": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_9", + "logos-nix": "logos-nix_7", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", "logos-capability-module", - "logos-liblogos", "logos-module", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1770999556, - "narHash": "sha256-anpsEniGTTwUAwknRxjaT9GP4avHzIsolEHdHDTV9rM=", + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", "owner": "logos-co", "repo": "logos-module", - "rev": "d1b35f335f938bb5de21a2a6010f1104075bdb1c", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", "type": "github" }, "original": { @@ -523,21 +403,47 @@ }, "logos-module_4": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_11", + "logos-nix": "logos-nix_12", "nixpkgs": [ "logos-standalone-app", "logos-liblogos", + "logos-capability-module", "logos-module", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773758094, - "narHash": "sha256-bMhSAPE1AmYZRS0rkMJ02uycmUM75D7dCYJ49l/LPHQ=", + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", "owner": "logos-co", "repo": "logos-module", - "rev": "c836e03ac532231c4e48f44e890c61ae294c1edf", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module", + "type": "github" + } + }, + "logos-module_5": { + "inputs": { + "logos-nix": "logos-nix_15", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "logos-module", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", + "owner": "logos-co", + "repo": "logos-module", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", "type": "github" }, "original": { @@ -564,6 +470,186 @@ "type": "github" } }, + "logos-nix_10": { + "inputs": { + "nixpkgs": "nixpkgs_10" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_11": { + "inputs": { + "nixpkgs": "nixpkgs_11" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_12": { + "inputs": { + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_13": { + "inputs": { + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_14": { + "inputs": { + "nixpkgs": "nixpkgs_14" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_15": { + "inputs": { + "nixpkgs": "nixpkgs_15" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_16": { + "inputs": { + "nixpkgs": "nixpkgs_16" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_17": { + "inputs": { + "nixpkgs": "nixpkgs_17" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_18": { + "inputs": { + "nixpkgs": "nixpkgs_18" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_19": { + "inputs": { + "nixpkgs": "nixpkgs_19" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_2": { "inputs": { "nixpkgs": "nixpkgs_2" @@ -582,6 +668,114 @@ "type": "github" } }, + "logos-nix_20": { + "inputs": { + "nixpkgs": "nixpkgs_20" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_21": { + "inputs": { + "nixpkgs": "nixpkgs_21" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_22": { + "inputs": { + "nixpkgs": "nixpkgs_22" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_23": { + "inputs": { + "nixpkgs": "nixpkgs_23" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_24": { + "inputs": { + "nixpkgs": "nixpkgs_24" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_25": { + "inputs": { + "nixpkgs": "nixpkgs_25" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_3": { "inputs": { "nixpkgs": "nixpkgs_3" @@ -654,23 +848,129 @@ "type": "github" } }, - "logos-standalone-app": { + "logos-nix_7": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_3", - "logos-design-system": "logos-design-system", - "logos-liblogos": "logos-liblogos", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_8": { + "inputs": { + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_9": { + "inputs": { + "nixpkgs": "nixpkgs_9" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-package": { + "inputs": { + "logos-nix": "logos-nix_21", "nixpkgs": [ "logos-standalone-app", - "logos-cpp-sdk", + "nix-bundle-lgx", + "logos-package", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1774455360, - "narHash": "sha256-hf10epVwnxOALnx2lRlfl4d9xW9BN/5GKxMIyRkhi6g=", + "lastModified": 1773965173, + "narHash": "sha256-toDnGXUthRcQm7vcEYzb2bLI7FE1tbfzH8Ie2Cnb9mk=", + "owner": "logos-co", + "repo": "logos-package", + "rev": "9e3730d5c0e3ec955761c05b50e3a6047ee4030b", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-package", + "type": "github" + } + }, + "logos-package_2": { + "inputs": { + "logos-nix": "logos-nix_24", + "nixpkgs": [ + "nix-bundle-lgx", + "logos-package", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773965173, + "narHash": "sha256-toDnGXUthRcQm7vcEYzb2bLI7FE1tbfzH8Ie2Cnb9mk=", + "owner": "logos-co", + "repo": "logos-package", + "rev": "9e3730d5c0e3ec955761c05b50e3a6047ee4030b", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-package", + "type": "github" + } + }, + "logos-standalone-app": { + "inputs": { + "logos-capability-module": "logos-capability-module", + "logos-cpp-sdk": "logos-cpp-sdk_3", + "logos-design-system": "logos-design-system", + "logos-liblogos": "logos-liblogos", + "logos-nix": "logos-nix_19", + "nix-bundle-lgx": "nix-bundle-lgx", + "nixpkgs": [ + "logos-standalone-app", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774521658, + "narHash": "sha256-dKBzj/0v9v0BwVXgGw3xektPv3GW3rHW6nHyBz7jBTQ=", "owner": "logos-co", "repo": "logos-standalone-app", - "rev": "bcf255b7df3a1cbb7be1e2daf0a694f0270dc1b2", + "rev": "2758c3f59e4f702f42f281dd439e97391446b46e", "type": "github" }, "original": { @@ -679,61 +979,23 @@ "type": "github" } }, - "nix-bundle-appimage": { - "inputs": { - "nix-bundle-dir": "nix-bundle-dir", - "nixpkgs": "nixpkgs_14" - }, - "locked": { - "lastModified": 1772047346, - "narHash": "sha256-RUsTUxKCxuQ3+D2LfBbK0EX1vF7HNMkpWgOGFfZbrEg=", - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "rev": "4d68437c97ac59c3c70c1b2b116235c434d571a8", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "type": "github" - } - }, - "nix-bundle-appimage_2": { - "inputs": { - "nix-bundle-dir": "nix-bundle-dir_3", - "nixpkgs": "nixpkgs_18" - }, - "locked": { - "lastModified": 1772881966, - "narHash": "sha256-St49mpGrHh5UW1JAxHeqY49DvmubdVrG+H88tKG6jRg=", - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "rev": "5952460727bbfdb83446f24dc974460039a8a325", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "type": "github" - } - }, "nix-bundle-dir": { "inputs": { + "logos-nix": "logos-nix_22", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "nix-bundle-appimage", + "nix-bundle-lgx", + "nix-bundle-dir", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", + "lastModified": 1773961179, + "narHash": "sha256-bpaTvz//R8WFP5xnnDLv3a9l7unDmBwJjCewx3wCjzM=", "owner": "logos-co", "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", + "rev": "cd214dbf15487d80967389847ae2210468be6ebf", "type": "github" }, "original": { @@ -744,37 +1006,20 @@ }, "nix-bundle-dir_2": { "inputs": { - "nixpkgs": "nixpkgs_15" - }, - "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", - "owner": "logos-co", - "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "nix-bundle-dir", - "type": "github" - } - }, - "nix-bundle-dir_3": { - "inputs": { + "logos-nix": "logos-nix_25", "nixpkgs": [ - "logos-standalone-app", - "logos-liblogos", - "nix-bundle-appimage", + "nix-bundle-lgx", + "nix-bundle-dir", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", + "lastModified": 1773961179, + "narHash": "sha256-bpaTvz//R8WFP5xnnDLv3a9l7unDmBwJjCewx3wCjzM=", "owner": "logos-co", "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", + "rev": "cd214dbf15487d80967389847ae2210468be6ebf", "type": "github" }, "original": { @@ -783,21 +1028,53 @@ "type": "github" } }, - "nix-bundle-dir_4": { + "nix-bundle-lgx": { "inputs": { - "nixpkgs": "nixpkgs_19" + "logos-nix": "logos-nix_20", + "logos-package": "logos-package", + "nix-bundle-dir": "nix-bundle-dir", + "nixpkgs": [ + "logos-standalone-app", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", + "lastModified": 1774455541, + "narHash": "sha256-ku5gG6qKIZeWzJ/jNOxfsx1rwJ3kPrCw8/wnBKq1Uyw=", "owner": "logos-co", - "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", + "repo": "nix-bundle-lgx", + "rev": "9d6f9016c865b9d2793672bc3c45a50b59753c78", "type": "github" }, "original": { "owner": "logos-co", - "repo": "nix-bundle-dir", + "repo": "nix-bundle-lgx", + "type": "github" + } + }, + "nix-bundle-lgx_2": { + "inputs": { + "logos-nix": "logos-nix_23", + "logos-package": "logos-package_2", + "nix-bundle-dir": "nix-bundle-dir_2", + "nixpkgs": [ + "nix-bundle-lgx", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774455541, + "narHash": "sha256-ku5gG6qKIZeWzJ/jNOxfsx1rwJ3kPrCw8/wnBKq1Uyw=", + "owner": "logos-co", + "repo": "nix-bundle-lgx", + "rev": "9d6f9016c865b9d2793672bc3c45a50b59753c78", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "nix-bundle-lgx", "type": "github" } }, @@ -883,11 +1160,11 @@ }, "nixpkgs_14": { "locked": { - "lastModified": 1771848320, - "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -899,11 +1176,11 @@ }, "nixpkgs_15": { "locked": { - "lastModified": 1770562336, - "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -947,11 +1224,11 @@ }, "nixpkgs_18": { "locked": { - "lastModified": 1771848320, - "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -963,11 +1240,11 @@ }, "nixpkgs_19": { "locked": { - "lastModified": 1770562336, - "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -993,6 +1270,102 @@ "type": "github" } }, + "nixpkgs_20": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_21": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_22": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_23": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_24": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_25": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_3": { "locked": { "lastModified": 1759036355, @@ -1105,11 +1478,38 @@ "type": "github" } }, + "process-stats": { + "inputs": { + "logos-cpp-sdk": "logos-cpp-sdk_6", + "logos-nix": "logos-nix_18", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "process-stats", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774384731, + "narHash": "sha256-CUSTLW/FZnl3/HjicNTxa0skwWjmLxNzf6tRVOcFkFI=", + "owner": "logos-co", + "repo": "process-stats", + "rev": "1178322d9ea34f3d4b34b75cdad6e05dc1eb9603", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "process-stats", + "type": "github" + } + }, "root": { "inputs": { "calc_module": "calc_module", "logos-module-builder": "logos-module-builder_2", - "logos-standalone-app": "logos-standalone-app" + "logos-standalone-app": "logos-standalone-app", + "nix-bundle-lgx": "nix-bundle-lgx_2" } } }, diff --git a/logos-calc-cpp-ui/flake.nix b/logos-calc-cpp-ui/flake.nix index 3d399d0..5f5730a 100644 --- a/logos-calc-cpp-ui/flake.nix +++ b/logos-calc-cpp-ui/flake.nix @@ -4,6 +4,7 @@ inputs = { logos-module-builder.url = "github:logos-co/logos-module-builder"; logos-standalone-app.url = "github:logos-co/logos-standalone-app"; + nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx"; calc_module.url = "github:logos-co/logos-tutorial?dir=logos-calc-module"; }; diff --git a/logos-calc-cpp-ui/interfaces/IComponent.h b/logos-calc-cpp-ui/interfaces/IComponent.h new file mode 100644 index 0000000..06ad57a --- /dev/null +++ b/logos-calc-cpp-ui/interfaces/IComponent.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include +#include + +class LogosAPI; + +class IComponent { +public: + virtual ~IComponent() = default; + virtual QWidget* createWidget(LogosAPI* logosAPI = nullptr) = 0; + virtual void destroyWidget(QWidget* widget) = 0; +}; + +#define IComponent_iid "com.logos.component.IComponent" +Q_DECLARE_INTERFACE(IComponent, IComponent_iid) diff --git a/logos-calc-cpp-ui/metadata.json b/logos-calc-cpp-ui/metadata.json index 75abdf8..ad7c8d9 100644 --- a/logos-calc-cpp-ui/metadata.json +++ b/logos-calc-cpp-ui/metadata.json @@ -17,7 +17,7 @@ "cmake": { "find_packages": [], "extra_sources": [], - "extra_include_dirs": [], + "extra_include_dirs": ["interfaces"], "extra_link_libraries": [] } } diff --git a/logos-calc-cpp-ui/src/calc_ui_cpp_interface.h b/logos-calc-cpp-ui/src/calc_ui_cpp_interface.h new file mode 100644 index 0000000..fba3f13 --- /dev/null +++ b/logos-calc-cpp-ui/src/calc_ui_cpp_interface.h @@ -0,0 +1,17 @@ +#ifndef CALC_UI_CPP_INTERFACE_H +#define CALC_UI_CPP_INTERFACE_H + +#include +#include +#include "interface.h" + +class CalcUiCppInterface : public PluginInterface +{ +public: + virtual ~CalcUiCppInterface() = default; +}; + +#define CalcUiCppInterface_iid "org.logos.CalcUiCppInterface" +Q_DECLARE_INTERFACE(CalcUiCppInterface, CalcUiCppInterface_iid) + +#endif // CALC_UI_CPP_INTERFACE_H diff --git a/logos-calc-cpp-ui/src/calc_ui_cpp_plugin.h b/logos-calc-cpp-ui/src/calc_ui_cpp_plugin.h index 5cdb9eb..696af89 100644 --- a/logos-calc-cpp-ui/src/calc_ui_cpp_plugin.h +++ b/logos-calc-cpp-ui/src/calc_ui_cpp_plugin.h @@ -4,15 +4,14 @@ #include #include #include +#include #include "calc_ui_cpp_interface.h" -class LogosAPI; - -class CalcUiCppPlugin : public QObject, public CalcUiCppInterface +class CalcUiCppPlugin : public QObject, public CalcUiCppInterface, public IComponent { Q_OBJECT - Q_PLUGIN_METADATA(IID CalcUiCppInterface_iid FILE "metadata.json") - Q_INTERFACES(CalcUiCppInterface PluginInterface) + Q_PLUGIN_METADATA(IID IComponent_iid FILE "metadata.json") + Q_INTERFACES(CalcUiCppInterface PluginInterface IComponent) public: explicit CalcUiCppPlugin(QObject* parent = nullptr); diff --git a/logos-calc-module/flake.lock b/logos-calc-module/flake.lock index 9870883..74e0010 100644 --- a/logos-calc-module/flake.lock +++ b/logos-calc-module/flake.lock @@ -60,11 +60,11 @@ ] }, "locked": { - "lastModified": 1774468631, - "narHash": "sha256-pwv7KVUbGMidRQ2Omt7mTORJDtaAxynD9bvC5zRpJaQ=", + "lastModified": 1774521784, + "narHash": "sha256-/rmNYffGTK+FTwJUr8dz7vsJz0Tq/sZH3mQ5yt1LCZA=", "owner": "logos-co", "repo": "logos-module-builder", - "rev": "1b8929cd8b57abe4a7e5450d7ac4877942b49b50", + "rev": "c55dfaaade0f1d0d971946f7d24733134c56d5a4", "type": "github" }, "original": { @@ -127,6 +127,133 @@ "type": "github" } }, + "logos-nix_4": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_5": { + "inputs": { + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_6": { + "inputs": { + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-package": { + "inputs": { + "logos-nix": "logos-nix_5", + "nixpkgs": [ + "nix-bundle-lgx", + "logos-package", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773965173, + "narHash": "sha256-toDnGXUthRcQm7vcEYzb2bLI7FE1tbfzH8Ie2Cnb9mk=", + "owner": "logos-co", + "repo": "logos-package", + "rev": "9e3730d5c0e3ec955761c05b50e3a6047ee4030b", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-package", + "type": "github" + } + }, + "nix-bundle-dir": { + "inputs": { + "logos-nix": "logos-nix_6", + "nixpkgs": [ + "nix-bundle-lgx", + "nix-bundle-dir", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773961179, + "narHash": "sha256-bpaTvz//R8WFP5xnnDLv3a9l7unDmBwJjCewx3wCjzM=", + "owner": "logos-co", + "repo": "nix-bundle-dir", + "rev": "cd214dbf15487d80967389847ae2210468be6ebf", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "nix-bundle-dir", + "type": "github" + } + }, + "nix-bundle-lgx": { + "inputs": { + "logos-nix": "logos-nix_4", + "logos-package": "logos-package", + "nix-bundle-dir": "nix-bundle-dir", + "nixpkgs": [ + "nix-bundle-lgx", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774455541, + "narHash": "sha256-ku5gG6qKIZeWzJ/jNOxfsx1rwJ3kPrCw8/wnBKq1Uyw=", + "owner": "logos-co", + "repo": "nix-bundle-lgx", + "rev": "9d6f9016c865b9d2793672bc3c45a50b59753c78", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "nix-bundle-lgx", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1759036355, @@ -175,9 +302,58 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { - "logos-module-builder": "logos-module-builder" + "logos-module-builder": "logos-module-builder", + "nix-bundle-lgx": "nix-bundle-lgx" } } }, diff --git a/logos-calc-module/flake.nix b/logos-calc-module/flake.nix index 0451b40..5a9c781 100644 --- a/logos-calc-module/flake.nix +++ b/logos-calc-module/flake.nix @@ -3,6 +3,7 @@ inputs = { logos-module-builder.url = "github:logos-co/logos-module-builder"; + nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx"; }; outputs = inputs@{ logos-module-builder, ... }: diff --git a/logos-calc-ui/flake.lock b/logos-calc-ui/flake.lock index 79f7b79..b0744c9 100644 --- a/logos-calc-ui/flake.lock +++ b/logos-calc-ui/flake.lock @@ -22,22 +22,24 @@ }, "logos-capability-module": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_5", - "logos-liblogos": "logos-liblogos_2", + "logos-cpp-sdk": [ + "logos-standalone-app", + "logos-cpp-sdk" + ], + "logos-module": "logos-module_3", + "logos-nix": "logos-nix_8", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773757961, - "narHash": "sha256-EOSmES7qytHrMlomRoTKBqSdSrJXUv3091OcstF8vL0=", + "lastModified": 1774455138, + "narHash": "sha256-szx2dnnY9MP1NpdBnR8E2DRSz9CtQlo/6698zgJcAEM=", "owner": "logos-co", "repo": "logos-capability-module", - "rev": "e49b879eb8f05d361e6876f357f1c793edc21bb6", + "rev": "0655be68e0078bede0682bb6a5b53330dac37a72", "type": "github" }, "original": { @@ -48,24 +50,23 @@ }, "logos-capability-module_2": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_6", - "logos-liblogos": "logos-liblogos_3", + "logos-cpp-sdk": "logos-cpp-sdk_4", + "logos-module": "logos-module_4", + "logos-nix": "logos-nix_13", "nixpkgs": [ "logos-standalone-app", "logos-liblogos", "logos-capability-module", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773696504, - "narHash": "sha256-wBn8onAkEvtvl1McLVyFDSB8BRhUrwJAnnYIfXnIhdI=", + "lastModified": 1773963493, + "narHash": "sha256-C114twpGz7XEVXTC1KrfXQ9M0PObziRhwv4dzZe7itw=", "owner": "logos-co", "repo": "logos-capability-module", - "rev": "2ee07fea9d0b9aca89dc215ee8b3be222017d706", + "rev": "ced051d101df328ce8694bbe525992b6678ad8b1", "type": "github" }, "original": { @@ -99,42 +100,6 @@ "type": "github" } }, - "logos-cpp-sdk_10": { - "inputs": { - "nixpkgs": "nixpkgs_16" - }, - "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_11": { - "inputs": { - "nixpkgs": "nixpkgs_17" - }, - "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, "logos-cpp-sdk_2": { "inputs": { "logos-nix": "logos-nix_4", @@ -161,14 +126,20 @@ }, "logos-cpp-sdk_3": { "inputs": { - "nixpkgs": "nixpkgs_7" + "logos-nix": "logos-nix_9", + "nixpkgs": [ + "logos-standalone-app", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1774465221, + "narHash": "sha256-/DVmdsz1tupp5tgV7Nk2FoN0HsBZTh9K2aKDRLbNZn0=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", + "rev": "02baa918a8021de9652be52aff9068de679d1d3e", "type": "github" }, "original": { @@ -179,14 +150,22 @@ }, "logos-cpp-sdk_4": { "inputs": { - "nixpkgs": "nixpkgs_8" + "logos-nix": "logos-nix_11", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "logos-capability-module", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1773956385, + "narHash": "sha256-CV0Lo1FrosBt/MSP+GWQGWXnYobxRGXGOREylNuwZ58=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", + "rev": "4b66dac015e4b977d33cfae80a4c8e1d518679f3", "type": "github" }, "original": { @@ -197,14 +176,21 @@ }, "logos-cpp-sdk_5": { "inputs": { - "nixpkgs": "nixpkgs_9" + "logos-nix": "logos-nix_14", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1774465221, + "narHash": "sha256-/DVmdsz1tupp5tgV7Nk2FoN0HsBZTh9K2aKDRLbNZn0=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", + "rev": "02baa918a8021de9652be52aff9068de679d1d3e", "type": "github" }, "original": { @@ -215,68 +201,22 @@ }, "logos-cpp-sdk_6": { "inputs": { - "nixpkgs": "nixpkgs_10" + "logos-nix": "logos-nix_17", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "process-stats", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", + "lastModified": 1774361657, + "narHash": "sha256-ojC5oLlzb7rrhArUaZzfChLxPwrPm1iAF+6lkH2kDCY=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_7": { - "inputs": { - "nixpkgs": "nixpkgs_11" - }, - "locked": { - "lastModified": 1761230734, - "narHash": "sha256-CMRUwXH7pJZ1OI6bd/TDDDXKqQ1tQZHQEOOwK8TgYHI=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "4b143922c190df00bb3835441c9f0075cb28283b", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_8": { - "inputs": { - "nixpkgs": "nixpkgs_12" - }, - "locked": { - "lastModified": 1773672219, - "narHash": "sha256-p+kv2WHokT40rScnSFSIDp/EeFLaDUsTHW6QT6ejKuc=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "a4bd66cd6eb04ee7140bb940b1d49d72d60248de", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, - "logos-cpp-sdk_9": { - "inputs": { - "nixpkgs": "nixpkgs_13" - }, - "locked": { - "lastModified": 1767724329, - "narHash": "sha256-UPkqxqxbKwU5Dmu00TnjiJVXUmfVylF3p1qziEuYwIE=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "32f1d7080d784ff044d91d076ef2f0c7305d4784", + "rev": "39b0a9acce3dac6d8c4c2f30bd35571a17c42c37", "type": "github" }, "original": { @@ -287,20 +227,20 @@ }, "logos-design-system": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_4", + "logos-nix": "logos-nix_10", "nixpkgs": [ "logos-standalone-app", "logos-design-system", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773760216, - "narHash": "sha256-Q9g/lDd0eUofKEiCDr69vPZQs5ttTxorBW9lgFB8Hos=", + "lastModified": 1774455271, + "narHash": "sha256-fXPDvB4VoS9k0oiW3CjN1w2cw9noqcloftXKMc8E0ng=", "owner": "logos-co", "repo": "logos-design-system", - "rev": "09b7507e53a8f7b70d044b80823369a93dd9887a", + "rev": "75201e56002327864544b729ad0077bca7e5b03d", "type": "github" }, "original": { @@ -310,82 +250,24 @@ } }, "logos-liblogos": { - "inputs": { - "logos-capability-module": "logos-capability-module", - "logos-cpp-sdk": "logos-cpp-sdk_10", - "logos-module": "logos-module_4", - "nix-bundle-appimage": "nix-bundle-appimage_2", - "nix-bundle-dir": "nix-bundle-dir_4", - "nixpkgs": [ - "logos-standalone-app", - "logos-cpp-sdk", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773931072, - "narHash": "sha256-u9gzBkfHywYqqjgxMDGfPTBiXru6se7XZOQQVExRXvw=", - "owner": "logos-co", - "repo": "logos-liblogos", - "rev": "e318b6a4941074dd022f98d8df55700e0508337d", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-liblogos", - "type": "github" - } - }, - "logos-liblogos_2": { "inputs": { "logos-capability-module": "logos-capability-module_2", - "logos-cpp-sdk": "logos-cpp-sdk_8", - "logos-module": "logos-module_3", - "nix-bundle-appimage": "nix-bundle-appimage", - "nix-bundle-dir": "nix-bundle-dir_2", + "logos-cpp-sdk": "logos-cpp-sdk_5", + "logos-module": "logos-module_5", + "logos-nix": "logos-nix_16", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" - ] + ], + "process-stats": "process-stats" }, "locked": { - "lastModified": 1773696645, - "narHash": "sha256-GIb4xALCj3XK80rf6l89ZrZ/Y1YkqG1X/mfmVOUl/hw=", + "lastModified": 1774487399, + "narHash": "sha256-cn4V9l/7+AAp897Osll3SrOY5znDqdSvOPZzLpTc8nQ=", "owner": "logos-co", "repo": "logos-liblogos", - "rev": "5030aaaf86b89a382f3beb9426be4f8c2623215f", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-liblogos", - "type": "github" - } - }, - "logos-liblogos_3": { - "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_7", - "nixpkgs": [ - "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "logos-cpp-sdk", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1761845775, - "narHash": "sha256-ulK8xq05ejK6qIgZ7WtWb/MJt2rk5BKfDA2z7mM3wq8=", - "owner": "logos-co", - "repo": "logos-liblogos", - "rev": "a92c2c1268bc70764c8f73c7bce07d21024f5af9", + "rev": "28700caf108bec5066a95fcb1afd5693ed816999", "type": "github" }, "original": { @@ -457,11 +339,11 @@ ] }, "locked": { - "lastModified": 1774468631, - "narHash": "sha256-pwv7KVUbGMidRQ2Omt7mTORJDtaAxynD9bvC5zRpJaQ=", + "lastModified": 1774521784, + "narHash": "sha256-/rmNYffGTK+FTwJUr8dz7vsJz0Tq/sZH3mQ5yt1LCZA=", "owner": "logos-co", "repo": "logos-module-builder", - "rev": "1b8929cd8b57abe4a7e5450d7ac4877942b49b50", + "rev": "c55dfaaade0f1d0d971946f7d24733134c56d5a4", "type": "github" }, "original": { @@ -496,23 +378,21 @@ }, "logos-module_3": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_9", + "logos-nix": "logos-nix_7", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", "logos-capability-module", - "logos-liblogos", "logos-module", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1770999556, - "narHash": "sha256-anpsEniGTTwUAwknRxjaT9GP4avHzIsolEHdHDTV9rM=", + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", "owner": "logos-co", "repo": "logos-module", - "rev": "d1b35f335f938bb5de21a2a6010f1104075bdb1c", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", "type": "github" }, "original": { @@ -523,21 +403,47 @@ }, "logos-module_4": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_11", + "logos-nix": "logos-nix_12", "nixpkgs": [ "logos-standalone-app", "logos-liblogos", + "logos-capability-module", "logos-module", - "logos-cpp-sdk", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773758094, - "narHash": "sha256-bMhSAPE1AmYZRS0rkMJ02uycmUM75D7dCYJ49l/LPHQ=", + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", "owner": "logos-co", "repo": "logos-module", - "rev": "c836e03ac532231c4e48f44e890c61ae294c1edf", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module", + "type": "github" + } + }, + "logos-module_5": { + "inputs": { + "logos-nix": "logos-nix_15", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "logos-module", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", + "owner": "logos-co", + "repo": "logos-module", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", "type": "github" }, "original": { @@ -564,6 +470,186 @@ "type": "github" } }, + "logos-nix_10": { + "inputs": { + "nixpkgs": "nixpkgs_10" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_11": { + "inputs": { + "nixpkgs": "nixpkgs_11" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_12": { + "inputs": { + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_13": { + "inputs": { + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_14": { + "inputs": { + "nixpkgs": "nixpkgs_14" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_15": { + "inputs": { + "nixpkgs": "nixpkgs_15" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_16": { + "inputs": { + "nixpkgs": "nixpkgs_16" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_17": { + "inputs": { + "nixpkgs": "nixpkgs_17" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_18": { + "inputs": { + "nixpkgs": "nixpkgs_18" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_19": { + "inputs": { + "nixpkgs": "nixpkgs_19" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_2": { "inputs": { "nixpkgs": "nixpkgs_2" @@ -582,6 +668,114 @@ "type": "github" } }, + "logos-nix_20": { + "inputs": { + "nixpkgs": "nixpkgs_20" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_21": { + "inputs": { + "nixpkgs": "nixpkgs_21" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_22": { + "inputs": { + "nixpkgs": "nixpkgs_22" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_23": { + "inputs": { + "nixpkgs": "nixpkgs_23" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_24": { + "inputs": { + "nixpkgs": "nixpkgs_24" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_25": { + "inputs": { + "nixpkgs": "nixpkgs_25" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_3": { "inputs": { "nixpkgs": "nixpkgs_3" @@ -654,23 +848,129 @@ "type": "github" } }, - "logos-standalone-app": { + "logos-nix_7": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_3", - "logos-design-system": "logos-design-system", - "logos-liblogos": "logos-liblogos", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_8": { + "inputs": { + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_9": { + "inputs": { + "nixpkgs": "nixpkgs_9" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-package": { + "inputs": { + "logos-nix": "logos-nix_21", "nixpkgs": [ "logos-standalone-app", - "logos-cpp-sdk", + "nix-bundle-lgx", + "logos-package", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1774455360, - "narHash": "sha256-hf10epVwnxOALnx2lRlfl4d9xW9BN/5GKxMIyRkhi6g=", + "lastModified": 1773965173, + "narHash": "sha256-toDnGXUthRcQm7vcEYzb2bLI7FE1tbfzH8Ie2Cnb9mk=", + "owner": "logos-co", + "repo": "logos-package", + "rev": "9e3730d5c0e3ec955761c05b50e3a6047ee4030b", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-package", + "type": "github" + } + }, + "logos-package_2": { + "inputs": { + "logos-nix": "logos-nix_24", + "nixpkgs": [ + "nix-bundle-lgx", + "logos-package", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773965173, + "narHash": "sha256-toDnGXUthRcQm7vcEYzb2bLI7FE1tbfzH8Ie2Cnb9mk=", + "owner": "logos-co", + "repo": "logos-package", + "rev": "9e3730d5c0e3ec955761c05b50e3a6047ee4030b", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-package", + "type": "github" + } + }, + "logos-standalone-app": { + "inputs": { + "logos-capability-module": "logos-capability-module", + "logos-cpp-sdk": "logos-cpp-sdk_3", + "logos-design-system": "logos-design-system", + "logos-liblogos": "logos-liblogos", + "logos-nix": "logos-nix_19", + "nix-bundle-lgx": "nix-bundle-lgx", + "nixpkgs": [ + "logos-standalone-app", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774521658, + "narHash": "sha256-dKBzj/0v9v0BwVXgGw3xektPv3GW3rHW6nHyBz7jBTQ=", "owner": "logos-co", "repo": "logos-standalone-app", - "rev": "bcf255b7df3a1cbb7be1e2daf0a694f0270dc1b2", + "rev": "2758c3f59e4f702f42f281dd439e97391446b46e", "type": "github" }, "original": { @@ -679,61 +979,23 @@ "type": "github" } }, - "nix-bundle-appimage": { - "inputs": { - "nix-bundle-dir": "nix-bundle-dir", - "nixpkgs": "nixpkgs_14" - }, - "locked": { - "lastModified": 1772047346, - "narHash": "sha256-RUsTUxKCxuQ3+D2LfBbK0EX1vF7HNMkpWgOGFfZbrEg=", - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "rev": "4d68437c97ac59c3c70c1b2b116235c434d571a8", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "type": "github" - } - }, - "nix-bundle-appimage_2": { - "inputs": { - "nix-bundle-dir": "nix-bundle-dir_3", - "nixpkgs": "nixpkgs_18" - }, - "locked": { - "lastModified": 1772881966, - "narHash": "sha256-St49mpGrHh5UW1JAxHeqY49DvmubdVrG+H88tKG6jRg=", - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "rev": "5952460727bbfdb83446f24dc974460039a8a325", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "nix-bundle-appimage", - "type": "github" - } - }, "nix-bundle-dir": { "inputs": { + "logos-nix": "logos-nix_22", "nixpkgs": [ "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-liblogos", - "nix-bundle-appimage", + "nix-bundle-lgx", + "nix-bundle-dir", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", + "lastModified": 1773961179, + "narHash": "sha256-bpaTvz//R8WFP5xnnDLv3a9l7unDmBwJjCewx3wCjzM=", "owner": "logos-co", "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", + "rev": "cd214dbf15487d80967389847ae2210468be6ebf", "type": "github" }, "original": { @@ -744,37 +1006,20 @@ }, "nix-bundle-dir_2": { "inputs": { - "nixpkgs": "nixpkgs_15" - }, - "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", - "owner": "logos-co", - "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "nix-bundle-dir", - "type": "github" - } - }, - "nix-bundle-dir_3": { - "inputs": { + "logos-nix": "logos-nix_25", "nixpkgs": [ - "logos-standalone-app", - "logos-liblogos", - "nix-bundle-appimage", + "nix-bundle-lgx", + "nix-bundle-dir", + "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", + "lastModified": 1773961179, + "narHash": "sha256-bpaTvz//R8WFP5xnnDLv3a9l7unDmBwJjCewx3wCjzM=", "owner": "logos-co", "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", + "rev": "cd214dbf15487d80967389847ae2210468be6ebf", "type": "github" }, "original": { @@ -783,21 +1028,53 @@ "type": "github" } }, - "nix-bundle-dir_4": { + "nix-bundle-lgx": { "inputs": { - "nixpkgs": "nixpkgs_19" + "logos-nix": "logos-nix_20", + "logos-package": "logos-package", + "nix-bundle-dir": "nix-bundle-dir", + "nixpkgs": [ + "logos-standalone-app", + "logos-nix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1771971384, - "narHash": "sha256-fq0H+sxQhkGN054jdN+ZfHZibbOjHA+KD5SpRH78T1g=", + "lastModified": 1774455541, + "narHash": "sha256-ku5gG6qKIZeWzJ/jNOxfsx1rwJ3kPrCw8/wnBKq1Uyw=", "owner": "logos-co", - "repo": "nix-bundle-dir", - "rev": "1ecb9662145a1ad84007a970b4bef50a4af159c9", + "repo": "nix-bundle-lgx", + "rev": "9d6f9016c865b9d2793672bc3c45a50b59753c78", "type": "github" }, "original": { "owner": "logos-co", - "repo": "nix-bundle-dir", + "repo": "nix-bundle-lgx", + "type": "github" + } + }, + "nix-bundle-lgx_2": { + "inputs": { + "logos-nix": "logos-nix_23", + "logos-package": "logos-package_2", + "nix-bundle-dir": "nix-bundle-dir_2", + "nixpkgs": [ + "nix-bundle-lgx", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774455541, + "narHash": "sha256-ku5gG6qKIZeWzJ/jNOxfsx1rwJ3kPrCw8/wnBKq1Uyw=", + "owner": "logos-co", + "repo": "nix-bundle-lgx", + "rev": "9d6f9016c865b9d2793672bc3c45a50b59753c78", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "nix-bundle-lgx", "type": "github" } }, @@ -883,11 +1160,11 @@ }, "nixpkgs_14": { "locked": { - "lastModified": 1771848320, - "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -899,11 +1176,11 @@ }, "nixpkgs_15": { "locked": { - "lastModified": 1770562336, - "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -947,11 +1224,11 @@ }, "nixpkgs_18": { "locked": { - "lastModified": 1771848320, - "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -963,11 +1240,11 @@ }, "nixpkgs_19": { "locked": { - "lastModified": 1770562336, - "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -993,6 +1270,102 @@ "type": "github" } }, + "nixpkgs_20": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_21": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_22": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_23": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_24": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_25": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_3": { "locked": { "lastModified": 1759036355, @@ -1105,11 +1478,38 @@ "type": "github" } }, + "process-stats": { + "inputs": { + "logos-cpp-sdk": "logos-cpp-sdk_6", + "logos-nix": "logos-nix_18", + "nixpkgs": [ + "logos-standalone-app", + "logos-liblogos", + "process-stats", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774384731, + "narHash": "sha256-CUSTLW/FZnl3/HjicNTxa0skwWjmLxNzf6tRVOcFkFI=", + "owner": "logos-co", + "repo": "process-stats", + "rev": "1178322d9ea34f3d4b34b75cdad6e05dc1eb9603", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "process-stats", + "type": "github" + } + }, "root": { "inputs": { "calc_module": "calc_module", "logos-module-builder": "logos-module-builder_2", - "logos-standalone-app": "logos-standalone-app" + "logos-standalone-app": "logos-standalone-app", + "nix-bundle-lgx": "nix-bundle-lgx_2" } } }, diff --git a/logos-calc-ui/flake.nix b/logos-calc-ui/flake.nix index e9ff4fc..11f0aa2 100644 --- a/logos-calc-ui/flake.nix +++ b/logos-calc-ui/flake.nix @@ -4,6 +4,7 @@ inputs = { logos-module-builder.url = "github:logos-co/logos-module-builder"; logos-standalone-app.url = "github:logos-co/logos-standalone-app"; + nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx"; calc_module.url = "github:logos-co/logos-tutorial?dir=logos-calc-module"; }; diff --git a/logos-developer-guide.md b/logos-developer-guide.md index 10befb8..bd0a9b4 100644 --- a/logos-developer-guide.md +++ b/logos-developer-guide.md @@ -18,7 +18,9 @@ A comprehensive guide to creating, building, testing, packaging, and distributin - [2.2 The logos-module-viewer](#22-the-logos-module-viewer) - [Part 3: Packaging Your Module](#part-3-packaging-your-module) - [3.1 The LGX Package Format](#31-the-lgx-package-format) - - [3.2 Bundling with nix-bundle-lgx](#32-bundling-with-nix-bundle-lgx) + - [3.2 Building LGX Packages](#32-building-lgx-packages) + - [Built-in Nix Derivation (Preferred)](#built-in-nix-derivation-preferred) + - [Using nix bundle (Alternative)](#using-nix-bundle-alternative) - [Part 4: Installing and Managing Modules](#part-4-installing-and-managing-modules) - [4.1 The lgpm CLI](#41-the-lgpm-cli) - [4.2 Installing from Local Files](#42-installing-from-local-files) @@ -379,8 +381,7 @@ cmake --build build ``` result/ ├── lib/ -│ ├── my_module_plugin.so # (or .dylib on macOS) -│ └── metadata.json # Runtime metadata +│ └── my_module_plugin.so # (or .dylib on macOS) └── include/ ├── my_module_api.h # Generated type-safe wrapper header └── my_module_api.cpp # Generated wrapper implementation @@ -498,15 +499,54 @@ mymodule.lgx (tar.gz) The **manifest.json** is auto-generated from your module's `metadata.json` by the bundler. It maps each variant to its main entry point. -### 3.2 Bundling with nix-bundle-lgx +### 3.2 Building LGX Packages -The recommended way to create `.lgx` packages is using **nix-bundle-lgx**, which automatically bundles your `nix build` output into an `.lgx` file with the correct manifest and variant structure. +There are two ways to create `.lgx` packages. The preferred approach uses the built-in Nix derivation that comes with `logos-module-builder`. Alternatively, you can use the `nix bundle` command directly. + +#### Built-in Nix Derivation (Preferred) + +When your module's `flake.nix` includes `nix-bundle-lgx` as an input (which all `logos-module-builder` templates do by default), LGX package outputs are automatically available as part of your flake: ```bash # Dev variant (uses /nix/store references, for local development) -nix bundle --bundler github:logos-co/nix-bundle-lgx .#lib +nix build .#lgx # Portable variant (self-contained, all dependencies bundled) +nix build .#lgx-portable + +# Dual variant (both dev and portable in one .lgx file) +nix build .#lgx-dual +``` + +This produces a `my_module-.lgx` file in the `result/` directory. + +This works because `logos-module-builder.lib.mkLogosModule` detects the `nix-bundle-lgx` input in your `flakeInputs` and automatically creates the `lgx`, `lgx-portable`, and `lgx-dual` package outputs. No extra configuration is needed — it is part of the standard module template: + +```nix +{ + inputs = { + logos-module-builder.url = "github:logos-co/logos-module-builder"; + nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx"; + }; + + outputs = inputs@{ logos-module-builder, ... }: + logos-module-builder.lib.mkLogosModule { + src = ./.; + configFile = ./metadata.json; + flakeInputs = inputs; + }; +} +``` + +#### Using `nix bundle` (Alternative) + +You can also create `.lgx` packages using the `nix bundle` command directly. This is useful if your module does not use `logos-module-builder` or if you need the `dual` bundling mode (both dev and portable in a single `.lgx` file): + +```bash +# Dev variant +nix bundle --bundler github:logos-co/nix-bundle-lgx .#lib + +# Portable variant nix bundle --bundler github:logos-co/nix-bundle-lgx#portable .#lib # Dual variant (both dev and portable in one .lgx file) @@ -517,11 +557,11 @@ This produces a `my_module-.lgx` file in the current directory. **Bundling modes:** -| Mode | Command | Variant Created | Use Case | -|------|---------|----------------|----------| -| **Dev** | `nix bundle --bundler ...#default .#lib` | `darwin-arm64-dev` | Local development (requires Nix store) | -| **Portable** | `nix bundle --bundler ...#portable .#lib` | `darwin-arm64` | Distribution (self-contained, no Nix needed) | -| **Dual** | `nix bundle --bundler ...#dual .#lib` | Both dev and portable | One package for both environments | +| Mode | Built-in Command | `nix bundle` Command | Variant Created | Use Case | +|------|-----------------|---------------------|----------------|----------| +| **Dev** | `nix build .#lgx` | `nix bundle --bundler ...#default .#lib` | `darwin-arm64-dev` | Local development (requires Nix store) | +| **Portable** | `nix build .#lgx-portable` | `nix bundle --bundler ...#portable .#lib` | `darwin-arm64` | Distribution (self-contained, no Nix needed) | +| **Dual** | `nix build .#lgx-dual` | `nix bundle --bundler ...#dual .#lib` | Both dev and portable | One package for both environments | **Variant naming:** @@ -1044,6 +1084,12 @@ logos-cpp-generator --metadata --general-only [--output-dir For more bundling options (standalone bundler syntax, cross-platform packaging), see the [Developer Guide — Bundling with nix-bundle-lgx](logos-developer-guide.md#32-bundling-with-nix-bundle-lgx). + ### 11.2 Build and run logos-basecamp Build logos-basecamp, launch it once to preinstall its bundled modules, then install your modules. @@ -711,11 +711,11 @@ nix build 'github:logos-co/logos-package-manager-module#cli' --out-link ./pm # Install core module ./pm/bin/lgpm --modules-dir BASECAMP_DIR/modules \ - install --file ../logos-calc-module/lgx-calc-module/*.lgx + install --file ../logos-calc-module/result/*.lgx # Install UI plugin ./pm/bin/lgpm --modules-dir BASECAMP_DIR/plugins \ - install --file lgx-calc-ui-cpp/*.lgx + install --file result/*.lgx # Launch basecamp -- your modules appear alongside the built-in ones ./basecamp-result/bin/logos-basecamp @@ -728,8 +728,8 @@ Instead of using `lgpm` on the command line, you can install modules through the 1. Launch `logos-basecamp` 2. Go to **Package Manager** 3. Click **Install from file** -4. Select `lgx-calc-module/*.lgx` — installs `calc_module` -5. Repeat for `lgx-calc-ui-cpp/*.lgx` — installs `calc_ui_cpp` +4. Select `../logos-calc-module/result/*.lgx` — installs `calc_module` +5. Repeat for `result/*.lgx` — installs `calc_ui_cpp` The "Calculator" tab appears in the sidebar. diff --git a/tutorial-qml-ui-app.md b/tutorial-qml-ui-app.md index 57ceb4f..94a618e 100644 --- a/tutorial-qml-ui-app.md +++ b/tutorial-qml-ui-app.md @@ -233,6 +233,7 @@ The template already has everything wired up. Update the description and add `ca inputs = { logos-module-builder.url = "github:logos-co/logos-module-builder"; logos-standalone-app.url = "github:logos-co/logos-standalone-app"; + nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx"; calc_module.url = "github:logos-co/logos-tutorial?dir=logos-calc-module"; # must match dependency name in metadata.json }; @@ -263,22 +264,17 @@ The app opens immediately. No modules are loaded, so clicking buttons shows "Log ### 5.2 Full functionality (with modules) -To test actual calls to `calc_module`, you need a modules directory with `capability_module` (required by all UI plugins) and `calc_module` installed via `lgpm`. Do this once: +To test actual calls to `calc_module`, you need a modules directory with `calc_module` installed via `lgpm`. The `capability_module` is loaded automatically by the standalone app. Do this once: ```bash nix build 'github:logos-co/logos-package-manager-module#cli' --out-link ./pm mkdir -p modules -# Install capability_module (required by all UI plugins) -nix bundle --bundler 'github:logos-co/nix-bundle-lgx' \ - 'github:logos-co/logos-capability-module' -o lgx-capability -./pm/bin/lgpm --modules-dir ./modules install --file lgx-capability/*.lgx - # Bundle and install calc_module (from Part 1) cd ../logos-calc-module -nix bundle --bundler 'github:logos-co/nix-bundle-lgx' '.#lib' -o lgx-result +nix build '.#lgx' cd ../logos-calc-ui -./pm/bin/lgpm --modules-dir ./modules install --file ../logos-calc-module/lgx-result/*.lgx +./pm/bin/lgpm --modules-dir ./modules install --file ../logos-calc-module/result/*.lgx ``` Then run with the modules directory: @@ -336,18 +332,20 @@ Available theme tokens via `Theme.palette`: ### 7.1 Bundle as LGX packages -Create `.lgx` packages using the `#dual` bundler (includes both dev and portable variants, so they work with any basecamp build): +Create `.lgx` packages using the dual variant (includes both dev and portable variants, so they work with any basecamp build): ```bash # Package calc_module (from Part 1) cd ../logos-calc-module -nix bundle --bundler 'github:logos-co/nix-bundle-lgx#dual' '.#lib' -o lgx-calc-module +nix build '.#lgx-dual' # Package the QML UI plugin cd ../logos-calc-ui -nix bundle --bundler 'github:logos-co/nix-bundle-lgx#dual' '.#lib' -o lgx-calc-ui +nix build '.#lgx-dual' ``` +> For more bundling options (standalone bundler syntax, cross-platform packaging), see the [Developer Guide — Bundling with nix-bundle-lgx](logos-developer-guide.md#32-bundling-with-nix-bundle-lgx). + ### 7.2 Build and run logos-basecamp Build logos-basecamp, launch it once to preinstall its bundled modules, then install your modules. @@ -382,11 +380,11 @@ nix build 'github:logos-co/logos-package-manager-module#cli' --out-link ./pm # Install core module ./pm/bin/lgpm --modules-dir BASECAMP_DIR/modules \ - install --file ../logos-calc-module/lgx-calc-module/*.lgx + install --file ../logos-calc-module/result/*.lgx # Install UI plugin ./pm/bin/lgpm --modules-dir BASECAMP_DIR/plugins \ - install --file lgx-calc-ui/*.lgx + install --file result/*.lgx # Launch basecamp -- your modules appear alongside the built-in ones ./basecamp-result/bin/logos-basecamp @@ -399,8 +397,8 @@ Instead of using `lgpm` on the command line, you can install modules through the 1. Launch `logos-basecamp` 2. Go to **Package Manager** 3. Click **Install from file** -4. Select `lgx-calc-module/*.lgx` -- installs `calc_module` -5. Repeat for `lgx-calc-ui/*.lgx` -- installs `calc_ui` +4. Select `../logos-calc-module/result/*.lgx` -- installs `calc_module` +5. Repeat for `result/*.lgx` -- installs `calc_ui` The "Calculator UI" tab appears in the sidebar. Clicking it loads your `Main.qml`. diff --git a/tutorial-wrapping-c-library.md b/tutorial-wrapping-c-library.md index 4e366ac..54fa5f0 100644 --- a/tutorial-wrapping-c-library.md +++ b/tutorial-wrapping-c-library.md @@ -282,6 +282,7 @@ The `if/elseif/else` block above it is boilerplate — don't change it. inputs = { logos-module-builder.url = "github:logos-co/logos-module-builder"; + nix-bundle-lgx.url = "github:logos-co/nix-bundle-lgx"; }; outputs = inputs@{ logos-module-builder, ... }: @@ -505,15 +506,13 @@ You should see two files (extensions depend on your platform): # Linux calc_module_plugin.so # Your Logos module plugin libcalc.so # The C library (copied alongside) -metadata.json # Runtime metadata # macOS calc_module_plugin.dylib libcalc.dylib -metadata.json ``` -Both library files are placed together so the plugin can find the C library at runtime via RPATH. The `metadata.json` is copied alongside for runtime discovery by `logoscore` and `logos-basecamp`. +Both library files are placed together so the plugin can find the C library at runtime via RPATH. --- @@ -637,16 +636,16 @@ nix build 'github:logos-co/logos-logoscore-cli' --out-link ./logos ### 5.2 Set up the modules directory -`logoscore` expects modules in subdirectories, each with a `manifest.json`. Rather than copying files and writing the manifest manually, use the Nix bundler to create an LGX package and install it with the package manager: +`logoscore` expects modules in subdirectories, each with a `manifest.json`. Rather than copying files and writing the manifest manually, use the Nix derivation to create an LGX package and install it with the package manager: ```bash # Bundle the module into an LGX package -nix bundle --bundler 'github:logos-co/nix-bundle-lgx' '.#lib' -o lgx-result +nix build '.#lgx' # Install it into a modules directory using the Logos Package Manager nix build 'github:logos-co/logos-package-manager-module#cli' --out-link ./pm mkdir -p modules -./pm/bin/lgpm --modules-dir ./modules install --file lgx-result/*.lgx +./pm/bin/lgpm --modules-dir ./modules install --file result/*.lgx ``` This extracts the plugin, external libraries, and manifest into the correct directory structure: @@ -655,7 +654,6 @@ This extracts the plugin, external libraries, and manifest into the correct dire modules/calc_module/ ├── calc_module_plugin.dylib # (or .so on Linux) ├── libcalc.dylib # (or .so on Linux) -├── metadata.json # Embedded in binary, also on disk ├── manifest.json # Auto-generated by lgx └── variant # Platform variant identifier ``` @@ -711,14 +709,22 @@ Method call successful. Result: ... ## Step 6: Package for Distribution (Optional) -The LGX package created in Step 5.2 is a **local** package — its libraries still reference `/nix/store` paths, so it only works on the machine that built it. To create a **portable** package that can be distributed to other machines, use the `#portable` bundler: +The LGX package created in Step 5.2 is a **local** package — its libraries still reference `/nix/store` paths, so it only works on the machine that built it. To create a **portable** package that can be distributed to other machines: ```bash -nix bundle --bundler 'github:logos-co/nix-bundle-lgx#portable' '.#lib' +nix build '.#lgx-portable' ``` Portable LGX packages are fully self-contained with no `/nix/store` references at runtime. These are the packages used by the Logos App Package Manager UI and published to [logos-modules](https://github.com/logos-co/logos-modules) releases. +To create a **dual** package containing both dev and portable variants (works with any basecamp build): + +```bash +nix build '.#lgx-dual' +``` + +> For more bundling options (standalone bundler syntax, cross-platform packaging), see the [Developer Guide — Bundling with nix-bundle-lgx](logos-developer-guide.md#32-bundling-with-nix-bundle-lgx). + To install a portable package on another machine: ```bash