I just recently start using OpenAL soft (actually not really use, I'm still struggle with setting this up).
Setup OpenAL soft - Passed
First, I grab the source of OpenAL soft, I just run CMake for this and build, here the CMake result.
Using DirectX SDK directory: C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)/
Could NOT find ALSA (missing: ALSA_LIBRARY ALSA_INCLUDE_DIR)
Could NOT find OSS (missing: OSS_INCLUDE_DIR)
Could NOT find AudioIO (missing: AUDIOIO_INCLUDE_DIR)
Could NOT find SoundIO (missing: SOUNDIO_LIBRARY SOUNDIO_INCLUDE_DIR)
Could NOT find QSA (missing: QSA_LIBRARY QSA_INCLUDE_DIR)
Could NOT find PortAudio (missing: PORTAUDIO_LIBRARY PORTAUDIO_INCLUDE_DIR)
Could NOT find PulseAudio (missing: PULSEAUDIO_LIBRARY PULSEAUDIO_INCLUDE_DIR)
Could NOT find JACK (missing: JACK_LIBRARY JACK_INCLUDE_DIR)
CMake Warning at utils/alsoft-config/CMakeLists.txt:13 (find_package):
By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Qt5Widgets", but CMake did not find one.
Could not find a package configuration file provided by "Qt5Widgets" with
any of the following names:
Qt5WidgetsConfig.cmake
qt5widgets-config.cmake
Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set
"Qt5Widgets_DIR" to a directory containing one of the above files. If
"Qt5Widgets" provides a separate development package or SDK, be sure it has
been installed.
Found unsuitable Qt version "" from NOTFOUND
Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)
Building OpenAL with support for the following backends:
WinMM, DirectSound, MMDevApi, WaveFile, Null
Building with support for CPU extensions:
Default, SSE, SSE2, SSE3, SSE4.1
Installing sample configuration
Installing HRTF definitions
Installing AmbDec presets
Building utility programs
Building test programs
Building example programs
Configuring done
Generating done
So I see that I have no Qt & SDL2 for my OpenAL-soft, hope that ok (I don't even know what it for, as long as the I can build OpenAL-soft, I don't really care)
So setup OpenAL-soft seem easy.
Setup alure - failed
I got trouble when I setup alure,
I setup CMake like this:
OPENAL_INCLUDE_DIR = E:/Source/openal-soft/include/AL
OPENAL_LIBRARY = E:/Source/_build/openal-soft/Release
And I get the CMake result like this:
Found OpenAL: E:/Source/_build/openal-soft/Release
Could NOT find OGG (missing: OGG_LIBRARY OGG_INCLUDE_DIR)
Could NOT find SndFile (missing: SNDFILE_LIBRARY SNDFILE_INCLUDE_DIR)
Could NOT find MPG123 (missing: MPG123_LIBRARY MPG123_INCLUDE_DIR)
Could NOT find PhysFS (missing: PHYSFS_LIBRARY PHYSFS_INCLUDE_DIR)
Could NOT find DUMB (missing: DUMB_LIBRARY DUMB_INCLUDE_DIR)
Configuring done
WARNING: Target "alure2" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2_s" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2_s" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2_s" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure2_s" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-play" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-play" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-play" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-play" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-enum" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-enum" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-enum" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-enum" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-hrtf" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-hrtf" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-hrtf" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-hrtf" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-reverb" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-reverb" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-reverb" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-reverb" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-stream" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-stream" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-stream" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "alure-stream" requests linking to directory "E:/Source/_build/openal-soft/Release". Targets may link only to libraries. CMake is dropping the item.
Generating done
So there are a lot of warnings. I lookup this warning and seem that this is just about the CMake programming inside the file CMakeLists.txt, for the meantime, I'll ignore it.
Then I open the alure solution (alure.sln) with Visual Studio and build. Unfortunately, I got compile error
Severity Code Description Project File Line Suppression State
Error C3861 'strcasecmp': identifier not found alure-hrtf E:\Source\alure\examples\alure-hrtf.cpp 49
Error C3861 'strcasecmp': identifier not found alure-hrtf E:\Source\alure\examples\alure-hrtf.cpp 69
Error C3861 'strcasecmp': identifier not found alure-reverb E:\Source\alure\examples\alure-reverb.cpp 178
Error C3861 'strcasecmp': identifier not found alure-reverb E:\Source\alure\examples\alure-reverb.cpp 185
Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax alure2 e:\source\alure\src\auxeffectslot.h 31
Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax alure2_s e:\source\alure\src\auxeffectslot.h 31
Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax alure2 e:\source\alure\src\auxeffectslot.h 31
Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax alure2_s e:\source\alure\src\auxeffectslot.h 31
Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax alure2 e:\source\alure\src\auxeffectslot.h 31
Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax alure2_s e:\source\alure\src\auxeffectslot.h 31
Error LNK1104 cannot open file 'Debug\alure2.lib' alure-enum E:\Source\_build\alure\LINK 1
Error LNK1104 cannot open file 'Debug\alure2.lib' alure-stream E:\Source\_build\alure\LINK 1
Error LNK1104 cannot open file 'Debug\alure2.lib' alure-play E:\Source\_build\alure\LINK 1
I try to lookup the error:
//Error: a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax
//Cause by code:
void addSourceSend(Source source, ALuint send)
{ mSourceSends.emplace_back((SourceSend){source, send}); }
But I can't find any clue, and the syntax of this code is really weird.
So how can I build alure from source? Please help me
A minor confuse about OpenAL soft
This is a little off topic, but I can't help asking. there is the text inside the ReadMe.txt of the package: openal-soft-1.18.2-bin.zip that I find confusing:
QuoteNote that it is still expected to install the OpenAL redistributable provided
by Creative Labs (at http://openal.org/), as that will provide the "router"
OpenAL32.dll that applications talk to, and may provide extra drivers for the
user's system. The DLLs provided here will simply add additional devices for
applications to select from. If you do not wish to use the redistributable,
then rename soft_oal.dll to OpenAL32.dll (note: even the 64-bit DLL should be
named OpenAL32.dll). Just be aware this will prevent other system-installed
OpenAL implementations from working.
I thought OpenAL soft is stand-alone package, but here is the note about OpenAL redistributable. So if I build OpenAL-soft from source, should I concern about this? And if I need, what I should do with this? My guess is: require the users to install OpenAL redistributable from Creative Labs.
Thanks for reading