shell.nix 848 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. { pkgs ? import <nixpkgs> {} }:
  2. pkgs.mkShell {
  3. buildInputs = with pkgs; [
  4. # Build tools
  5. cmake
  6. ninja
  7. ccache
  8. # Compiler
  9. clang
  10. llvmPackages.libcxx
  11. # Dependencies
  12. lua5_4
  13. ncurses
  14. pkg-config # For locating libraries
  15. gtkmm4 # GTK4 C++ bindings
  16. # Development tools
  17. clang-tools # clangd, clang-format, clang-tidy
  18. lldb # Use lldb instead of gdb on macOS
  19. # Git for FetchContent
  20. git
  21. gtest
  22. sol2
  23. libsysprof-capture
  24. pcre2
  25. ];
  26. shellHook = ''
  27. echo "Lumacs development environment"
  28. echo "C++ compiler: $(clang++ --version | head -n1)"
  29. echo "CMake: $(cmake --version | head -n1)"
  30. echo "Lua: $(lua -v)"
  31. # Set compiler to clang
  32. export CC=clang
  33. export CXX=clang++
  34. # Enable ccache
  35. export CMAKE_CXX_COMPILER_LAUNCHER=ccache
  36. '';
  37. }