| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- { pkgs ? import <nixpkgs> {} }:
- pkgs.mkShell {
- buildInputs = with pkgs; [
- # Build tools
- cmake
- ninja
- ccache
- # Compiler
- clang
- llvmPackages.libcxx
- # Dependencies
- lua5_4
- ncurses
- pkg-config # For locating libraries
- gtkmm4 # GTK4 C++ bindings
- fribidi # Required by pango/GTK
- libthai # Required by pango/GTK
- libdatrie # Required by libthai
- expat # Required by fontconfig
- xorg.libXdmcp # Required by xcb
- # Development tools
- clang-tools # clangd, clang-format, clang-tidy
- lldb # Use lldb instead of gdb on macOS
- # Git for FetchContent
- git
- gtest
- sol2
- pcre2
- spdlog
- raylib
- ];
- shellHook = ''
- echo "Lumacs development environment"
- echo "C++ compiler: $(clang++ --version | head -n1)"
- echo "CMake: $(cmake --version | head -n1)"
- echo "Lua: $(lua -v)"
- # Set compiler to clang
- export CC=clang
- export CXX=clang++
- # Enable ccache
- export CMAKE_CXX_COMPILER_LAUNCHER=ccache
- '';
- }
|