{
  description = "A very basic flake";

  inputs = {
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, pkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system:
      let p = pkgs.packages.x86_64-linux;
      in
      {

        defaultPackage = p.rustPlatform.buildRustPackage {
          pname = "gtk-hello-world";
          version = "0.1.0";

          src = self;

          cargoLock.lockFile = ./Cargo.lock;
          nativeBuildInputs = with p; [ pkgconfig ];
          buildInputs = with p; [ gtk4 ];
        };

        devShell = p.mkShell {
          inputsFrom = [ self.defaultPackage.x86_64-linux ];
        };

      }
    );
}