mindustry: convert to gradle setup hook

chayleaf da8cbf47 83d8edbe

+366 -95
+72 -95
pkgs/games/mindustry/default.nix
··· 1 - { lib, stdenv, fetchurl 1 + { lib 2 + , stdenv 2 3 , fetchpatch 3 4 , makeWrapper 4 5 , makeDesktopItem ··· 6 7 , fetchFromGitHub 7 8 , gradle 8 9 , jdk17 9 - , perl 10 10 11 11 # for arc 12 12 , SDL2 13 13 , pkg-config 14 - , stb 15 14 , ant 15 + , curl 16 + , wget 16 17 , alsa-lib 17 18 , alsa-plugins 18 19 , glew ··· 42 43 buildVersion = makeBuildVersion version; 43 44 44 45 jdk = jdk17; 45 - gradleWithJdk = gradle.override { java = jdk; }; 46 46 47 47 selectedGlew = if enableWayland then glew-egl else glew; 48 48 ··· 65 65 rev = "v0.9"; 66 66 hash = "sha256-6KlqOtA19MxeqZttNyNrMU7pKqzlNiA4rBZKp9ekanc="; 67 67 }; 68 - freetypeSource = fetchurl { 69 - # This is pinned in Arc's extensions/freetype/build.gradle 70 - url = "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.gz"; 71 - hash = "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw="; 72 - }; 73 - glewSource = fetchurl { 74 - # This is pinned in Arc's backends/backend-sdl/build.gradle 75 - url = "https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip"; 76 - hash = "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ="; 77 - }; 78 - SDLmingwSource = fetchurl { 79 - # This is pinned in Arc's backends/backend-sdl/build.gradle 80 - url = "https://www.libsdl.org/release/SDL2-devel-2.0.20-mingw.tar.gz"; 81 - hash = "sha256-OAlNgqhX1sYjUuXFzex0lIxbTSXFnL0pjW0jNWiXa9E="; 68 + 69 + desktopItem = makeDesktopItem { 70 + name = "Mindustry"; 71 + desktopName = "Mindustry"; 72 + exec = "mindustry"; 73 + icon = "mindustry"; 74 + categories = [ "Game" ]; 82 75 }; 83 76 77 + in 78 + assert lib.assertMsg (enableClient || enableServer) 79 + "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; 80 + stdenv.mkDerivation { 81 + inherit pname version; 82 + 83 + unpackPhase = '' 84 + cp -r ${Mindustry} Mindustry 85 + cp -r ${Arc} Arc 86 + chmod -R u+w -- Mindustry Arc 87 + cp -r ${soloud} Arc/arc-core/csrc/soloud 88 + chmod -R u+w -- Arc/arc-core/csrc/soloud 89 + ''; 90 + 84 91 patches = [ 85 92 ./0001-fix-include-path-for-SDL2-on-linux.patch 86 93 # Fix build with gradle 8.8, remove on next Arc release ··· 96 103 extraPrefix = "Arc/"; 97 104 stripLen = 1; 98 105 }) 106 + (fetchpatch { 107 + url = "https://github.com/Anuken/Mindustry/commit/695dad201fb4c2b4252f2ee5abde32e968169ba5.patch"; 108 + hash = "sha256-bbTjyfUl+XFG/dgD1XPddVKD/ImOP5ARAP3q0FPnt58="; 109 + name = "always-use-local-arc-1.patch"; 110 + stripLen = 1; extraPrefix = "Mindustry/"; 111 + }) 112 + (fetchpatch { 113 + url = "https://github.com/Anuken/Mindustry/commit/f6082225e859c759c8d9c944250b6ecd490151ed.patch"; 114 + hash = "sha256-xFHdAUTS1EiHNQqw6qfzYk2LMr/DjeHoEzQfcfOUcFs="; 115 + name = "always-use-local-arc-2.patch"; 116 + stripLen = 1; extraPrefix = "Mindustry/"; 117 + }) 118 + (fetchpatch { 119 + url = "https://github.com/Anuken/Mindustry/commit/e4eadbbb7f35db3093a0a3d13272bdfbedfaead3.patch"; 120 + hash = "sha256-L/XQAxh6UgKsTVTgQKDXNRIAdtVtaY4ameT/Yb/+1p8="; 121 + name = "always-use-local-arc-3.patch"; 122 + stripLen = 1; extraPrefix = "Mindustry/"; 123 + }) 99 124 ]; 100 125 101 - unpackPhase = '' 102 - cp -r ${Mindustry} Mindustry 103 - cp -r ${Arc} Arc 104 - chmod -R u+w -- Mindustry Arc 105 - cp ${stb.src}/stb_image.h Arc/arc-core/csrc/ 106 - cp -r ${soloud} Arc/arc-core/csrc/soloud 107 - chmod -R u+w -- Arc 108 - ''; 109 - 110 - desktopItem = makeDesktopItem { 111 - name = "Mindustry"; 112 - desktopName = "Mindustry"; 113 - exec = "mindustry"; 114 - icon = "mindustry"; 115 - categories = [ "Game" ]; 116 - }; 117 - 118 - cleanupMindustrySrc = '' 126 + postPatch = '' 119 127 # Ensure the prebuilt shared objects don't accidentally get shipped 120 128 rm -r Arc/natives/natives-*/libs/* 121 129 rm -r Arc/backends/backend-*/libs/* 130 + 131 + cd Mindustry 122 132 123 133 # Remove unbuildable iOS stuff 124 - sed -i '/^project(":ios"){/,/^}/d' Mindustry/build.gradle 125 - sed -i '/robo(vm|VM)/d' Mindustry/build.gradle 126 - rm Mindustry/ios/build.gradle 134 + sed -i '/^project(":ios"){/,/^}/d' build.gradle 135 + sed -i '/robo(vm|VM)/d' build.gradle 136 + rm ios/build.gradle 127 137 ''; 128 138 129 - # fake build to pre-download deps into fixed-output derivation 130 - deps = stdenv.mkDerivation { 131 - pname = "${pname}-deps"; 132 - inherit version unpackPhase patches; 133 - postPatch = cleanupMindustrySrc; 134 - 135 - nativeBuildInputs = [ gradleWithJdk perl ]; 136 - # Here we download dependencies for both the server and the client so 137 - # we only have to specify one hash for 'deps'. Deps can be garbage 138 - # collected after the build, so this is not really an issue. 139 - buildPhase = '' 140 - pushd Mindustry 141 - export GRADLE_USER_HOME=$(mktemp -d) 142 - gradle --no-daemon resolveDependencies 143 - popd 144 - ''; 145 - # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) 146 - installPhase = '' 147 - find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ 148 - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 149 - | sh 150 - ''; 151 - outputHashMode = "recursive"; 152 - outputHash = "sha256-hbWLsWorEo+1BBURvrFMXpxvZjJBZ1p7HVlJN5e5JZc="; 139 + mitmCache = gradle.fetchDeps { 140 + inherit pname; 141 + data = ./deps.json; 153 142 }; 154 143 155 - in 156 - assert lib.assertMsg (enableClient || enableServer) 157 - "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; 158 - stdenv.mkDerivation rec { 159 - inherit pname version unpackPhase patches; 160 - 161 - postPatch = cleanupMindustrySrc; 144 + __darwinAllowLocalNetworking = true; 162 145 163 146 buildInputs = lib.optionals enableClient [ 164 147 SDL2 ··· 167 150 ]; 168 151 nativeBuildInputs = [ 169 152 pkg-config 170 - gradleWithJdk 153 + gradle 171 154 makeWrapper 172 155 jdk 173 156 ] ++ lib.optionals enableClient [ 174 157 ant 175 158 copyDesktopItems 159 + curl 160 + wget 176 161 ]; 177 162 178 163 desktopItems = lib.optional enableClient desktopItem; 179 164 180 - buildPhase = with lib; '' 181 - export GRADLE_USER_HOME=$(mktemp -d) 165 + gradleFlags = [ "-Pbuildversion=${buildVersion}" "-Dorg.gradle.java.home=${jdk}" ]; 182 166 183 - # point to offline repo 184 - sed -ie "1ipluginManagement { repositories { maven { url '${deps}' } } }; " Mindustry/settings.gradle 185 - sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" Mindustry/build.gradle 186 - sed -ie "s#mavenCentral()#mavenCentral(); maven { url '${deps}' }#g" Arc/build.gradle 187 - sed -ie "s#wget.*freetype.* -O #cp ${freetypeSource} #" Arc/extensions/freetype/build.gradle 188 - sed -ie "/curl.*glew/{;s#curl -o #cp ${glewSource} #;s# -L http.*\.zip##;}" Arc/backends/backend-sdl/build.gradle 189 - sed -ie "/curl.*sdlmingw/{;s#curl -o #cp ${SDLmingwSource} #;s# -L http.*\.tar.gz##;}" Arc/backends/backend-sdl/build.gradle 190 - 191 - pushd Mindustry 167 + buildPhase = with lib; optionalString enableServer '' 168 + gradle server:dist 192 169 '' + optionalString enableClient '' 193 - 194 170 pushd ../Arc 195 - gradle --offline --no-daemon jnigenBuild -Pbuildversion=${buildVersion} 196 - gradle --offline --no-daemon jnigenJarNativesDesktop -Pbuildversion=${buildVersion} 171 + gradle jnigenBuild 172 + gradle jnigenJarNativesDesktop 197 173 glewlib=${lib.getLib selectedGlew}/lib/libGLEW.so 198 174 sdllib=${lib.getLib SDL2}/lib/libSDL2.so 199 175 patchelf backends/backend-sdl/libs/linux64/libsdl-arc*.so \ ··· 204 180 cp extensions/freetype/libs/*/* natives/natives-freetype-desktop/libs/ 205 181 popd 206 182 207 - gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion} 208 - '' + optionalString enableServer '' 209 - gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion} 183 + gradle desktop:dist 210 184 ''; 211 185 212 186 installPhase = with lib; let ··· 247 221 runHook postInstall 248 222 ''; 249 223 250 - passthru.tests = { 251 - nixosTest = nixosTests.mindustry; 252 - }; 224 + postGradleUpdate = '' 225 + # this fetches non-gradle dependencies 226 + cd ../Arc 227 + gradle preJni 228 + ''; 229 + 230 + passthru.tests.nixosTest = nixosTests.mindustry; 253 231 254 232 meta = with lib; { 255 233 homepage = "https://mindustrygame.github.io/"; ··· 261 239 ]; 262 240 license = licenses.gpl3Plus; 263 241 maintainers = with maintainers; [ chkno fgaz thekostins ]; 264 - platforms = if enableClient then platforms.x86_64 else platforms.linux; 265 - # Hash mismatch on darwin: 266 - # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293 267 - broken = stdenv.isDarwin; 242 + platforms = platforms.all; 243 + # TODO alsa-lib is linux-only, figure out what dependencies are required on Darwin 244 + broken = enableClient && stdenv.isDarwin; 268 245 }; 269 246 }
+294
pkgs/games/mindustry/deps.json
··· 1 + { 2 + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", 3 + "!version": 1, 4 + "https://download.savannah.gnu.org": { 5 + "releases/freetype/freetype-2.10.4": { 6 + "tar.gz": "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw=" 7 + } 8 + }, 9 + "https://github.com": { 10 + "nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0": { 11 + "zip": "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ=" 12 + } 13 + }, 14 + "https://jitpack.io/com/github": { 15 + "Anuken#jabel/0.9.0": { 16 + "jar": "sha256-uFYvq/P7dVZNH8xfSZPmm57JI+h47A7YqOaN3bsFLuo=", 17 + "module": "sha256-r0Hiyh4MXzQkBudNhixHcXf1QOr4GWU841ypzRa0w/g=", 18 + "pom": "sha256-2Zp//AsIqW7/+5ybmtConz5ykh3ZYrFBi6SzLuKTz8A=" 19 + }, 20 + "Anuken#rhino/73a812444ac388ac2d94013b5cadc8f70b7ea027": { 21 + "jar": "sha256-g2+szbtgsHvalu5F4kygVDN89kk0zvzVSw3EOcAL11I=", 22 + "module": "sha256-BbXoWzXoJGKhH6kA6EiluDHhfs3th9X+ojLLZuGISOg=", 23 + "pom": "sha256-ngLvPqdMq7ayWlDHf7qr8MGYsDh+uMK6OYcDX9y5bXk=" 24 + }, 25 + "Anuken#steamworks4j/0b86023401880bb5e586bc404bedbaae9b1f1c94": { 26 + "jar": "sha256-YbaPhCjWtlExwQ1dFNA6JrkiAfQYWxJ0VRV9rLnoYhY=", 27 + "pom": "sha256-ktvhk8s3T1zswrYWuXz+cWHRyK3YbkikD5Sv/gjcfz4=" 28 + }, 29 + "libgdx/gdx-jnigen#gdx-jnigen-gradle/dffc32eecbf77aad264991ea44f1767a58cbee9d": { 30 + "jar": "sha256-nuUxM4zDV48+8Z+Rsn2dhEhkH4wOcfG62lz84BUhDH0=", 31 + "module": "sha256-OU9DEb3A9A7OtnJ6jQkS32KImMlNn9NX7eKMX4YVh5E=", 32 + "pom": "sha256-0THLPDNZDZe9PbIEPl71pGwL7E6Oq2Y5LiVevltdbP8=" 33 + }, 34 + "libgdx/gdx-jnigen#gdx-jnigen/28dd11fa4c33a7ae9e58897912b52ba7d53d54fe": { 35 + "jar": "sha256-fPszziBPrTDACbBuL6OxJ2oK1iA4izBk4TMHK53b+GQ=", 36 + "module": "sha256-0RR9vgSqD1ISADHSO5OV7rxi+6HM9h0ZO4kEYw/Ao4Y=", 37 + "pom": "sha256-vnz59i+3/wY9RizYWGMOuebfrZO4HrpOYV73ShIFH2g=" 38 + }, 39 + "libgdx/gdx-jnigen#gdx-jnigen/dffc32eecbf77aad264991ea44f1767a58cbee9d": { 40 + "jar": "sha256-bd8xr4/YgvQbvdFkayXdJKpMvYwE9XlISof20vsfcSU=", 41 + "module": "sha256-zQ1DewRtrsdTgxXINq7pOa+UJwnDNrGsVKnX0K/AWRQ=", 42 + "pom": "sha256-HWFvvs+x6DyJioqkRDDVvf0GCKfxPTjhdec8JC2PZvA=" 43 + } 44 + }, 45 + "https://plugins.gradle.org/m2/org/jetbrains/kotlin": { 46 + "jvm#org.jetbrains.kotlin.jvm.gradle.plugin/1.6.0": { 47 + "pom": "sha256-FeMDwR4tRlKdxOmvd853pFyge29WJvHjkFslMyVlJAg=" 48 + }, 49 + "kapt#org.jetbrains.kotlin.kapt.gradle.plugin/1.6.0": { 50 + "pom": "sha256-EPl8xsN9xufqKiw5ptVSBLiMrZkniaiGvLSaH/RURV8=" 51 + } 52 + }, 53 + "https://raw.githubusercontent.com": { 54 + "nothings/stb/e140649ccf40818781b7e408f6228a486f6d254b/stb_image": { 55 + "h": "sha256-jlsNcX38ioNMl+8gLSDnjQg9AJWG4XMcmFgX0BVdVow=" 56 + } 57 + }, 58 + "https://repo.maven.apache.org/maven2": { 59 + "com/github/gundy#semver4j/0.16.4": { 60 + "pom": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0=" 61 + }, 62 + "com/github/gundy#semver4j/0.16.4/nodeps": { 63 + "jar": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA=" 64 + }, 65 + "com/github/javaparser#javaparser-core/3.14.14": { 66 + "jar": "sha256-Z4GYXisXFCvQfhp75Zt5NIXLAms3ZnN30WYQrpgUi24=", 67 + "pom": "sha256-70ERyN/Uh+Zp5w1Qzz2z8O3YuTLKvjXmYzuzzuuGpIo=" 68 + }, 69 + "com/github/javaparser#javaparser-parent/3.14.14": { 70 + "pom": "sha256-RwgtW3eLzkmjEnRtUWHJ48yhfYwh2eO+MTF68Io2FDc=" 71 + }, 72 + "com/google/code/findbugs#jsr305/3.0.2": { 73 + "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=", 74 + "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" 75 + }, 76 + "com/google/code/gson#gson-parent/2.8.6": { 77 + "pom": "sha256-NzZGOFnsGSZyleiUlAroKo9oRBMDESL+Nc58/34wp3Q=" 78 + }, 79 + "com/google/code/gson#gson/2.8.6": { 80 + "jar": "sha256-yPtIOQVNKAswM/gA0fWpfeLwKOuLoutFitKH5Tbz8l8=", 81 + "pom": "sha256-IXRBWmRzMtMP2gS9HPxwij7MhOr3UX9ZYYjYJE4QORE=" 82 + }, 83 + "com/google/errorprone#error_prone_annotations/2.3.4": { 84 + "jar": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=", 85 + "pom": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0=" 86 + }, 87 + "com/google/errorprone#error_prone_parent/2.3.4": { 88 + "pom": "sha256-QElbQ3pg0jmPD9/AVLidnDlKgjR6J0oHIcLpUKQwIYY=" 89 + }, 90 + "com/google/guava#failureaccess/1.0.1": { 91 + "jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=", 92 + "pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" 93 + }, 94 + "com/google/guava#guava-parent/26.0-android": { 95 + "pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ=" 96 + }, 97 + "com/google/guava#guava-parent/29.0-jre": { 98 + "pom": "sha256-alf54C9436L0vaNBYGWmRCauG2beIoz24Zbi4ZElU78=" 99 + }, 100 + "com/google/guava#guava/29.0-jre": { 101 + "jar": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=", 102 + "pom": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY=" 103 + }, 104 + "com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": { 105 + "jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=", 106 + "pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" 107 + }, 108 + "com/google/j2objc#j2objc-annotations/1.3": { 109 + "jar": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=", 110 + "pom": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU=" 111 + }, 112 + "com/squareup#javapoet/1.12.1": { 113 + "jar": "sha256-g/D9S66+w78p7jrSwCSzBl3e+CWlqin33PXBifn6KWI=", 114 + "pom": "sha256-pxrD2PJ8ua0yyHtdiVnyLWca60YMejVdCfV35MV+TF8=" 115 + }, 116 + "de/undercouch#gradle-download-task/4.1.1": { 117 + "jar": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=", 118 + "pom": "sha256-heZgcmDbvbXoXxmIhAsNmsS+kRnd6QobrKjqd1ZGQVo=" 119 + }, 120 + "net/java/dev/jna#jna/5.6.0": { 121 + "jar": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=", 122 + "pom": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg=" 123 + }, 124 + "org/apiguardian#apiguardian-api/1.1.0": { 125 + "jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=", 126 + "pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE=" 127 + }, 128 + "org/checkerframework#checker-qual/2.11.1": { 129 + "jar": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=", 130 + "pom": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w=" 131 + }, 132 + "org/jetbrains#annotations/13.0": { 133 + "jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=", 134 + "pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" 135 + }, 136 + "org/jetbrains/intellij/deps#trove4j/1.0.20181211": { 137 + "jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=", 138 + "pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo=" 139 + }, 140 + "org/jetbrains/kotlin#kotlin-android-extensions/1.6.0": { 141 + "jar": "sha256-TPrz8BIFF78dbY07r8+uHomMZ9P3yLdocIG/uBk8ftQ=", 142 + "pom": "sha256-hlMj+0VThiKBTO4p4gN1AamL/eUwVzg2+gCBPvSVcR4=" 143 + }, 144 + "org/jetbrains/kotlin#kotlin-annotation-processing-gradle/1.6.0": { 145 + "jar": "sha256-hnP///sAqxYDPZD2x/7BC10xDKQPvkNRmrQRi/yEF5w=", 146 + "pom": "sha256-G0C/0FxYRRS55Z1YnjPCZb456Z6gRvhHxe411uUFjiM=" 147 + }, 148 + "org/jetbrains/kotlin#kotlin-build-common/1.6.0": { 149 + "jar": "sha256-4kp7cGukVhi07kOWa2JQETbQBgsDL46fGNGD2gWxv0M=", 150 + "pom": "sha256-93xRil6Ux4dnVflhEApdtQuSQFTH8GQqSIMeJagk8pE=" 151 + }, 152 + "org/jetbrains/kotlin#kotlin-compiler-embeddable/1.6.0": { 153 + "jar": "sha256-A2aEPNLe/dWDxrFrELwyuF8oxb+VEPEORMiG9b0kw4g=", 154 + "pom": "sha256-KlWcBwvS5YxY2x5/z2T7t92+hHciXec9Zu4AAQiocCQ=" 155 + }, 156 + "org/jetbrains/kotlin#kotlin-compiler-runner/1.6.0": { 157 + "jar": "sha256-avdSCvhKRCxqvxvXKFunG6xzZWYLLQj9BMhOw1NjPUk=", 158 + "pom": "sha256-Oc+l/Aqzv3VwSfj9Dx6bNbYrebnTJdLPlwLVqaDY/jc=" 159 + }, 160 + "org/jetbrains/kotlin#kotlin-daemon-client/1.6.0": { 161 + "jar": "sha256-bBsv3jMVh50Ml35fJRU5fngpvQrfiSHkxf262DLrwqE=", 162 + "pom": "sha256-gatFLaX29bavP6ggpywNKNCfVUTU7EXafxFDG6Xtkhg=" 163 + }, 164 + "org/jetbrains/kotlin#kotlin-daemon-embeddable/1.6.0": { 165 + "jar": "sha256-INCHBqoXdi/lqwOpFtYsm37iEdIIRKiqvg24PZ2QKEo=", 166 + "pom": "sha256-dTHQzBNuWUgjMpvMExxPHv4XP8OVr4Lus4/SZhbckfY=" 167 + }, 168 + "org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.6.0": { 169 + "jar": "sha256-yGksM4gmxIQlv8h/q2nLef4tT1+B/wWMkpQYvw2pfRU=", 170 + "pom": "sha256-HP5CdZvSCiU6S36NvQ5yll5nReE1Duzd6lOZsjy40Wg=" 171 + }, 172 + "org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.6.0": { 173 + "jar": "sha256-ne9NHPDZV3pRGiqk9/MQ7MwkJDsFwCpxelExxMj5ll4=", 174 + "pom": "sha256-aZyyu6C03O/rmbelzYHM8MLOPWi8AVgZCAli7mflbUs=" 175 + }, 176 + "org/jetbrains/kotlin#kotlin-gradle-plugin/1.6.0": { 177 + "jar": "sha256-twN61m6wybWbrcqiONHFQmcVt5eqdwk0cwe3XBrawWo=", 178 + "pom": "sha256-G6PfHEnY5ZBuWyGdFyCRd7nnb4M9xPFuwbjPjRA/qN4=" 179 + }, 180 + "org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.6.0": { 181 + "jar": "sha256-/GqznpDYIibZuLzOAYdhZOW6/RrAogPz8DB4yxtIMB8=", 182 + "pom": "sha256-elUGa/rRTIyZqq8GCHV+uKfl7LzODzC9J+56qWtWoAk=" 183 + }, 184 + "org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.6.0": { 185 + "jar": "sha256-x8gRYmPShf5TjnwZaEHiNaqPe52fasNhP4jeU7Jh2MM=", 186 + "pom": "sha256-htOIK0/IKs3DheQpnn76HaZQvzUG/lqg+F5FzNwmmss=" 187 + }, 188 + "org/jetbrains/kotlin#kotlin-native-utils/1.6.0": { 189 + "jar": "sha256-oLD9fer0/hCwZxNVJYvGN1nj0kpxFc7/h7x0G/p86ew=", 190 + "pom": "sha256-a9fh1Kc7At/mYvqDdkrikRPrWqItrdGKVn8cfpdCQhs=" 191 + }, 192 + "org/jetbrains/kotlin#kotlin-project-model/1.6.0": { 193 + "jar": "sha256-OBNdP5lfxQXWBK7S6CrFuoWLKmo+R2iZw7i+R/0iK2g=", 194 + "pom": "sha256-sMn75G5kDHVwJEMc9+p5PdmN2nbRFe9K5OXz1B9nH9Q=" 195 + }, 196 + "org/jetbrains/kotlin#kotlin-reflect/1.6.0": { 197 + "jar": "sha256-xhYYhCCSIdt/XdsDG7SAo8RruQ1bZdfMAWexSaqpxJQ=", 198 + "pom": "sha256-hcz47mWEylEpbV8yn+zAIerbRbxqLDu9qMrmAvWO4lQ=" 199 + }, 200 + "org/jetbrains/kotlin#kotlin-script-runtime/1.6.0": { 201 + "jar": "sha256-3coPdlxBbnek2IFvPS327alT9hr4EXN4RqIgMyJaDlc=", 202 + "pom": "sha256-GsP9ZI4oCa3h+13heKISaNPXurUYNV7dTEmAXMsx1c4=" 203 + }, 204 + "org/jetbrains/kotlin#kotlin-scripting-common/1.6.0": { 205 + "jar": "sha256-FmmbBwr8RCIwDJ7WboHpi2X3xpH6qFK41EGV5QndbSI=", 206 + "pom": "sha256-9l4xIUhL0lNnX9BqxOiCkuDk8zV7kBKjRYKlc02OOVA=" 207 + }, 208 + "org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.6.0": { 209 + "jar": "sha256-LNHG9q9pwWt5NNfY1nwYM0m0NPRQSC1yKalgcTb6BEc=", 210 + "pom": "sha256-4jtqC3HdlDRIRzwooThIk8LMx6tK9hMwCVuFEmBYMvo=" 211 + }, 212 + "org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.6.0": { 213 + "jar": "sha256-5L1IkGdG5M0Z4BZEVZncomg6mU2gasOMrTg6rEgzjag=", 214 + "pom": "sha256-ZX90rM8Q8WYXJBIvDgLIBkMFyuLSgAxZQmqIQG80cPE=" 215 + }, 216 + "org/jetbrains/kotlin#kotlin-scripting-jvm/1.6.0": { 217 + "jar": "sha256-X2p+onTLbGxDcglKNXLfKjkqpTifFVO4JIc9YtYANlI=", 218 + "pom": "sha256-nzZY4pTKV2EytPaUIOpJsp3twftsDl0HqygOq75tCzY=" 219 + }, 220 + "org/jetbrains/kotlin#kotlin-stdlib-common/1.6.0": { 221 + "jar": "sha256-ZEpyV8I7UaH9UGiWDkCSLj5SwhnxHs4+BAo6vHSCPyI=", 222 + "pom": "sha256-iZ6XwgKLX3or2vZ1H6KgG2h+PuKngXZ8iiJ8v/tsAYQ=" 223 + }, 224 + "org/jetbrains/kotlin#kotlin-stdlib/1.6.0": { 225 + "jar": "sha256-EV2uowsNSEr88jYCN7nZU39IpKLwPzzCoWV338bpA0I=", 226 + "pom": "sha256-cSpt3XF8zVsNUOdMM16TqbGRBSzXu4KWBSAJu4XJRBI=" 227 + }, 228 + "org/jetbrains/kotlin#kotlin-tooling-metadata/1.6.0": { 229 + "jar": "sha256-X3m1R/gM66SC1vcYRLI0ReEJ9oXrdEgQRGeM11worXc=", 230 + "pom": "sha256-yYlWnKkvPwTPHmuhScQ8SVao2dyXk5vkmPHfUvQMwsU=" 231 + }, 232 + "org/jetbrains/kotlin#kotlin-util-io/1.6.0": { 233 + "jar": "sha256-rbeHTvdxKKs7CVP/SeyAEjnIN/5xMcMUfO+duLvfVzk=", 234 + "pom": "sha256-PGMhnFxVPRyfo2HTbtzZsDXL6QzpS86hqhR4F3IvY5w=" 235 + }, 236 + "org/jetbrains/kotlin#kotlin-util-klib/1.6.0": { 237 + "jar": "sha256-qWMcC3gjxpuNM1AqKGPnV0MI2fnBLj8o9LW79sKkH3Q=", 238 + "pom": "sha256-YJjHylRvWZ35UdQOKaAdqT9NepB1l5Uy7hSSmzjE42g=" 239 + }, 240 + "org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": { 241 + "jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=", 242 + "module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=", 243 + "pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" 244 + }, 245 + "org/junit#junit-bom/5.7.1": { 246 + "module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=", 247 + "pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q=" 248 + }, 249 + "org/junit/jupiter#junit-jupiter-api/5.7.1": { 250 + "jar": "sha256-znuYW8Rp4mJXWaTrxFUzxwWBoFo0gnjB1kCOmy414xQ=", 251 + "module": "sha256-AiFvaghBm7NdVHeGPZ0hpoxXWRqol7qYGmHFVFZWzX4=", 252 + "pom": "sha256-1Vvisj13FDKXB3IEMgey5mpnJK4CvVGStyFuS3AbxiM=" 253 + }, 254 + "org/junit/jupiter#junit-jupiter-engine/5.7.1": { 255 + "jar": "sha256-VmFsk1CzYk92z/72skznuyIpFb/VaI+W089M7zTwd8s=", 256 + "module": "sha256-2A5S75X2XNxQT8Mb4KArJYnJ78JzpCVcs2NyPOVMr/8=", 257 + "pom": "sha256-gRF+OjoCDf3W8wkcXseU0stJhAcxrPQogxxWmQEvTLs=" 258 + }, 259 + "org/junit/jupiter#junit-jupiter-params/5.7.1": { 260 + "jar": "sha256-jv/df4pLpVWLVoGE3uCACLJEPIbGc++B3lhh+8fvBhM=", 261 + "module": "sha256-TUOYtYCpnIVNnxF6bk44o9GOZSJ2obzmeaDDx5nGFL0=", 262 + "pom": "sha256-UIPD5bw9OhjVY6M0fVPi3f35ONdh60TbsL9PQgX+6Sw=" 263 + }, 264 + "org/junit/platform#junit-platform-commons/1.7.1": { 265 + "jar": "sha256-fFRr6GhkcY+6zrefqE/x06UWUA/EKPGyHQYcLg+8Wks=", 266 + "module": "sha256-5abLDsz80tAuaGvyt2OnBCTQiB2/+uvjp/kxShhT+TE=", 267 + "pom": "sha256-t8GENMTUsn5yO9SKr5ercK7IwMra1MFTkvvdFEykpQo=" 268 + }, 269 + "org/junit/platform#junit-platform-engine/1.7.1": { 270 + "jar": "sha256-N99anNbbwfdUuitG+WuIdKg2YOF5a/OMc48CLc+Gwj8=", 271 + "module": "sha256-S2knc2Ouooq1DFpnYZ++q/jAgk5JOOYmC6wEjlvrga8=", 272 + "pom": "sha256-dmAvWZVKo9+mjjHIDKibb7ouoAG0+wbLUfoV6tfIWjA=" 273 + }, 274 + "org/lz4#lz4-java/1.8.0": { 275 + "jar": "sha256-10ozNPs1GVAJszipUfkYID1rvKPR01kDPcM+3Rytye8=", 276 + "pom": "sha256-DbittR4TJFSlxAbeuy8aDfgfk91Z++IMuUcQKZRokDQ=" 277 + }, 278 + "org/opentest4j#opentest4j/1.2.0": { 279 + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", 280 + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" 281 + }, 282 + "org/sonatype/oss#oss-parent/7": { 283 + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" 284 + }, 285 + "org/sonatype/oss#oss-parent/9": { 286 + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" 287 + } 288 + }, 289 + "https://www.libsdl.org": { 290 + "release/SDL2-devel-2.0.20-mingw": { 291 + "tar.gz": "sha256-OAlNgqhX1sYjUuXFzex0lIxbTSXFnL0pjW0jNWiXa9E=" 292 + } 293 + } 294 + }