mirror of
https://github.com/l1npengtul/nokhwa.git
synced 2026-07-04 02:27:26 +00:00
106 lines
2.7 KiB
Nix
106 lines
2.7 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
rust-overlay,
|
|
flake-utils,
|
|
...
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system: let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
overlays = [rust-overlay.overlays.default];
|
|
config.allowUnfree = true;
|
|
};
|
|
rustshell = pkgs.mkShell.override {
|
|
stdenv = pkgs.gccStdenv;
|
|
};
|
|
rustbin = pkgs.rust-bin.selectLatestNightlyWith (
|
|
toolchain:
|
|
toolchain.default.override {
|
|
extensions = [
|
|
"rust-src"
|
|
"clippy"
|
|
"rustfmt"
|
|
"miri"
|
|
"rust-analyzer"
|
|
];
|
|
}
|
|
);
|
|
in {
|
|
formatter = pkgs.alejandra;
|
|
|
|
devShells.default = rustshell {
|
|
packages =
|
|
[
|
|
rustbin
|
|
]
|
|
++ (with pkgs; [
|
|
llvmPackages_21.clangWithLibcAndBasicRtAndLibcxx
|
|
pkg-config
|
|
cmake
|
|
vcpkg
|
|
lldb
|
|
rustPlatform.bindgenHook
|
|
xmlstarlet
|
|
opencv
|
|
alsa-lib
|
|
systemdLibs
|
|
cmake
|
|
fontconfig
|
|
linuxHeaders
|
|
v4l-utils
|
|
libv4l
|
|
pipewire
|
|
rustup
|
|
gcc
|
|
ffmpeg_8-full
|
|
nasm
|
|
libGL
|
|
flite
|
|
quirc
|
|
lcevcdec
|
|
xz
|
|
celt
|
|
opencore-amr
|
|
snappy
|
|
codec2
|
|
gsm
|
|
ilbc
|
|
lame
|
|
libtheora
|
|
libogg
|
|
twolame
|
|
vo-amrwbenc
|
|
vvenc
|
|
xavs
|
|
xvidcore
|
|
soxr
|
|
libvdpau
|
|
gmp
|
|
openapv
|
|
svt-av1
|
|
]);
|
|
|
|
env.RUST_SRC_PATH = "${rustbin}/lib/rustlib/src/rust/library";
|
|
env.LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
|
|
|
|
shellHook = let
|
|
pathToRustProject = "/project/component[@name='RustProjectSettings']";
|
|
in ''
|
|
echo "WONDERHOOOOOY!!!!"
|
|
xmlstarlet edit --inplace --update "${pathToRustProject}/option[@name='explicitPathToStdlib']/@value" --value "${rustbin}/lib/rustlib/src/rust/library" .idea/workspace.xml
|
|
xmlstarlet edit --inplace --update "${pathToRustProject}/option[@name='toolchainHomeDirectory']/@value" --value "${rustbin}/bin" .idea/workspace.xml
|
|
'';
|
|
};
|
|
}
|
|
);
|
|
}
|