2026-03-26 21:12:30 +01:00
|
|
|
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/25.11.tar.gz") {} }:
|
2023-06-07 17:17:44 +02:00
|
|
|
|
|
|
|
|
let
|
2026-03-26 21:12:30 +01:00
|
|
|
inherit (pkgs) stdenv lib;
|
|
|
|
|
inherit (stdenv.hostPlatform) isDarwin;
|
2023-06-07 17:17:44 +02:00
|
|
|
pythonPkgs = pkgs.python3Packages;
|
|
|
|
|
boostPython = pkgs.boost.override { python = pythonPkgs.python; enablePython = true; };
|
|
|
|
|
in pkgs.mkShell {
|
|
|
|
|
buildInputs = with pkgs; [
|
|
|
|
|
cmake
|
2026-03-26 21:12:30 +01:00
|
|
|
ninja
|
2023-06-07 17:17:44 +02:00
|
|
|
eigen
|
|
|
|
|
boostPython
|
|
|
|
|
pythonPkgs.python
|
|
|
|
|
pythonPkgs.apycula
|
2025-10-17 14:16:07 +02:00
|
|
|
pkgs.qt6.qtbase
|
2026-03-26 21:12:30 +01:00
|
|
|
lld
|
2023-06-07 17:17:44 +02:00
|
|
|
llvmPackages.openmp
|
|
|
|
|
icestorm
|
|
|
|
|
trellis
|
|
|
|
|
yosys
|
|
|
|
|
clang
|
|
|
|
|
gdb
|
2026-03-26 21:12:30 +01:00
|
|
|
sccache
|
|
|
|
|
] ++ lib.optional (!isDarwin) valgrind;
|
2023-06-07 17:17:44 +02:00
|
|
|
|
|
|
|
|
shellHook = ''
|
|
|
|
|
export TRELLIS_INSTALL_PREFIX=${pkgs.trellis}
|
|
|
|
|
export ICESTORM_INSTALL_PREFIX=${pkgs.icestorm}
|
2026-03-26 21:12:30 +01:00
|
|
|
export QT_QPA_PLATFORM_PLUGIN_PATH="${pkgs.qt6.qtbase}/${pkgs.qt6.qtbase.qtPluginPrefix}"
|
|
|
|
|
|
|
|
|
|
export CMAKE_C_COMPILER=clang
|
|
|
|
|
export CMAKE_CXX_COMPILER=clang++
|
|
|
|
|
export CMAKE_C_COMPILER_LAUNCHER=sccache
|
|
|
|
|
export CMAKE_CXX_COMPILER_LAUNCHER=sccache
|
|
|
|
|
export CMAKE_LINKER_TYPE=LLD
|
|
|
|
|
export CMAKE_EXPORT_COMPILE_COMMANDS=ON
|
|
|
|
|
export CMAKE_GENERATOR=Ninja
|
2023-06-07 17:17:44 +02:00
|
|
|
'';
|
|
|
|
|
}
|