2025-10-15 11:17:02 +02:00
|
|
|
{
|
|
|
|
|
pkgs ? import <nixpkgs> { },
|
|
|
|
|
}:
|
2026-01-30 11:45:07 +01:00
|
|
|
|
2025-10-15 11:17:02 +02:00
|
|
|
let
|
2025-10-24 11:58:15 +02:00
|
|
|
inherit (pkgs) lib stdenv;
|
|
|
|
|
|
|
|
|
|
in pkgs.mkShell {
|
2026-01-30 11:45:07 +01:00
|
|
|
inputsFrom = [
|
2025-10-15 11:17:02 +02:00
|
|
|
pkgs.androidShell
|
2025-10-24 11:58:15 +02:00
|
|
|
];
|
2025-10-15 11:17:02 +02:00
|
|
|
|
|
|
|
|
buildInputs = with pkgs; [
|
2026-01-30 11:45:07 +01:00
|
|
|
nim
|
2025-10-15 11:17:02 +02:00
|
|
|
which
|
|
|
|
|
git
|
|
|
|
|
cmake
|
2025-10-24 11:58:15 +02:00
|
|
|
] ++ lib.optionals stdenv.isDarwin [
|
|
|
|
|
pkgs.libiconv
|
2025-10-15 11:17:02 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
shellHook = ''
|
2026-02-09 18:22:20 +05:30
|
|
|
# Set up nimble-link directory for vendored dependencies
|
|
|
|
|
export NIMBLE_DIR="$(pwd)/vendor/.nimble"
|
|
|
|
|
if [ -f scripts/generate_nimble_links.sh ]; then
|
|
|
|
|
bash scripts/generate_nimble_links.sh
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Create sds.nims symlink if missing
|
|
|
|
|
if [ ! -e sds.nims ]; then
|
|
|
|
|
ln -s sds.nimble sds.nims
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Tell Nim where to find its standard library headers
|
|
|
|
|
export NIM_LIB_DIR="$(dirname $(dirname $(which nim)))/lib"
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "nim-sds dev shell ready. Build commands:"
|
|
|
|
|
echo " nim libsdsDynamicLinux sds.nims # Linux shared library"
|
|
|
|
|
echo " nim libsdsDynamicMac sds.nims # macOS shared library"
|
|
|
|
|
echo " nim libsdsStaticLinux sds.nims # Linux static library"
|
|
|
|
|
echo " nim libsdsStaticMac sds.nims # macOS static library"
|
|
|
|
|
echo " nimble test # Run tests"
|
|
|
|
|
echo ""
|
2025-10-15 11:17:02 +02:00
|
|
|
'';
|
|
|
|
|
}
|