{ stdenv , ruby , makeWrapper , pkg-config , libxcb , xcbutilwm , xrandr , xprop , rubyPackages , gcc , lib }: stdenv.mkDerivation { pname = "kutu"; version = "0.1.0"; src = ./.; nativeBuildInputs = [ pkg-config makeWrapper gcc ]; buildInputs = [ (ruby.withPackages (ps: [ ps.ffi ])) libxcb xcbutilwm xrandr xprop ]; buildPhase = '' mkdir -p build gcc -shared -fPIC \ -Wall -Wextra \ -o build/X-kutu.so \ src/c/X-kutu.c \ $(pkg-config --libs --cflags xcb xcb-icccm); ''; installPhase = '' mkdir -p $out/bin mkdir -p $out/build mkdir -p $out/src cp bin/kutu.rb $out/bin/kutu.rb cp bin/kutu-run.rb $out/bin/kutu-run.rb cp build/X-kutu.so $out/build/ cp -r src/. $out/src/ wrapProgram $out/bin/kutu.rb \ --prefix PATH : ${lib.makeBinPath [ xrandr xprop ]} ''; }