forked from nonsensical-dev/zenyx-engine
75 lines
2 KiB
Nix
75 lines
2 KiB
Nix
{ lib,
|
|
rustPlatform,
|
|
nix-gitignore,
|
|
bash,
|
|
makeWrapper,
|
|
dav1d,
|
|
vulkan-loader,
|
|
libGL,
|
|
wayland,
|
|
pkg-config,
|
|
libxkbcommon,
|
|
pkgs,
|
|
stdenv,
|
|
targetPackages ? pkgs,
|
|
}: let
|
|
version = (builtins.fromTOML (builtins.readFile ./Cargo.toml)).package.version;
|
|
src = nix-gitignore.gitignoreSource [] ./.;
|
|
in
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "zenyx";
|
|
inherit src version;
|
|
cargoLock.lockFile = ./Cargo.lock;
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
] ++ lib.optionals stdenv.targetPlatform.isDarwin [
|
|
targetPackages.darwin.apple_sdk.frameworks.CoreServices
|
|
];
|
|
|
|
buildInputs = with targetPackages; [
|
|
dav1d
|
|
] ++ lib.optionals (stdenv.targetPlatform.isLinux || stdenv.targetPlatform.isWindows) [
|
|
vulkan-loader
|
|
] ++ lib.optionals stdenv.targetPlatform.isLinux [
|
|
makeWrapper
|
|
wayland
|
|
libxkbcommon
|
|
libGL
|
|
xorg.libXcursor
|
|
xorg.libXrandr
|
|
xorg.libXi
|
|
xorg.libX11
|
|
xorg.libxcb
|
|
bash
|
|
] ++ lib.optionals stdenv.targetPlatform.isDarwin [
|
|
makeWrapper
|
|
darwin.apple_sdk.frameworks.Cocoa
|
|
darwin.apple_sdk.frameworks.Metal
|
|
darwin.apple_sdk.frameworks.CoreVideo
|
|
darwin.apple_sdk.frameworks.QuartzCore
|
|
];
|
|
|
|
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER =
|
|
lib.optionalString stdenv.targetPlatform.isWindows "${stdenv.cc.targetPrefix}gcc";
|
|
|
|
NIX_LDFLAGS = lib.optionalString stdenv.targetPlatform.isDarwin "-framework CoreFoundation";
|
|
|
|
postInstall = lib.optionalString stdenv.targetPlatform.isLinux ''
|
|
wrapProgram $out/bin/${pname} \
|
|
--prefix PATH : ${lib.makeBinPath [ bash ]} \
|
|
--set LD_LIBRARY_PATH ${lib.makeLibraryPath buildInputs}
|
|
'' + lib.optionalString stdenv.targetPlatform.isWindows ''
|
|
mkdir -p $out/bin
|
|
cp ${pkgs.vulkan-loader}/bin/vulkan-1.dll $out/bin/
|
|
'';
|
|
|
|
doCheck = false;
|
|
|
|
meta = {
|
|
description = "Cross-platform WSYWIG Game Engine";
|
|
license = lib.licenses.mit;
|
|
platforms = lib.platforms.all;
|
|
mainProgram = "zenyx";
|
|
};
|
|
}
|