71 lines
2.3 KiB
Nix
71 lines
2.3 KiB
Nix
{ rustPlatform, src, name, libGL, mesa, xorg, fontconfig, libxkbcommon, libclang
|
|
, cmake, cpm-cmake, pkg-config, llvmPackages, fetchFromGitHub, sk_gpu, libXau
|
|
, libXdmcp, stdenv, lib }:
|
|
|
|
rustPlatform.buildRustPackage rec {
|
|
inherit src name;
|
|
cargoLock = {
|
|
lockFile = (src + "/Cargo.lock");
|
|
allowBuiltinFetchGit = true;
|
|
};
|
|
FORCE_LOCAL_DEPS = true;
|
|
CPM_LOCAL_PACKAGES_ONLY = true;
|
|
CPM_SOURCE_CACHE = "./build";
|
|
CPM_USE_LOCAL_PACKAGES = true;
|
|
CPM_DOWNLOAD_ALL = false;
|
|
|
|
openxr_loader = fetchFromGitHub {
|
|
owner = "KhronosGroup";
|
|
repo = "OpenXR-SDK";
|
|
rev = "288d3a7ebc1ad959f62d51da75baa3d27438c499";
|
|
sha256 = "sha256-RdmnBe26hqPmqwCHIJolF6bSmZRmIKVlGF+TXAY35ig=";
|
|
};
|
|
meshoptimizer = fetchFromGitHub {
|
|
owner = "zeux";
|
|
repo = "meshoptimizer";
|
|
rev = "c21d3be6ddf627f8ca852ba4b6db9903b0557858";
|
|
sha256 = "sha256-QCxpM2g8WtYSZHkBzLTJNQ/oHb5j/n9rjaVmZJcCZIA=";
|
|
};
|
|
basis_universal = fetchFromGitHub {
|
|
owner = "BinomialLLC";
|
|
repo = "basis_universal";
|
|
rev = "900e40fb5d2502927360fe2f31762bdbb624455f";
|
|
sha256 = "sha256-zBRAXgG5Fi6+5uPQCI/RCGatY6O4ELuYBoKrPNn4K+8=";
|
|
};
|
|
|
|
DEP_OPENXR_LOADER_SOURCE = "${openxr_loader}";
|
|
DEP_MESHOPTIMIZER_SOURCE = "${meshoptimizer}";
|
|
DEP_BASIS_UNIVERSAL_SOURCE = "${basis_universal}";
|
|
|
|
postPatch = let libPath = lib.makeLibraryPath [ stdenv.cc.cc.lib ];
|
|
in ''
|
|
sk=$(echo $cargoDepsCopy/stereokit-rust-*/StereoKit)
|
|
mkdir -p $sk/build/cpm
|
|
|
|
# This is not ideal, the original approach was to fetch the exact cmake
|
|
# file version that was wanted from GitHub directly, but at least this way it comes from Nixpkgs.. so meh
|
|
cp ${cpm-cmake}/share/cpm/CPM.cmake $sk/build/cpm/CPM_0.38.7.cmake
|
|
mkdir -p $sk/sk_gpu
|
|
cp -R ${sk_gpu}/* $sk/sk_gpu
|
|
chmod -R 755 $sk/sk_gpu/tools/linux_x64/*
|
|
export DEP_SK_GPU_SOURCE=$sk/sk_gpu
|
|
export LD_LIBRARY_PATH="${stdenv.cc.cc.lib}/lib";
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
--set-rpath "${libPath}" \
|
|
$sk/sk_gpu/tools/linux_x64/skshaderc
|
|
'';
|
|
nativeBuildInputs = [ cmake pkg-config llvmPackages.libcxxClang ];
|
|
buildInputs = [
|
|
libGL
|
|
mesa
|
|
xorg.libX11.dev
|
|
xorg.libXft
|
|
xorg.libXfixes
|
|
fontconfig
|
|
libxkbcommon
|
|
libXau
|
|
libXdmcp
|
|
];
|
|
LIBCLANG_PATH = "${libclang.lib}/lib";
|
|
}
|