nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 162 lines 3.6 kB view raw
1{ 2 lib, 3 stdenv, 4 cmake, 5 pkg-config, 6 git, 7 curl, 8 SDL2, 9 xercesc, 10 openal, 11 lua, 12 libvlc, 13 libjpeg, 14 wxGTK32, 15 cppunit, 16 ftgl, 17 glew, 18 libogg, 19 libvorbis, 20 buildEnv, 21 libpng, 22 fontconfig, 23 freetype, 24 xorg, 25 makeWrapper, 26 bash, 27 which, 28 zenity, 29 libGLU, 30 glib, 31 fetchFromGitHub, 32 fetchpatch, 33}: 34let 35 version = "3.13.0"; 36 lib-env = buildEnv { 37 name = "megaglest-lib-env"; 38 paths = [ 39 SDL2 40 xorg.libSM 41 xorg.libICE 42 xorg.libX11 43 xorg.libXext 44 xercesc 45 openal 46 libvorbis 47 lua 48 libjpeg 49 libpng 50 curl 51 fontconfig 52 ftgl 53 freetype 54 stdenv.cc.cc 55 glew 56 libGLU 57 wxGTK32 58 ]; 59 }; 60 path-env = buildEnv { 61 name = "megaglest-path-env"; 62 paths = [ 63 bash 64 which 65 zenity 66 ]; 67 }; 68in 69stdenv.mkDerivation { 70 pname = "megaglest"; 71 inherit version; 72 73 src = fetchFromGitHub { 74 owner = "MegaGlest"; 75 repo = "megaglest-source"; 76 rev = version; 77 fetchSubmodules = true; 78 sha256 = "0fb58a706nic14ss89zrigphvdiwy5s9dwvhscvvgrfvjpahpcws"; 79 }; 80 81 patches = [ 82 # Pull upstream fix for -fno-common toolchains 83 (fetchpatch { 84 name = "fno-common.patch"; 85 url = "https://github.com/MegaGlest/megaglest-source/commit/5a3520540276a6fd06f7c88e571b6462978e3eab.patch"; 86 sha256 = "0y554kjw56dikq87vs709pmq97hdx9hvqsk27f81v4g90m3b3qhi"; 87 }) 88 # Pull upstream and Debian fixes for wxWidgets 3.2 89 (fetchpatch { 90 name = "get-rid-of-manual-wxPaintEvent-creation-1.patch"; 91 url = "https://github.com/MegaGlest/megaglest-source/commit/e09ba53c436279588f769d6ce8852e74d58f8391.patch"; 92 hash = "sha256-1ZG6AjnLXW18wwad05kjH7W5rTaP1SDpZ5zLH4nRQt4="; 93 }) 94 (fetchpatch { 95 name = "get-rid-of-manual-wxPaintEvent-creation-2.patch"; 96 url = "https://sources.debian.org/data/main/m/megaglest/3.13.0-9/debian/patches/fbd0cfb17ed759d24aeb577a602b0d97f7895cc2.patch"; 97 hash = "sha256-aMDDboNdH22r7YOiZCEApwz+FpM60anBp82tLwiIH6g="; 98 }) 99 (fetchpatch { 100 name = "get-rid-of-manual-wxPaintEvent-creation-3.patch"; 101 url = "https://github.com/MegaGlest/megaglest-source/commit/5801b1fafff8ad9618248d4d5d5c751fdf52be2f.patch"; 102 hash = "sha256-/RpBoT1JsSFtOrAXphHrPp9DnTbaEN/2h8EZmQ9PIPU="; 103 }) 104 (fetchpatch { 105 name = "fix-editor-and-g3dviewer-for-wx-3.1.x.patch"; 106 url = "https://github.com/MegaGlest/megaglest-source/commit/789e1cdf371137b729e832e28a5feb6e97a3a243.patch"; 107 hash = "sha256-fK7vkHCu6bqVB6I7vMsWMGiczSdxVgo1KqqBNMkEbfM="; 108 }) 109 ]; 110 111 nativeBuildInputs = [ 112 cmake 113 pkg-config 114 makeWrapper 115 git 116 ]; 117 buildInputs = [ 118 curl 119 SDL2 120 xorg.libX11 121 xercesc 122 openal 123 lua 124 libpng 125 libjpeg 126 libvlc 127 wxGTK32 128 glib 129 cppunit 130 fontconfig 131 freetype 132 ftgl 133 glew 134 libogg 135 libvorbis 136 libGLU 137 ]; 138 139 cmakeFlags = [ 140 "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" 141 "-DBUILD_MEGAGLEST=On" 142 "-DBUILD_MEGAGLEST_MAP_EDITOR=On" 143 "-DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On" 144 "-DBUILD_MEGAGLEST_MODEL_VIEWER=On" 145 ]; 146 147 postInstall = '' 148 for i in $out/bin/*; do 149 wrapProgram $i \ 150 --prefix LD_LIBRARY_PATH ":" "${lib-env}/lib" \ 151 --prefix PATH ":" "${path-env}/bin" 152 done 153 ''; 154 155 meta = with lib; { 156 description = "Entertaining free (freeware and free software) and open source cross-platform 3D real-time strategy (RTS) game"; 157 license = licenses.gpl3; 158 homepage = "https://megaglest.org/"; 159 maintainers = [ maintainers.matejc ]; 160 platforms = platforms.linux; 161 }; 162}