mindustry: convert to gradle setup hook

This commit is contained in:
chayleaf 2023-12-10 15:44:47 +07:00
parent 83d8edbede
commit da8cbf4778
No known key found for this signature in database
GPG Key ID: 78171AD46227E68E
2 changed files with 366 additions and 95 deletions

View File

@ -1,4 +1,5 @@
{ lib, stdenv, fetchurl
{ lib
, stdenv
, fetchpatch
, makeWrapper
, makeDesktopItem
@ -6,13 +7,13 @@
, fetchFromGitHub
, gradle
, jdk17
, perl
# for arc
, SDL2
, pkg-config
, stb
, ant
, curl
, wget
, alsa-lib
, alsa-plugins
, glew
@ -42,7 +43,6 @@ let
buildVersion = makeBuildVersion version;
jdk = jdk17;
gradleWithJdk = gradle.override { java = jdk; };
selectedGlew = if enableWayland then glew-egl else glew;
@ -65,22 +65,29 @@ let
rev = "v0.9";
hash = "sha256-6KlqOtA19MxeqZttNyNrMU7pKqzlNiA4rBZKp9ekanc=";
};
freetypeSource = fetchurl {
# This is pinned in Arc's extensions/freetype/build.gradle
url = "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.gz";
hash = "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw=";
};
glewSource = fetchurl {
# This is pinned in Arc's backends/backend-sdl/build.gradle
url = "https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip";
hash = "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ=";
};
SDLmingwSource = fetchurl {
# This is pinned in Arc's backends/backend-sdl/build.gradle
url = "https://www.libsdl.org/release/SDL2-devel-2.0.20-mingw.tar.gz";
hash = "sha256-OAlNgqhX1sYjUuXFzex0lIxbTSXFnL0pjW0jNWiXa9E=";
desktopItem = makeDesktopItem {
name = "Mindustry";
desktopName = "Mindustry";
exec = "mindustry";
icon = "mindustry";
categories = [ "Game" ];
};
in
assert lib.assertMsg (enableClient || enableServer)
"mindustry: at least one of 'enableClient' and 'enableServer' must be true";
stdenv.mkDerivation {
inherit pname version;
unpackPhase = ''
cp -r ${Mindustry} Mindustry
cp -r ${Arc} Arc
chmod -R u+w -- Mindustry Arc
cp -r ${soloud} Arc/arc-core/csrc/soloud
chmod -R u+w -- Arc/arc-core/csrc/soloud
'';
patches = [
./0001-fix-include-path-for-SDL2-on-linux.patch
# Fix build with gradle 8.8, remove on next Arc release
@ -96,69 +103,45 @@ let
extraPrefix = "Arc/";
stripLen = 1;
})
(fetchpatch {
url = "https://github.com/Anuken/Mindustry/commit/695dad201fb4c2b4252f2ee5abde32e968169ba5.patch";
hash = "sha256-bbTjyfUl+XFG/dgD1XPddVKD/ImOP5ARAP3q0FPnt58=";
name = "always-use-local-arc-1.patch";
stripLen = 1; extraPrefix = "Mindustry/";
})
(fetchpatch {
url = "https://github.com/Anuken/Mindustry/commit/f6082225e859c759c8d9c944250b6ecd490151ed.patch";
hash = "sha256-xFHdAUTS1EiHNQqw6qfzYk2LMr/DjeHoEzQfcfOUcFs=";
name = "always-use-local-arc-2.patch";
stripLen = 1; extraPrefix = "Mindustry/";
})
(fetchpatch {
url = "https://github.com/Anuken/Mindustry/commit/e4eadbbb7f35db3093a0a3d13272bdfbedfaead3.patch";
hash = "sha256-L/XQAxh6UgKsTVTgQKDXNRIAdtVtaY4ameT/Yb/+1p8=";
name = "always-use-local-arc-3.patch";
stripLen = 1; extraPrefix = "Mindustry/";
})
];
unpackPhase = ''
cp -r ${Mindustry} Mindustry
cp -r ${Arc} Arc
chmod -R u+w -- Mindustry Arc
cp ${stb.src}/stb_image.h Arc/arc-core/csrc/
cp -r ${soloud} Arc/arc-core/csrc/soloud
chmod -R u+w -- Arc
'';
desktopItem = makeDesktopItem {
name = "Mindustry";
desktopName = "Mindustry";
exec = "mindustry";
icon = "mindustry";
categories = [ "Game" ];
};
cleanupMindustrySrc = ''
postPatch = ''
# Ensure the prebuilt shared objects don't accidentally get shipped
rm -r Arc/natives/natives-*/libs/*
rm -r Arc/backends/backend-*/libs/*
cd Mindustry
# Remove unbuildable iOS stuff
sed -i '/^project(":ios"){/,/^}/d' Mindustry/build.gradle
sed -i '/robo(vm|VM)/d' Mindustry/build.gradle
rm Mindustry/ios/build.gradle
sed -i '/^project(":ios"){/,/^}/d' build.gradle
sed -i '/robo(vm|VM)/d' build.gradle
rm ios/build.gradle
'';
# fake build to pre-download deps into fixed-output derivation
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit version unpackPhase patches;
postPatch = cleanupMindustrySrc;
nativeBuildInputs = [ gradleWithJdk perl ];
# Here we download dependencies for both the server and the client so
# we only have to specify one hash for 'deps'. Deps can be garbage
# collected after the build, so this is not really an issue.
buildPhase = ''
pushd Mindustry
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon resolveDependencies
popd
'';
# 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)
installPhase = ''
find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
'';
outputHashMode = "recursive";
outputHash = "sha256-hbWLsWorEo+1BBURvrFMXpxvZjJBZ1p7HVlJN5e5JZc=";
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
in
assert lib.assertMsg (enableClient || enableServer)
"mindustry: at least one of 'enableClient' and 'enableServer' must be true";
stdenv.mkDerivation rec {
inherit pname version unpackPhase patches;
postPatch = cleanupMindustrySrc;
__darwinAllowLocalNetworking = true;
buildInputs = lib.optionals enableClient [
SDL2
@ -167,33 +150,26 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [
pkg-config
gradleWithJdk
gradle
makeWrapper
jdk
] ++ lib.optionals enableClient [
ant
copyDesktopItems
curl
wget
];
desktopItems = lib.optional enableClient desktopItem;
buildPhase = with lib; ''
export GRADLE_USER_HOME=$(mktemp -d)
gradleFlags = [ "-Pbuildversion=${buildVersion}" "-Dorg.gradle.java.home=${jdk}" ];
# point to offline repo
sed -ie "1ipluginManagement { repositories { maven { url '${deps}' } } }; " Mindustry/settings.gradle
sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" Mindustry/build.gradle
sed -ie "s#mavenCentral()#mavenCentral(); maven { url '${deps}' }#g" Arc/build.gradle
sed -ie "s#wget.*freetype.* -O #cp ${freetypeSource} #" Arc/extensions/freetype/build.gradle
sed -ie "/curl.*glew/{;s#curl -o #cp ${glewSource} #;s# -L http.*\.zip##;}" Arc/backends/backend-sdl/build.gradle
sed -ie "/curl.*sdlmingw/{;s#curl -o #cp ${SDLmingwSource} #;s# -L http.*\.tar.gz##;}" Arc/backends/backend-sdl/build.gradle
pushd Mindustry
buildPhase = with lib; optionalString enableServer ''
gradle server:dist
'' + optionalString enableClient ''
pushd ../Arc
gradle --offline --no-daemon jnigenBuild -Pbuildversion=${buildVersion}
gradle --offline --no-daemon jnigenJarNativesDesktop -Pbuildversion=${buildVersion}
gradle jnigenBuild
gradle jnigenJarNativesDesktop
glewlib=${lib.getLib selectedGlew}/lib/libGLEW.so
sdllib=${lib.getLib SDL2}/lib/libSDL2.so
patchelf backends/backend-sdl/libs/linux64/libsdl-arc*.so \
@ -204,9 +180,7 @@ stdenv.mkDerivation rec {
cp extensions/freetype/libs/*/* natives/natives-freetype-desktop/libs/
popd
gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion}
'' + optionalString enableServer ''
gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion}
gradle desktop:dist
'';
installPhase = with lib; let
@ -247,9 +221,13 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
passthru.tests = {
nixosTest = nixosTests.mindustry;
};
postGradleUpdate = ''
# this fetches non-gradle dependencies
cd ../Arc
gradle preJni
'';
passthru.tests.nixosTest = nixosTests.mindustry;
meta = with lib; {
homepage = "https://mindustrygame.github.io/";
@ -261,9 +239,8 @@ stdenv.mkDerivation rec {
];
license = licenses.gpl3Plus;
maintainers = with maintainers; [ chkno fgaz thekostins ];
platforms = if enableClient then platforms.x86_64 else platforms.linux;
# Hash mismatch on darwin:
# https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293
broken = stdenv.isDarwin;
platforms = platforms.all;
# TODO alsa-lib is linux-only, figure out what dependencies are required on Darwin
broken = enableClient && stdenv.isDarwin;
};
}

