diff --git a/pkgs/by-name/pc/pcb2gcode/boost-1.89.patch b/pkgs/by-name/pc/pcb2gcode/boost-1.89.patch new file mode 100644 index 000000000000..42e070046374 --- /dev/null +++ b/pkgs/by-name/pc/pcb2gcode/boost-1.89.patch @@ -0,0 +1,20 @@ +--- a/src/units.hpp ++++ b/src/units.hpp +@@ -370,7 +370,7 @@ + } + + namespace BoardSide { +-enum BoardSide { ++enum BoardSide : int { + AUTO, + FRONT, + BACK +@@ -433,7 +433,7 @@ + } // namespace Software + + namespace MillFeedDirection { +-enum MillFeedDirection { ++enum MillFeedDirection : int { + ANY, + CLIMB, + CONVENTIONAL diff --git a/pkgs/by-name/pc/pcb2gcode/package.nix b/pkgs/by-name/pc/pcb2gcode/package.nix index 717c8a5543c1..2fb79f1b4be9 100644 --- a/pkgs/by-name/pc/pcb2gcode/package.nix +++ b/pkgs/by-name/pc/pcb2gcode/package.nix @@ -2,48 +2,53 @@ stdenv, lib, fetchFromGitHub, - autoreconfHook, + cmake, pkg-config, boost, glibmm, gtkmm2, gerbv, + geos, librsvg, }: stdenv.mkDerivation (finalAttrs: { pname = "pcb2gcode"; - version = "3.0.2"; + version = "3.0.4"; src = fetchFromGitHub { owner = "pcb2gcode"; repo = "pcb2gcode"; - rev = "v${finalAttrs.version}"; - hash = "sha256-Vjv80QPrJyEYqHFbXR2n68csAWfCMMmi4NEZYe8/DcY="; + tag = "v${finalAttrs.version}"; + hash = "sha256-tuVEtynzC9VBBm5tNNkdSr8Rrj3Oy5QOI6jNTmsIXbs="; }; - configureFlags = [ - (lib.withFeatureAs true "boost" boost.dev) + patches = [ + ./boost-1.89.patch ]; nativeBuildInputs = [ - autoreconfHook + cmake pkg-config ]; + cmakeFlags = [ + (lib.cmakeBool "PCB2GCODE_COMPILE_WARNING_AS_ERROR" false) + ]; + + preConfigure = lib.optionalString stdenv.isDarwin '' + export CXXFLAGS="$CXXFLAGS -fpermissive -Wno-error=c++20-extensions -Wno-error=invalid-constexpr" + ''; + buildInputs = [ boost glibmm gtkmm2 gerbv + geos librsvg ]; - postPatch = '' - substituteInPlace ./Makefile.am \ - --replace '`git describe --dirty --always --tags`' '${finalAttrs.version}' - ''; - meta = { description = "Command-line tool for isolation, routing and drilling of PCBs"; longDescription = ''