shell.nix 720 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. # Development tools
  15. clang-tools # clangd, clang-format, clang-tidy
  16. lldb # Use lldb instead of gdb on macOS
  17. # Git for FetchContent
  18. git
  19. ];
  20. shellHook = ''
  21. echo "Lumacs development environment"
  22. echo "C++ compiler: $(clang++ --version | head -n1)"
  23. echo "CMake: $(cmake --version | head -n1)"
  24. echo "Lua: $(lua -v)"
  25. # Set compiler to clang
  26. export CC=clang
  27. export CXX=clang++
  28. # Enable ccache
  29. export CMAKE_CXX_COMPILER_LAUNCHER=ccache
  30. '';
  31. }