Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at netboot-syslinux-multiplatform 109 lines 2.3 kB view raw
1{ stdenv 2, lib 3, fetchFromGitHub 4, scons 5, pkg-config 6, udev 7, libX11 8, libXcursor 9, libXinerama 10, libXrandr 11, libXrender 12, libpulseaudio 13, libXi 14, libXext 15, libXfixes 16, freetype 17, openssl 18, alsa-lib 19, alsa-plugins 20, makeWrapper 21, libGLU 22, zlib 23, yasm 24, withUdev ? true 25}: 26 27let 28 options = { 29 touch = libXi != null; 30 pulseaudio = false; 31 udev = withUdev; 32 }; 33in 34stdenv.mkDerivation rec { 35 pname = "godot"; 36 version = "3.5.2"; 37 38 src = fetchFromGitHub { 39 owner = "godotengine"; 40 repo = "godot"; 41 rev = "${version}-stable"; 42 sha256 = "sha256-C+1J5N0ETL1qKust+2xP9uB4x9NwrMqIm8aFAivVYQw="; 43 }; 44 45 nativeBuildInputs = [ pkg-config makeWrapper ]; 46 buildInputs = [ 47 scons 48 udev 49 libX11 50 libXcursor 51 libXinerama 52 libXrandr 53 libXrender 54 libXi 55 libXext 56 libXfixes 57 freetype 58 openssl 59 alsa-lib 60 libpulseaudio 61 libGLU 62 zlib 63 yasm 64 ]; 65 66 patches = [ ./pkg_config_additions.patch ./dont_clobber_environment.patch ]; 67 68 enableParallelBuilding = true; 69 70 sconsFlags = [ "target=release_debug" "platform=x11" ]; 71 preConfigure = '' 72 sconsFlags+=" ${ 73 lib.concatStringsSep " " 74 (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options) 75 }" 76 ''; 77 78 outputs = [ "out" "dev" "man" ]; 79 80 installPhase = '' 81 mkdir -p "$out/bin" 82 cp bin/godot.* $out/bin/godot3 83 84 wrapProgram "$out/bin/godot3" \ 85 --set ALSA_PLUGIN_DIR ${alsa-plugins}/lib/alsa-lib 86 87 mkdir "$dev" 88 cp -r modules/gdnative/include $dev 89 90 mkdir -p "$man/share/man/man6" 91 cp misc/dist/linux/godot.6 "$man/share/man/man6/" 92 93 mkdir -p "$out"/share/{applications,icons/hicolor/scalable/apps} 94 cp misc/dist/linux/org.godotengine.Godot.desktop "$out/share/applications/org.godotengine.Godot3.desktop" 95 cp icon.svg "$out/share/icons/hicolor/scalable/apps/godot.svg" 96 cp icon.png "$out/share/icons/godot.png" 97 substituteInPlace "$out/share/applications/org.godotengine.Godot3.desktop" \ 98 --replace "Exec=godot" "Exec=$out/bin/godot3" \ 99 --replace "Godot Engine" "Godot Engine 3" 100 ''; 101 102 meta = with lib; { 103 homepage = "https://godotengine.org"; 104 description = "Free and Open Source 2D and 3D game engine"; 105 license = licenses.mit; 106 platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ]; 107 maintainers = with maintainers; [ twey ]; 108 }; 109}