Geonkick-Synthesizer / geonkick

Geonkick is a free software synthesizer capable of generating a wide range of percussive sounds, including kicks, snares, claps, hi-hats, shakers, and also unique effect sounds.
https://geonkick.org
GNU General Public License v3.0
89 stars 7 forks source link

pipewire-jack-audio-connection support for Geonkick build system #62

Open nikolas opened 4 months ago

nikolas commented 4 months ago

Hi, I'm getting a jack error after the make step:

[ 92%] Built target api_plugin
[ 92%] Building CXX object src/standalone/CMakeFiles/geonkick.dir/main.cpp.o
[ 92%] Linking CXX executable geonkick
/usr/bin/ld: cannot find -ljack: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [src/standalone/CMakeFiles/geonkick.dir/build.make:100: src/standalone/geonkick] Error 1
make[1]: *** [CMakeFiles/Makefile2:673: src/standalone/CMakeFiles/geonkick.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

I have libjack installed. Fedora uses pipewire, so it's a pipewire version of jack, installed at /usr/lib64/pipewire-0.3/jack/libjack.so. Maybe something needs to be adjusted on the code side? The Fedora package is pipewire-jack-audio-connection-kit-devel.

Alternatively, do you offer a pre-build Fedora rpm of geonkick somewhere? The readme mentions Fedora, but I can't find one anywhere.

nikolas commented 4 months ago

There was a similar issue documented in SuperCollider, I think this will help me solve this: https://github.com/supercollider/supercollider/issues/5678

treapster commented 4 months ago

I'm using pipewire on manjaro and geonkick builds without problem, so the issue is probably on Fedora's side.

iurienistor commented 4 months ago

@nikolas If you don't need the standalone version, you can turn off from CMakeList file

iurienistor commented 4 months ago

@nikolas I'll check to see if I can reproduce.

iurienistor commented 4 months ago

@nikolas you need install jack-audio-connection-kit-devel instead of pipewire-jack-audio-connection-kit-devel... but actually the problem that there is a need to add pipewire check for Geonkick build system in order it to find jack library installed by pipewire package.

iurienistor commented 4 months ago

if you want specifically pipeware/jack a workaround is instead of -ljack use the full path to jack library /usr/lib64/pipware-0.3/jack/libjack.so in https://github.com/Geonkick-Synthesizer/geonkick/blob/main/src/standalone/CMakeLists.txt