jamoma / JamomaCore

Jamoma Frameworks for Audio and Control Structure
Other
36 stars 14 forks source link

feature/CMake CMake doesn't check for libasound when configuring #332

Open avilleret opened 9 years ago

avilleret commented 9 years ago

on Ubuntu, without libasound-dev package installed, make failed with CMake build system (branch https://github.com/jamoma/JamomaCore/tree/feature/cmake)

I guess we should check for libasound-dev when configuring build, and make the configure script fail or disable everything that need libasound.

jcelerier commented 9 years ago

What is the target that requires libasound ? I'll add it. As a side note, you can now switch to the dev branch :)

avilleret commented 9 years ago

libAudioEngine.ttso

Linking CXX shared library ../../../libAudioEngine.ttso
/usr/bin/ld: ne peut trouver -lasound
collect2: error: ld returned 1 exit status
DSP/extensions/AudioEngine/CMakeFiles/AudioEngine.dir/build.make:88: recipe for target 'libAudioEngine.ttso' failed
make[2]: *** [libAudioEngine.ttso] Error 1
CMakeFiles/Makefile2:1831: recipe for target 'DSP/extensions/AudioEngine/CMakeFiles/AudioEngine.dir/all' failed
make[1]: *** [DSP/extensions/AudioEngine/CMakeFiles/AudioEngine.dir/all] Error 2
Makefile:147: recipe for target 'all' failed
make: *** [all] Error 2
jcelerier commented 9 years ago

Weird, it seems to be because portaudio depends on libasound. But normally when you installed portaudio19-dev it should have installed libasound-dev too : http://packages.ubuntu.com/trusty/portaudio19-dev

And when portaudio is not found, AudioEngine should already fail (AudioEngine/CMakeLists.txt) :

find_package(Portaudio)
if(NOT PORTAUDIO_FOUND)
     message(STATUS "Package portaudio required, but not found! Won't build AudioEngine extension.")
     return()
endif()
avilleret commented 9 years ago

ok so one more weird thing on my computer... I have that:

$ find /usr/ -name libportaudio*
/usr/lib/x86_64-linux-gnu/libportaudio.so.2
/usr/lib/x86_64-linux-gnu/libportaudio.so.2.0.0
/usr/local/lib/libportaudio.so
/usr/local/lib/libportaudio.a
/usr/local/lib/libportaudio.so.2.0.0.bak
/usr/local/lib/libportaudio.so.2
/usr/local/lib/libportaudio.so.2.0.0
/usr/local/lib/libportaudio.la
/usr/share/doc/libportaudio2

and the libportaudio-dev package is not installed yet

so maybe you can add a catch for that and throw a message like :

libportaudio found but not libasound :
"clean up your computer dude and come back later !"

:-)

jcelerier commented 9 years ago

The fix should have been merged, could you check ?

avilleret commented 9 years ago

which fix ? on branch dev I still have the same issue when linking and no warning when running cmake

the whole log is here : https://gist.github.com/avilleret/f7f0f7d745d235ace884

avilleret commented 9 years ago

I think I found the issue, PureData comes with its own portaudio-2.0 distribution, and when installing puredata, it installs /usr/local/include/portaudio.h and this abuse cmake which then suppose to find libportaudio but fails (and I don't know why). installing portaudio from ubuntu repo fix that

sorry for the noise