nvboard: Init at 0.3

This commit is contained in:
xinyangli 2024-01-04 23:00:03 +08:00
parent 6133fb20e3
commit 996408c835
4 changed files with 74 additions and 4 deletions

View file

@ -8,13 +8,16 @@
{ pkgs ? import <nixpkgs> { } }: { pkgs ? import <nixpkgs> { } }:
with pkgs;
{ {
# The `lib`, `modules`, and `overlay` names are special # The `lib`, `modules`, and `overlay` names are special
lib = import ./lib { inherit pkgs; }; # functions lib = import ./lib { inherit pkgs; }; # functions
modules = import ./modules; # NixOS modules modules = import ./modules; # NixOS modules
overlays = import ./overlays; # nixpkgs overlays overlays = import ./overlays; # nixpkgs overlays
example-package = pkgs.callPackage ./pkgs/example-package { }; example-package = callPackage ./pkgs/example-package { };
nvboard = callPackage ./pkgs/nvboard { };
# some-qt5-package = pkgs.libsForQt5.callPackage ./pkgs/some-qt5-package { }; # some-qt5-package = pkgs.libsForQt5.callPackage ./pkgs/some-qt5-package { };
# ... # ...
} }

View file

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1624561540, "lastModified": 1704161960,
"narHash": "sha256-izJ2PYZMGMsSkg+e7c9A1x3t/yOLT+qzUM6WQsc2tqo=", "narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c6a049a3d32293b24c0f894a840872cf67fd7c11", "rev": "63143ac2c9186be6d9da6035fa22620018c85932",
"type": "github" "type": "github"
}, },
"original": { "original": {

51
pkgs/nvboard/default.nix Normal file
View file

@ -0,0 +1,51 @@
{ stdenv
, fetchFromGitHub
, lib
, SDL2
, SDL2_image
, python3
}:
stdenv.mkDerivation rec {
name = "nvboard";
version = "0.3";
src = fetchFromGitHub {
owner = "NJU-ProjectN";
repo = "nvboard";
rev = "23e79f86a6f915592cdf0af1c045a6f96082823c";
hash = "sha256-/sC2XD19MVgwKJH/rdCsfewR/Yf7cyd9okQV/AErP+k=";
};
patches = [ ./fixpics.patch ];
propagatedBuildInputs = [
SDL2
SDL2_image
];
buildInputs = [
python3
];
buildPhase = ''
export CXXFLAGS="-DNVBOARD_HOME=\\\"$out/share/nvboard\\\""
echo $CXXFLAGS
make NVBOARD_HOME=$(pwd) -f ./scripts/nvboard.mk
'';
installPhase = ''
mkdir -p $out/lib
mkdir -p $out/include
mkdir -p $out/bin
mkdir -p $out/share/nvboard/pic
mkdir -p $out/share/nvboard/board
cp ./build/nvboard.a $out/lib/libnvboard.a
cp ./include/* $out/include/
cp ./pic/* $out/share/nvboard/pic
cp ./board/* $out/share/nvboard/board
# Pin binding script
sed -i "s|os.environ.get('NVBOARD_HOME')|\"$out/share/nvboard\"|g" ./scripts/auto_pin_bind.py
install ./scripts/auto_pin_bind.py $out/bin/auto_pin_bind
'';
}

View file

@ -0,0 +1,16 @@
diff --git a/src/nvboard.cpp b/src/nvboard.cpp
index ff6a75c..3759ff7 100644
--- a/src/nvboard.cpp
+++ b/src/nvboard.cpp
@@ -82,7 +82,11 @@ void nvboard_init(int vga_clk_cycle) {
0
);
+#ifdef NVBOARD_HOME
+ nvboard_home = NVBOARD_HOME;
+#else
nvboard_home = getenv("NVBOARD_HOME");
+#endif
load_background(main_renderer);
load_texture(main_renderer);