From acf416f4b64cb8ac212178ef962ef8ac06375ab6 Mon Sep 17 00:00:00 2001 From: shinya Date: Wed, 20 May 2026 10:50:47 +0200 Subject: [PATCH] fix and update package --- flake.nix | 77 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 22 deletions(-) diff --git a/flake.nix b/flake.nix index e028ecc..34044a8 100644 --- a/flake.nix +++ b/flake.nix @@ -18,36 +18,69 @@ }; in { - devShells.${system}.default = - pkgs.mkShell { - packages = with pkgs; [ - stdenv.cc + devShells.${system}.default = pkgs.mkShell { + nativeBuildInputs = [ + pkgs.pkgsBuildBuild.pkg-config + ]; - pkg-config + buildInputs = with pkgs; [ + libcamera + libGL + libglvnd + mesa + ]; - libcamera + shellHook = '' + export CC=${pkgs.stdenv.cc.targetPrefix}gcc + export CXX=${pkgs.stdenv.cc.targetPrefix}g++ - libGL - libglvnd + export PKG_CONFIG_ALLOW_CROSS=1 - mesa + echo "Cross shell ready" + ''; + }; - # useful tools - gdb - ]; + packages.${system}.default = pkgs.stdenv.mkDerivation { + pname = "rpi-zero-libcamera-app"; + version = "0.1.0"; - shellHook = '' - echo "ARM cross shell for Raspberry Pi Zero" - echo + src = ./.; - export CC=arm-linux-gnueabihf-gcc - export CXX=arm-linux-gnueabihf-g++ + nativeBuildInputs = [ + pkgs.pkgsBuildBuild.pkg-config + ]; - export PKG_CONFIG_ALLOW_CROSS=1 + buildInputs = with pkgs; [ + libcamera + libGL + libglvnd + mesa + ]; - echo "Compiler:" - $CXX --version - ''; - }; + buildPhase = '' + runHook preBuild + + export PKG_CONFIG_ALLOW_CROSS=1 + + mkdir -p build + + ${pkgs.stdenv.cc.targetPrefix}g++ \ + main.cpp \ + -o build/app \ + $(pkg-config --cflags --libs libcamera) + + runHook postBuild + ''; + + installPhase = '' + mkdir -p $out/bin + cp build/app $out/bin/app + ''; + }; + + apps.${system}.default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/app"; + }; }; }