diff --git a/flake.nix b/flake.nix index cc15e22..cbeb0e4 100644 --- a/flake.nix +++ b/flake.nix @@ -8,25 +8,31 @@ system = "aarch64-darwin"; pkgs = nixpkgs.legacyPackages.${system}; in { - # This builds the 'PROCESSOR' library so other projects can find it packages.${system}.default = pkgs.stdenv.mkDerivation { name = "image_processor"; src = ./.; - nativeBuildInputs = [pkgs.cmake]; + + # Add pkg-config here so CMake can find it during the build + nativeBuildInputs = [ + pkgs.cmake + pkgs.pkg-config + ]; + buildInputs = [pkgs.libjpeg_turbo]; - # This ensures the .dylib and .h files are moved to the right place + + # Nix's default CMake phase will run, but we need to ensure + # the library actually gets installed to the nix store output installPhase = '' mkdir -p $out/lib $out/include - cp libPROCESSOR.dylib $out/lib/ || cp libPROCESSOR.a $out/lib/ + cp libPROCESSOR.dylib $out/lib/ 2>/dev/null || cp libPROCESSOR.a $out/lib/ cp *.h $out/include/ ''; }; devShells.${system}.default = pkgs.mkShell { + # This makes sure the shell also has the tools for manual debugging + nativeBuildInputs = [pkgs.pkg-config pkgs.cmake]; buildInputs = [pkgs.libjpeg_turbo]; - shellHook = '' - export PKG_CONFIG_PATH="${pkgs.libjpeg_turbo.dev}/lib/pkgconfig:$PKG_CONFIG_PATH" - ''; }; }; }