diff --git a/CMakeLists.txt b/CMakeLists.txt index a20c2bf..0a67f4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,10 @@ target_sources(BEAMGRID PRIVATE target_compile_definitions(BEAMGRID PUBLIC JUCE_VST3_CAN_REPLACE_VST2=0 JUCE_USE_CAMERA_PERMISSIONS=0 + # This plugin does not use a WebBrowserComponent. Disabling it avoids the + # GTK3 / WebKit2GTK development dependencies that juce_gui_extra pulls in + # on Linux (the include fails to build otherwise). + JUCE_WEB_BROWSER=0 ) target_link_libraries(BEAMGRID PRIVATE diff --git a/README.md b/README.md index e35f4c9..772d618 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,25 @@ sudo pacman -S alsa-lib freetype2 libx11 libxcomposite libxcursor \ libxext libxinerama libxrandr ``` +> **Note on `gtk/gtk.h` / `fatal error: gtk/gtk.h: No such file or directory`** +> +> BEAMGRID links `juce_gui_extra`, which on Linux unconditionally compiles a +> WebKit/GTK section (see `juce_gui_extra.cpp`). Even if the GTK *runtime* is +> installed, the build needs the **development** headers plus WebKit2GTK: +> +> ```sh +> # Debian / Ubuntu +> sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev +> # Fedora +> sudo dnf install -y gtk3-devel webkit2gtk3-devel +> # Arch +> sudo pacman -S gtk3 webkit2gtk-4.1 +> ``` +> +> BEAMGRID does **not** use a web browser, so `JUCE_WEB_BROWSER` is disabled in +> `CMakeLists.txt`. With that, the GTK/WebKit dev packages above are **not** +> required to build — the error disappears even if you skip them. + Build BEAMGRID: ```sh