Added an alternative GUI based on JUCE; I like FLTK more...

This commit is contained in:
Johannes Findeisen 2026-11-06 23:17:49 +01:00
commit cd2f87a8b3
58 changed files with 11136 additions and 10 deletions

View file

@ -79,6 +79,7 @@ lists, dependencies, SDK and packaging rules in CMake.
| Cache option | Default | Meaning |
| --- | --- | --- |
| `BUILD_TESTING` | `ON` | Build/register the test suite |
| `XTC_BUILD_JUCE_GUI` | `OFF` | Build the JUCE workstation frontend (`xtc-juce`), independently of FLTK; requires `XTC_JUCE_ROOT` |
| `XTC_BUILD_GUI` | `ON` | Discover FLTK and build the application when available |
| `XTC_WITH_JACK` | `ON` | Discover/build the JACK/PipeWire backend |
| `XTC_WITH_LADSPA` | `ON` | Enable LADSPA when the system header exists |
@ -191,3 +192,21 @@ Clean products with `cmake --build build --target clean`; to discard the cache,
remove only the selected build directory. Never configure in the source tree.
Historical validation entries in ROADMAP describe the build used at that time;
Phase 108 records the CMake migration and its verified results.
## Optional JUCE workstation frontend
See [src/gui/JUCE/README.md](../src/gui/JUCE/README.md) for the component map and
licence requirements. The SDK is supplied by the user; no download occurs.
```sh
cmake -S . -B build/juce-gui -DCMAKE_BUILD_TYPE=Debug \
-DXTC_BUILD_GUI=OFF -DXTC_BUILD_JUCE_GUI=ON -DXTC_JUCE_ROOT=/path/to/JUCE
cmake --build build/juce-gui --parallel 4 --target xtc-juce test_juce_gui
./build/juce-gui/xtc-juce examples/projects/playback-test.xtc
ctest --test-dir build/juce-gui -R juce-gui --output-on-failure -j1
```
`XTC_BUILD_GUI=ON` builds both frontends. `XTC_BUILD_JUCE` continues to mean
JUCE plugin/processor examples and can be enabled independently or alongside
the workstation frontend. A missing SDK is a configuration error only when a
JUCE option is enabled. The existing default FLTK build is unchanged.