clan-app: packaged c webui lib
This commit is contained in:
@@ -40,6 +40,7 @@ let
|
|||||||
libadwaita
|
libadwaita
|
||||||
webkitgtk_6_0
|
webkitgtk_6_0
|
||||||
adwaita-icon-theme
|
adwaita-icon-theme
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Deps including python packages from the local project
|
# Deps including python packages from the local project
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
devShells.clan-app = pkgs.callPackage ./shell.nix {
|
devShells.clan-app = pkgs.callPackage ./shell.nix {
|
||||||
inherit (config.packages) clan-app;
|
inherit (config.packages) clan-app webview-wrapper;
|
||||||
inherit self';
|
inherit self';
|
||||||
};
|
};
|
||||||
packages.clan-app = pkgs.python3.pkgs.callPackage ./default.nix {
|
packages.clan-app = pkgs.python3.pkgs.callPackage ./default.nix {
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
python3,
|
python3,
|
||||||
gtk4,
|
gtk4,
|
||||||
libadwaita,
|
libadwaita,
|
||||||
|
webview-wrapper,
|
||||||
|
clang,
|
||||||
self',
|
self',
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -36,6 +38,8 @@ mkShell {
|
|||||||
glib
|
glib
|
||||||
ruff
|
ruff
|
||||||
gtk4
|
gtk4
|
||||||
|
clang
|
||||||
|
webview-wrapper
|
||||||
gtk4.dev # has the demo called 'gtk4-widget-factory'
|
gtk4.dev # has the demo called 'gtk4-widget-factory'
|
||||||
libadwaita.devdoc # has the demo called 'adwaita-1-demo'
|
libadwaita.devdoc # has the demo called 'adwaita-1-demo'
|
||||||
]
|
]
|
||||||
@@ -51,7 +55,6 @@ mkShell {
|
|||||||
export GIT_ROOT=$(git rev-parse --show-toplevel)
|
export GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||||
export PKG_ROOT=$GIT_ROOT/pkgs/clan-app
|
export PKG_ROOT=$GIT_ROOT/pkgs/clan-app
|
||||||
|
|
||||||
export WEBKIT_DISABLE_COMPOSITING_MODE=1
|
|
||||||
# Add current package to PYTHONPATH
|
# Add current package to PYTHONPATH
|
||||||
export PYTHONPATH="$PKG_ROOT''${PYTHONPATH:+:$PYTHONPATH:}"
|
export PYTHONPATH="$PKG_ROOT''${PYTHONPATH:+:$PYTHONPATH:}"
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
editor = pkgs.callPackage ./editor/clan-edit-codium.nix { };
|
editor = pkgs.callPackage ./editor/clan-edit-codium.nix { };
|
||||||
classgen = pkgs.callPackage ./classgen { };
|
classgen = pkgs.callPackage ./classgen { };
|
||||||
zerotierone = pkgs.callPackage ./zerotierone { };
|
zerotierone = pkgs.callPackage ./zerotierone { };
|
||||||
|
webview-wrapper = pkgs.callPackage ./webview-wrapper { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
56
pkgs/webview-wrapper-py/default.nix
Normal file
56
pkgs/webview-wrapper-py/default.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
|
||||||
|
# build-system dependencies
|
||||||
|
, setuptools
|
||||||
|
, wheel
|
||||||
|
, webview-wrapper
|
||||||
|
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "python-webui";
|
||||||
|
version = "main";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "webui-dev";
|
||||||
|
repo = "python-webui";
|
||||||
|
rev = "fa961b5ee0752c9408ac01519097f5481a0fcecf"; # Replace with specific commit hash for reproducibility
|
||||||
|
# sha256 = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # Replace with actual hash via nix-prefetch-git
|
||||||
|
};
|
||||||
|
|
||||||
|
sourceRoot = "PyPI/Package";
|
||||||
|
|
||||||
|
# Indicate this is a recent Python project with PEP 517 support (pyproject.toml)
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
# Declare the build system (setuptools and wheel are common)
|
||||||
|
buildInputs = [
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
# Declare required Python package dependencies
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
# Native inputs for testing, if tests are included
|
||||||
|
nativeCheckInputs = [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
# If tests don't work out of the box or need adjustments, patches can be applied here
|
||||||
|
postPatch = ''
|
||||||
|
# Example: Modify or patch some test files
|
||||||
|
echo "No postPatch modifications applied yet."
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A Python library for webui-dev";
|
||||||
|
homepage = "https://github.com/webui-dev/python-webui";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = [ maintainers.yourname ];
|
||||||
|
};
|
||||||
|
}
|
||||||
39
pkgs/webview-wrapper/default.nix
Normal file
39
pkgs/webview-wrapper/default.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "webui";
|
||||||
|
version = "nigthly";
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "webui-dev";
|
||||||
|
repo = "python-webui";
|
||||||
|
rev = "0ff3b1351b9e24be4463b1baf2c26966caeae74a"; # Use a specific commit sha or tag for reproducibility
|
||||||
|
sha256 = "sha256-xSOnCkW4iZkSSLKzk6r3hewC3bPJlV7L6aoGEchyEys="; # Replace with actual sha256
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
# Dependencies used during the build process, if any
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
# Commands to build and install the project
|
||||||
|
buildPhase = ''
|
||||||
|
make
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
mkdir -p $out/include
|
||||||
|
cp -r dist/* $out/lib
|
||||||
|
cp -r include/* $out/include
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "Webui is a UI library for C/C++/Go/Rust to build portable desktop/web apps using WebView";
|
||||||
|
homepage = "https://github.com/webui-dev/webui";
|
||||||
|
license = licenses.mit;
|
||||||
|
platforms = platforms.linux ++ platforms.darwin; # Adjust if needed
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user