294
pkgs/games/mindustry/deps.json generated Normal file
View File

@ -0,0 +1,294 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://download.savannah.gnu.org": {
"releases/freetype/freetype-2.10.4": {
"tar.gz": "sha256-Xqt5XrsjrHcAHPtot9TVC11sdGkkewsBsslTJp9ljaw="
}
},
"https://github.com": {
"nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0": {
"zip": "sha256-qQRqkTd0OVoJXtzAsKwtgcOqzKYXh7OYOblB6b4U4NQ="
}
},
"https://jitpack.io/com/github": {
"Anuken#jabel/0.9.0": {
"jar": "sha256-uFYvq/P7dVZNH8xfSZPmm57JI+h47A7YqOaN3bsFLuo=",
"module": "sha256-r0Hiyh4MXzQkBudNhixHcXf1QOr4GWU841ypzRa0w/g=",
"pom": "sha256-2Zp//AsIqW7/+5ybmtConz5ykh3ZYrFBi6SzLuKTz8A="
},
"Anuken#rhino/73a812444ac388ac2d94013b5cadc8f70b7ea027": {
"jar": "sha256-g2+szbtgsHvalu5F4kygVDN89kk0zvzVSw3EOcAL11I=",
"module": "sha256-BbXoWzXoJGKhH6kA6EiluDHhfs3th9X+ojLLZuGISOg=",
"pom": "sha256-ngLvPqdMq7ayWlDHf7qr8MGYsDh+uMK6OYcDX9y5bXk="
},
"Anuken#steamworks4j/0b86023401880bb5e586bc404bedbaae9b1f1c94": {
"jar": "sha256-YbaPhCjWtlExwQ1dFNA6JrkiAfQYWxJ0VRV9rLnoYhY=",
"pom": "sha256-ktvhk8s3T1zswrYWuXz+cWHRyK3YbkikD5Sv/gjcfz4="
},
"libgdx/gdx-jnigen#gdx-jnigen-gradle/dffc32eecbf77aad264991ea44f1767a58cbee9d": {
"jar": "sha256-nuUxM4zDV48+8Z+Rsn2dhEhkH4wOcfG62lz84BUhDH0=",
"module": "sha256-OU9DEb3A9A7OtnJ6jQkS32KImMlNn9NX7eKMX4YVh5E=",
"pom": "sha256-0THLPDNZDZe9PbIEPl71pGwL7E6Oq2Y5LiVevltdbP8="
},
"libgdx/gdx-jnigen#gdx-jnigen/28dd11fa4c33a7ae9e58897912b52ba7d53d54fe": {
"jar": "sha256-fPszziBPrTDACbBuL6OxJ2oK1iA4izBk4TMHK53b+GQ=",
"module": "sha256-0RR9vgSqD1ISADHSO5OV7rxi+6HM9h0ZO4kEYw/Ao4Y=",
"pom": "sha256-vnz59i+3/wY9RizYWGMOuebfrZO4HrpOYV73ShIFH2g="
},
"libgdx/gdx-jnigen#gdx-jnigen/dffc32eecbf77aad264991ea44f1767a58cbee9d": {
"jar": "sha256-bd8xr4/YgvQbvdFkayXdJKpMvYwE9XlISof20vsfcSU=",
"module": "sha256-zQ1DewRtrsdTgxXINq7pOa+UJwnDNrGsVKnX0K/AWRQ=",
"pom": "sha256-HWFvvs+x6DyJioqkRDDVvf0GCKfxPTjhdec8JC2PZvA="
}
},
"https://plugins.gradle.org/m2/org/jetbrains/kotlin": {
"jvm#org.jetbrains.kotlin.jvm.gradle.plugin/1.6.0": {
"pom": "sha256-FeMDwR4tRlKdxOmvd853pFyge29WJvHjkFslMyVlJAg="
},
"kapt#org.jetbrains.kotlin.kapt.gradle.plugin/1.6.0": {
"pom": "sha256-EPl8xsN9xufqKiw5ptVSBLiMrZkniaiGvLSaH/RURV8="
}
},
"https://raw.githubusercontent.com": {
"nothings/stb/e140649ccf40818781b7e408f6228a486f6d254b/stb_image": {
"h": "sha256-jlsNcX38ioNMl+8gLSDnjQg9AJWG4XMcmFgX0BVdVow="
}
},
"https://repo.maven.apache.org/maven2": {
"com/github/gundy#semver4j/0.16.4": {
"pom": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0="
},
"com/github/gundy#semver4j/0.16.4/nodeps": {
"jar": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA="
},
"com/github/javaparser#javaparser-core/3.14.14": {
"jar": "sha256-Z4GYXisXFCvQfhp75Zt5NIXLAms3ZnN30WYQrpgUi24=",
"pom": "sha256-70ERyN/Uh+Zp5w1Qzz2z8O3YuTLKvjXmYzuzzuuGpIo="
},
"com/github/javaparser#javaparser-parent/3.14.14": {
"pom": "sha256-RwgtW3eLzkmjEnRtUWHJ48yhfYwh2eO+MTF68Io2FDc="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/code/gson#gson-parent/2.8.6": {
"pom": "sha256-NzZGOFnsGSZyleiUlAroKo9oRBMDESL+Nc58/34wp3Q="
},
"com/google/code/gson#gson/2.8.6": {
"jar": "sha256-yPtIOQVNKAswM/gA0fWpfeLwKOuLoutFitKH5Tbz8l8=",
"pom": "sha256-IXRBWmRzMtMP2gS9HPxwij7MhOr3UX9ZYYjYJE4QORE="
},
"com/google/errorprone#error_prone_annotations/2.3.4": {
"jar": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=",
"pom": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0="
},
"com/google/errorprone#error_prone_parent/2.3.4": {
"pom": "sha256-QElbQ3pg0jmPD9/AVLidnDlKgjR6J0oHIcLpUKQwIYY="
},
"com/google/guava#failureaccess/1.0.1": {
"jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=",
"pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk="
},
"com/google/guava#guava-parent/26.0-android": {
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
},
"com/google/guava#guava-parent/29.0-jre": {
"pom": "sha256-alf54C9436L0vaNBYGWmRCauG2beIoz24Zbi4ZElU78="
},
"com/google/guava#guava/29.0-jre": {
"jar": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=",
"pom": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY="
},
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
},
"com/google/j2objc#j2objc-annotations/1.3": {
"jar": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=",
"pom": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU="
},
"com/squareup#javapoet/1.12.1": {
"jar": "sha256-g/D9S66+w78p7jrSwCSzBl3e+CWlqin33PXBifn6KWI=",
"pom": "sha256-pxrD2PJ8ua0yyHtdiVnyLWca60YMejVdCfV35MV+TF8="
},
"de/undercouch#gradle-download-task/4.1.1": {
"jar": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=",
"pom": "sha256-heZgcmDbvbXoXxmIhAsNmsS+kRnd6QobrKjqd1ZGQVo="
},
"net/java/dev/jna#jna/5.6.0": {
"jar": "sha256-VVfiNaiqL5dm1dxgnWeUjyqIMsLXls6p7x1svgs7fq8=",
"pom": "sha256-X+gbAlWXjyRhbTexBgi3lJil8wc+HZsgONhzaoMfJgg="
},
"org/apiguardian#apiguardian-api/1.1.0": {
"jar": "sha256-qarp/4rj4XoqGPeRdegrFiZ8JG+708qd+7spCwjc/dQ=",
"pom": "sha256-qUW5y1zZt3sscRhE5lnEPsBw71nZ9Qn6n0wYYbSGJxE="
},
"org/checkerframework#checker-qual/2.11.1": {
"jar": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=",
"pom": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/intellij/deps#trove4j/1.0.20181211": {
"jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=",
"pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo="
},
"org/jetbrains/kotlin#kotlin-android-extensions/1.6.0": {
"jar": "sha256-TPrz8BIFF78dbY07r8+uHomMZ9P3yLdocIG/uBk8ftQ=",
"pom": "sha256-hlMj+0VThiKBTO4p4gN1AamL/eUwVzg2+gCBPvSVcR4="
},
"org/jetbrains/kotlin#kotlin-annotation-processing-gradle/1.6.0": {
"jar": "sha256-hnP///sAqxYDPZD2x/7BC10xDKQPvkNRmrQRi/yEF5w=",
"pom": "sha256-G0C/0FxYRRS55Z1YnjPCZb456Z6gRvhHxe411uUFjiM="
},
"org/jetbrains/kotlin#kotlin-build-common/1.6.0": {
"jar": "sha256-4kp7cGukVhi07kOWa2JQETbQBgsDL46fGNGD2gWxv0M=",
"pom": "sha256-93xRil6Ux4dnVflhEApdtQuSQFTH8GQqSIMeJagk8pE="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.6.0": {
"jar": "sha256-A2aEPNLe/dWDxrFrELwyuF8oxb+VEPEORMiG9b0kw4g=",
"pom": "sha256-KlWcBwvS5YxY2x5/z2T7t92+hHciXec9Zu4AAQiocCQ="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/1.6.0": {
"jar": "sha256-avdSCvhKRCxqvxvXKFunG6xzZWYLLQj9BMhOw1NjPUk=",
"pom": "sha256-Oc+l/Aqzv3VwSfj9Dx6bNbYrebnTJdLPlwLVqaDY/jc="
},
"org/jetbrains/kotlin#kotlin-daemon-client/1.6.0": {
"jar": "sha256-bBsv3jMVh50Ml35fJRU5fngpvQrfiSHkxf262DLrwqE=",
"pom": "sha256-gatFLaX29bavP6ggpywNKNCfVUTU7EXafxFDG6Xtkhg="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.6.0": {
"jar": "sha256-INCHBqoXdi/lqwOpFtYsm37iEdIIRKiqvg24PZ2QKEo=",
"pom": "sha256-dTHQzBNuWUgjMpvMExxPHv4XP8OVr4Lus4/SZhbckfY="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.6.0": {
"jar": "sha256-yGksM4gmxIQlv8h/q2nLef4tT1+B/wWMkpQYvw2pfRU=",
"pom": "sha256-HP5CdZvSCiU6S36NvQ5yll5nReE1Duzd6lOZsjy40Wg="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.6.0": {
"jar": "sha256-ne9NHPDZV3pRGiqk9/MQ7MwkJDsFwCpxelExxMj5ll4=",
"pom": "sha256-aZyyu6C03O/rmbelzYHM8MLOPWi8AVgZCAli7mflbUs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.6.0": {
"jar": "sha256-twN61m6wybWbrcqiONHFQmcVt5eqdwk0cwe3XBrawWo=",
"pom": "sha256-G6PfHEnY5ZBuWyGdFyCRd7nnb4M9xPFuwbjPjRA/qN4="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.6.0": {
"jar": "sha256-/GqznpDYIibZuLzOAYdhZOW6/RrAogPz8DB4yxtIMB8=",
"pom": "sha256-elUGa/rRTIyZqq8GCHV+uKfl7LzODzC9J+56qWtWoAk="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.6.0": {
"jar": "sha256-x8gRYmPShf5TjnwZaEHiNaqPe52fasNhP4jeU7Jh2MM=",
"pom": "sha256-htOIK0/IKs3DheQpnn76HaZQvzUG/lqg+F5FzNwmmss="
},
"org/jetbrains/kotlin#kotlin-native-utils/1.6.0": {
"jar": "sha256-oLD9fer0/hCwZxNVJYvGN1nj0kpxFc7/h7x0G/p86ew=",
"pom": "sha256-a9fh1Kc7At/mYvqDdkrikRPrWqItrdGKVn8cfpdCQhs="
},
"org/jetbrains/kotlin#kotlin-project-model/1.6.0": {
"jar": "sha256-OBNdP5lfxQXWBK7S6CrFuoWLKmo+R2iZw7i+R/0iK2g=",
"pom": "sha256-sMn75G5kDHVwJEMc9+p5PdmN2nbRFe9K5OXz1B9nH9Q="
},
"org/jetbrains/kotlin#kotlin-reflect/1.6.0": {
"jar": "sha256-xhYYhCCSIdt/XdsDG7SAo8RruQ1bZdfMAWexSaqpxJQ=",
"pom": "sha256-hcz47mWEylEpbV8yn+zAIerbRbxqLDu9qMrmAvWO4lQ="
},
"org/jetbrains/kotlin#kotlin-script-runtime/1.6.0": {
"jar": "sha256-3coPdlxBbnek2IFvPS327alT9hr4EXN4RqIgMyJaDlc=",
"pom": "sha256-GsP9ZI4oCa3h+13heKISaNPXurUYNV7dTEmAXMsx1c4="
},
"org/jetbrains/kotlin#kotlin-scripting-common/1.6.0": {
"jar": "sha256-FmmbBwr8RCIwDJ7WboHpi2X3xpH6qFK41EGV5QndbSI=",
"pom": "sha256-9l4xIUhL0lNnX9BqxOiCkuDk8zV7kBKjRYKlc02OOVA="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.6.0": {
"jar": "sha256-LNHG9q9pwWt5NNfY1nwYM0m0NPRQSC1yKalgcTb6BEc=",
"pom": "sha256-4jtqC3HdlDRIRzwooThIk8LMx6tK9hMwCVuFEmBYMvo="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.6.0": {
"jar": "sha256-5L1IkGdG5M0Z4BZEVZncomg6mU2gasOMrTg6rEgzjag=",
"pom": "sha256-ZX90rM8Q8WYXJBIvDgLIBkMFyuLSgAxZQmqIQG80cPE="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.6.0": {
"jar": "sha256-X2p+onTLbGxDcglKNXLfKjkqpTifFVO4JIc9YtYANlI=",
"pom": "sha256-nzZY4pTKV2EytPaUIOpJsp3twftsDl0HqygOq75tCzY="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/1.6.0": {
"jar": "sha256-ZEpyV8I7UaH9UGiWDkCSLj5SwhnxHs4+BAo6vHSCPyI=",
"pom": "sha256-iZ6XwgKLX3or2vZ1H6KgG2h+PuKngXZ8iiJ8v/tsAYQ="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.6.0": {
"jar": "sha256-EV2uowsNSEr88jYCN7nZU39IpKLwPzzCoWV338bpA0I=",
"pom": "sha256-cSpt3XF8zVsNUOdMM16TqbGRBSzXu4KWBSAJu4XJRBI="
},
"org/jetbrains/kotlin#kotlin-tooling-metadata/1.6.0": {
"jar": "sha256-X3m1R/gM66SC1vcYRLI0ReEJ9oXrdEgQRGeM11worXc=",
"pom": "sha256-yYlWnKkvPwTPHmuhScQ8SVao2dyXk5vkmPHfUvQMwsU="
},
"org/jetbrains/kotlin#kotlin-util-io/1.6.0": {
"jar": "sha256-rbeHTvdxKKs7CVP/SeyAEjnIN/5xMcMUfO+duLvfVzk=",
"pom": "sha256-PGMhnFxVPRyfo2HTbtzZsDXL6QzpS86hqhR4F3IvY5w="
},
"org/jetbrains/kotlin#kotlin-util-klib/1.6.0": {
"jar": "sha256-qWMcC3gjxpuNM1AqKGPnV0MI2fnBLj8o9LW79sKkH3Q=",
"pom": "sha256-YJjHylRvWZ35UdQOKaAdqT9NepB1l5Uy7hSSmzjE42g="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
},
"org/junit#junit-bom/5.7.1": {
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
},
"org/junit/jupiter#junit-jupiter-api/5.7.1": {
"jar": "sha256-znuYW8Rp4mJXWaTrxFUzxwWBoFo0gnjB1kCOmy414xQ=",
"module": "sha256-AiFvaghBm7NdVHeGPZ0hpoxXWRqol7qYGmHFVFZWzX4=",
"pom": "sha256-1Vvisj13FDKXB3IEMgey5mpnJK4CvVGStyFuS3AbxiM="
},
"org/junit/jupiter#junit-jupiter-engine/5.7.1": {
"jar": "sha256-VmFsk1CzYk92z/72skznuyIpFb/VaI+W089M7zTwd8s=",
"module": "sha256-2A5S75X2XNxQT8Mb4KArJYnJ78JzpCVcs2NyPOVMr/8=",
"pom": "sha256-gRF+OjoCDf3W8wkcXseU0stJhAcxrPQogxxWmQEvTLs="
},
"org/junit/jupiter#junit-jupiter-params/5.7.1": {
"jar": "sha256-jv/df4pLpVWLVoGE3uCACLJEPIbGc++B3lhh+8fvBhM=",
"module": "sha256-TUOYtYCpnIVNnxF6bk44o9GOZSJ2obzmeaDDx5nGFL0=",
"pom": "sha256-UIPD5bw9OhjVY6M0fVPi3f35ONdh60TbsL9PQgX+6Sw="
},
"org/junit/platform#junit-platform-commons/1.7.1": {
"jar": "sha256-fFRr6GhkcY+6zrefqE/x06UWUA/EKPGyHQYcLg+8Wks=",
"module": "sha256-5abLDsz80tAuaGvyt2OnBCTQiB2/+uvjp/kxShhT+TE=",
"pom": "sha256-t8GENMTUsn5yO9SKr5ercK7IwMra1MFTkvvdFEykpQo="
},
"org/junit/platform#junit-platform-engine/1.7.1": {
"jar": "sha256-N99anNbbwfdUuitG+WuIdKg2YOF5a/OMc48CLc+Gwj8=",
"module": "sha256-S2knc2Ouooq1DFpnYZ++q/jAgk5JOOYmC6wEjlvrga8=",
"pom": "sha256-dmAvWZVKo9+mjjHIDKibb7ouoAG0+wbLUfoV6tfIWjA="
},
"org/lz4#lz4-java/1.8.0": {
"jar": "sha256-10ozNPs1GVAJszipUfkYID1rvKPR01kDPcM+3Rytye8=",
"pom": "sha256-DbittR4TJFSlxAbeuy8aDfgfk91Z++IMuUcQKZRokDQ="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://www.libsdl.org": {
"release/SDL2-devel-2.0.20-mingw": {
"tar.gz": "sha256-OAlNgqhX1sYjUuXFzex0lIxbTSXFnL0pjW0jNWiXa9E="
}
}
}