Skip to content
This repository was archived by the owner on Jan 26, 2026. It is now read-only.

Commit 66082af

Browse files
committed
docs: MacOS dev setup
1 parent 4a6c5ce commit 66082af

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

docs/SETUP_MACOS.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,18 @@ make release NUM_THREADS=$(sysctl -n hw.physicalcpu)
8585

8686
This will:
8787
- Configure CMake with Release build type
88-
- Build the core C++ library and CLI
88+
- Build the core C++ library and CLI (the `kuzu` interactive shell)
8989
- Use all available physical CPU cores for compilation
9090

9191
**Note**: On macOS, `sysctl -n hw.physicalcpu` gives you the number of physical CPU cores, which is the recommended setting according to the developer guide.
9292

93+
**Note**: The interactive CLI shell (`kuzu`) is built by default (`BUILD_SHELL=TRUE`). After building, you can find the executable at `build/release/tools/shell/kuzu` (or `build/debug/tools/shell/kuzu` for debug builds). You can run it with:
94+
```bash
95+
./build/release/tools/shell/kuzu [database_path]
96+
# or for in-memory database:
97+
./build/release/tools/shell/kuzu :memory:
98+
```
99+
93100
### 7. Run Basic Tests
94101

95102
After building, verify the installation by running tests:
@@ -236,8 +243,37 @@ To build all components (benchmarks, examples, extensions, tests, and all langua
236243
make all NUM_THREADS=$(sysctl -n hw.physicalcpu)
237244
```
238245

246+
### Build Shell CLI (Included by Default)
247+
248+
The interactive CLI shell (`kuzu`) is **built by default** with all standard build targets (`release`, `debug`, `relwithdebinfo`). The `BUILD_SHELL` CMake option defaults to `TRUE`.
249+
250+
To explicitly ensure the shell is built:
251+
252+
```bash
253+
make release NUM_THREADS=$(sysctl -n hw.physicalcpu)
254+
# Shell is automatically included - no special flags needed
255+
```
256+
257+
To test the shell after building:
258+
259+
```bash
260+
make shell-test
261+
```
262+
263+
**Note**: If you're building Python bindings with `make python`, note that it temporarily sets `BUILD_SHELL=FALSE` to avoid conflicts, but the shell will still be available from your earlier `make release` build.
264+
239265
## Common Issues and Solutions
240266

267+
### Issue: clang < 18.x
268+
269+
**Solution**: Install using `llvm` homebrew:
270+
```bash
271+
brew install llvm
272+
```
273+
274+
Then follow post-install instructions, deciding whether to override default clang,
275+
or just tell cmake about it by setting `CMAKE_PREFIX_PATH`.
276+
241277
### Issue: "Too many open files" during tests
242278

243279
**Solution**: Increase the file descriptor limit:

0 commit comments

Comments
 (0)