mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-09-23 11:06:34 +00:00
Fix Nix Package
This commit is contained in:
@@ -3,13 +3,30 @@
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
|
||||
shiggy = {
|
||||
url = "github:4jcraft/shiggy/main";
|
||||
flake = false;
|
||||
};
|
||||
miniaudio = {
|
||||
url = "https://github.com/mackron/miniaudio/archive/refs/tags/0.11.22.tar.gz";
|
||||
flake = false;
|
||||
};
|
||||
miniaudio-patch = {
|
||||
url = "https://wrapdb.mesonbuild.com/v2/miniaudio_0.11.22-2/get_patch";
|
||||
flake = false;
|
||||
};
|
||||
"4jlibs" = {
|
||||
url = "github:4jcraft/4jlibs/main";
|
||||
flake = false;
|
||||
};
|
||||
stb = {
|
||||
url = "github:nothings/stb/master";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, shiggy, ... }:
|
||||
outputs = { self, nixpkgs, ... } @ inputs:
|
||||
let
|
||||
allSystems = [
|
||||
"x86_64-linux"
|
||||
@@ -22,50 +39,66 @@
|
||||
});
|
||||
in
|
||||
{
|
||||
packages = forAllSystems ({ pkgs }:
|
||||
{
|
||||
default = pkgs.clangStdenv.mkDerivation {
|
||||
pname = "4jcraft";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
packages = forAllSystems ({ pkgs }: {
|
||||
default = pkgs.clangStdenv.mkDerivation {
|
||||
pname = "4jcraft";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
|
||||
preConfigure = ''
|
||||
mkdir -p subprojects/shiggy
|
||||
cp -r ${shiggy}/. subprojects/shiggy/
|
||||
'';
|
||||
dontUseCmakeConfigure = true;
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
openssl.dev
|
||||
libGL
|
||||
libGLU
|
||||
SDL2
|
||||
zlib
|
||||
];
|
||||
preConfigure = ''
|
||||
cp -r ${inputs.shiggy} subprojects/shiggy
|
||||
cp -r ${inputs.miniaudio} subprojects/miniaudio
|
||||
chmod -R u+w subprojects/miniaudio
|
||||
unzip ${inputs."miniaudio-patch"} -d /tmp/miniaudio-patch/
|
||||
cp -r /tmp/miniaudio-patch/*/. subprojects/miniaudio/
|
||||
cat > subprojects/miniaudio.wrap <<'EOF'
|
||||
[wrap-file]
|
||||
directory = miniaudio
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
lld
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
makeWrapper
|
||||
];
|
||||
[provide]
|
||||
dependency_names = miniaudio
|
||||
EOF
|
||||
cp -r ${inputs."4jlibs"} subprojects/4jlibs
|
||||
cp -r ${inputs.stb} subprojects/stb
|
||||
chmod -R u+w subprojects/
|
||||
cp subprojects/packagefiles/stb/meson.build subprojects/stb/meson.build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/4jcraft
|
||||
cp -r Minecraft.Client/. $out/share/4jcraft/
|
||||
mkdir -p $out/bin
|
||||
makeWrapper $out/share/4jcraft/Minecraft.Client \
|
||||
$out/bin/4jcraft \
|
||||
--run "cd $out/share/4jcraft"
|
||||
'';
|
||||
buildInputs = with pkgs; [
|
||||
openssl.dev
|
||||
libGL
|
||||
libGLU
|
||||
SDL2
|
||||
zlib
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "4JCraft";
|
||||
platforms = pkgs.lib.platforms.linux;
|
||||
};
|
||||
nativeBuildInputs = with pkgs; [
|
||||
cmake
|
||||
lld
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
makeWrapper
|
||||
unzip
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/4jcraft
|
||||
cp -r Minecraft.Client/. $out/share/4jcraft/
|
||||
mkdir -p $out/bin
|
||||
makeWrapper $out/share/4jcraft/Minecraft.Client \
|
||||
$out/bin/4jcraft \
|
||||
--run "cd $out/share/4jcraft"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "4JCraft";
|
||||
platforms = pkgs.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user