{ stdenv, fetchurl, cmake, gnome3, pcre, freetype, glew, gtk3, libjpeg, libpng,
  SDL, SDL_mixer, libupnp, xorg, pkgconfig, gtest, tinyxml, gmock, readline,
  libxkbcommon, epoxy, at_spi2_core, dbus, libxml2,
  enableSoundtrack ? false # Enable the "Open Clonk Soundtrack - Explorers Journey" by David Oerther
}:

let
  soundtrack_src = fetchurl {
    url = "http://www.openclonk.org/download/Music.ocg";
    sha256 = "1ckj0dlpp5zsnkbb5qxxfxpkiq76jj2fgj91fyf3ll7n0gbwcgw5";
  };
in stdenv.mkDerivation rec {
  version = "7.0";
  name = "openclonk-${version}";

  src = fetchurl {
    url = "http://www.openclonk.org/builds/release/7.0/openclonk-${version}-src.tar.bz2";
    sha256 = "0ch71dqaaalg744pc1gvg6sj2yp2kgvy2m4yh6l7ljkpf8fj66mw";
  };

  postInstall = ''
    mv -v $out/games/openclonk $out/bin/
  '' + stdenv.lib.optionalString enableSoundtrack ''
    cp -v ${soundtrack_src} $out/share/games/openclonk/Music.ocg
  '';

  enableParallelBuilding = true;

  buildInputs = [
    cmake gnome3.gtksourceview pcre freetype glew gtk3 libjpeg libpng SDL
    SDL_mixer libupnp tinyxml xorg.libpthreadstubs libxkbcommon xorg.libXdmcp
    pkgconfig gtest gmock readline epoxy at_spi2_core dbus libxml2
  ];

  meta = with stdenv.lib; {
    description = "Free multiplayer action game in which you control clonks, small but witty and nimble humanoid beings";
    homepage = http://openclonk.org;
    license = if enableSoundtrack then licenses.unfreeRedistributable else licenses.isc;
    platforms = platforms.all;
  };
}
