Skip to content

Commit bf63b42

Browse files
authored
Merge pull request #3944 from ann0see/ai/agents
Refine compiling and agent docs
2 parents 267bf6b + 4d89b63 commit bf63b42

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

AGENTS.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
# Jamulus — Agent Instructions
22

3-
Real-time networked music jamming app. Qt/C++ qmake project. Client and server share one codebase; entry point: `src/main.cpp`. Configure `CONFIG` flags in `Jamulus.pro`.
3+
Real-time networked music jamming app. Qt/C++ qmake project. Client and server share one codebase; entry point: `src/main.cpp`. Qt project configuration in `Jamulus.pro`.
44

55
**Make the smallest possible change. One logical change per PR. Never mix refactoring with fixes/features.**
66

77
Priority order: Stability > Low latency / real-time safety > Backwards compatibility > Maintainability > New features. This order resolves conflicts only — new features are welcome.
88

99
---
1010

11-
## Build
11+
## Build and Test
1212

13-
Linux: `qmake && make` (use `qmake-qt5` on Fedora). Headless server: `qmake "CONFIG+=headless serveronly" && make`. First run: `git submodule update --init` (oboe for Android). Run `make distclean` before re-running `qmake` with different `CONFIG` flags. Full per-platform table: `COMPILING.md`.
13+
**Before running a build**, read `COMPILING.md` for your compile target. It includes build commands, platform-specific dependencies and `CONFIG` flags. `.github/autobuild` contains the build scripts for the GitHub Actions workflow. Read these files if you are stuck and need an example.
1414

15-
macOS: `qmake QMAKE_APPLE_DEVICE_ARCHS=arm64 QT_ARCH=arm64 -spec macx-xcode Jamulus.pro` (Use `x86_64` on Intel Macs; `macx-clang` if using `make`). Then `xcodebuild build`, and `macdeployqt ./{Debug,Release}/Jamulus.app`.
16-
17-
**Testing:** run headless server (args `-s -n`), connect a client (e.g. via: `-n -c localhost`; may need jackd running on Linux. Run dummy Jack via: `jackd -d dummy`), exercise the change; use the JSON-RPC API (`docs/JSON-RPC.md`) where possible. Connecting a client needs a non-`serveronly` build (Build section above); `serveronly` rejects `-c`. State what you tested in the PR with evidence. GitHub Actions builds multiple platforms — on failure read the failing step's log.
15+
**Testing:** run headless server (args `-s -n`), connect a client (e.g. via: `-n -c localhost`; may need jackd running on Linux. Run dummy Jack via: `jackd -d dummy`), exercise the change; use the JSON-RPC API (`docs/JSON-RPC.md`, enabled with `--jsonrpcport` and `--jsonrpcsecretfile`) where possible. Connecting a client needs a build without `serveronly` (`COMPILING.md`, "Compile time arguments"); `serveronly` rejects `-c`. State what you tested in the PR with evidence. GitHub Actions builds multiple platforms — on failure read the failing step's log.
1816

1917
## Never Do
2018

COMPILING.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ You will need Xcode and Qt.
110110

111111
First, install [Xcode from the Mac AppStore](https://apps.apple.com/us/app/xcode/id497799835?mt=12). Then [install homebrew](https://brew.sh/).
112112

113-
After that you can install Qt via homebrew:
113+
**Note:** the official macOS builds use Qt6, plus Qt5 for the legacy Intel build; the exact versions are in `.github/workflows/autobuild.yml`. The steps below use Qt5 from Homebrew because it is easier to set up. To match the official build instead, install Qt6 via the [official open-source installer](https://www.qt.io/download-qt-installer).
114+
115+
You can install Qt5 via homebrew:
114116

115117
```shell
116118
brew install Qt@5
@@ -120,6 +122,7 @@ brew link Qt@5 --force
120122
### Generate Xcode Project file
121123

122124
`qmake QMAKE_APPLE_DEVICE_ARCHS=arm64 QT_ARCH=arm64 -spec macx-xcode Jamulus.pro`
125+
123126
**Note:** if you still build on x86_64, not Apple Silicon, you must replace `arm64` with `x86_64`.
124127

125128
### Print build targets and configuration in console
@@ -149,8 +152,9 @@ Schemes:
149152

150153
`xcodebuild build`
151154

152-
Will build the file and make it available in `./Release/Jamulus.app`
153-
In order to run the application, you need to run `macdeployqt ./Release/Jamulus.app` once to set up all required libraries and frameworks.
155+
Will build the file and make it available in `./Release/Jamulus.app`.
156+
157+
**Note:** To run the application, you need to run `macdeployqt ./Release/Jamulus.app` once to set up all required libraries and frameworks.
154158

155159
If you want to build the installer, please run the `deploy_mac.sh` script: `./mac/deploy_mac.sh`. You'll find the installer in the deploy/ folder.
156160

@@ -184,7 +188,7 @@ If you want to build the installer, please run the `deploy_mac.sh` script: `./ma
184188

185189
- Install Qt, including the Android support from the Qt installer
186190
- Follow Qt's [Getting Started with Qt for Android](https://doc.qt.io/qt-5/android-getting-started.html) instructions
187-
- Make sure Jamulus submodules are present, notably oboe:
191+
- **Important**: Make sure Jamulus submodules are present, notably oboe:
188192
`git submodule update --init`
189193
- Open Jamulus.pro in Qt Creator
190194
- Now you should be able to Build & Run for Android.

0 commit comments

Comments
 (0)