shell.nix
This commit is contained in:
80
shell.nix
Normal file
80
shell.nix
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
pkgs ? import <nixpkgs> { },
|
||||
}:
|
||||
|
||||
pkgs.mkShell {
|
||||
name = "platform-rust";
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
# do not install, use system rust toolchain
|
||||
# that is installed by rustup. Easier in nixos.
|
||||
#rustc
|
||||
#cargo
|
||||
#rustfmt
|
||||
#clippy
|
||||
#rust-analyzer
|
||||
|
||||
# Build dependencies
|
||||
pkg-config
|
||||
openssl
|
||||
cmake
|
||||
gcc
|
||||
gnumake
|
||||
openssl.dev
|
||||
|
||||
# for lance
|
||||
protobuf
|
||||
|
||||
# image processing
|
||||
libiconv
|
||||
|
||||
# sqlx
|
||||
postgresql
|
||||
sqlite
|
||||
git
|
||||
|
||||
# wasm
|
||||
wasm-pack
|
||||
binaryen
|
||||
python3
|
||||
|
||||
# for ort
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
cmake
|
||||
];
|
||||
|
||||
# Environment variables
|
||||
shellHook = ''
|
||||
echo "Rust toolchain:"
|
||||
echo " rustc: $(rustc --version)"
|
||||
echo " cargo: $(cargo --version)"
|
||||
echo ""
|
||||
|
||||
# Set up environment variables for builds
|
||||
export PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig:${pkgs.postgresql}/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
export OPENSSL_DIR="${pkgs.openssl.dev}"
|
||||
export OPENSSL_LIB_DIR="${pkgs.openssl.out}/lib"
|
||||
export OPENSSL_INCLUDE_DIR="${pkgs.openssl.dev}/include"
|
||||
|
||||
# Not sure which of these are necessary...
|
||||
# For DuckDB
|
||||
export CMAKE_PREFIX_PATH="${pkgs.cmake}/bin:$CMAKE_PREFIX_PATH"
|
||||
|
||||
# For lance
|
||||
export PROTOC="${pkgs.protobuf}/bin/protoc"
|
||||
export PROTOBUF_LOCATION="${pkgs.protobuf}"
|
||||
|
||||
# For ONNX Runtime
|
||||
${pkgs.lib.optionalString pkgs.stdenv.isLinux ''
|
||||
export LD_LIBRARY_PATH="${pkgs.stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH"
|
||||
''}
|
||||
|
||||
# sqlx
|
||||
export SQLITE3_LIB_DIR="${pkgs.sqlite.out}/lib"
|
||||
export PG_CONFIG="${pkgs.postgresql}/bin/pg_config"
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user