1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
# only one of the two targets needs this
remove_definitions(-DNO_SOUND)
# Dummy Sound implementaiton
set(noSoundSources
IAudioChannel.cpp
ISound.cpp
Null/SoundChannels.cpp
Null/NullSound.cpp
)
add_library(no-sound STATIC EXCLUDE_FROM_ALL ${noSoundSources})
set_target_properties(no-sound PROPERTIES COMPILE_FLAGS "-DNO_SOUND")
# Define default sound implementation
if (NO_SOUND)
set(sound-impl no-sound PARENT_SCOPE)
else (NO_SOUND)
set(sound-impl sound PARENT_SCOPE)
endif (NO_SOUND)
# Real Sound implementaiton
if (NOT NO_SOUND)
set(soundSources
ISound.cpp
IAudioChannel.cpp
Null/NullSound.cpp
OpenAL/ALShared.cpp
OpenAL/EFX.cpp
OpenAL/EFXfuncs.cpp
OpenAL/EFXPresets.cpp
OpenAL/AudioChannel.cpp
OpenAL/OggStream.cpp
OpenAL/Sound.cpp
OpenAL/SoundChannels.cpp
OpenAL/SoundBuffer.cpp
OpenAL/SoundItem.cpp
OpenAL/SoundSource.cpp
OpenAL/VorbisShared.cpp
)
find_package_static(OpenAL REQUIRED)
include_directories(${OPENAL_INCLUDE_DIR})
find_package_static(OggVorbis REQUIRED)
include_directories(${OGG_INCLUDE_DIR} ${VORBIS_INCLUDE_DIR})
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/include/)
include_directories(${CMAKE_SOURCE_DIR}/include/AL)
add_library(sound STATIC EXCLUDE_FROM_ALL ${soundSources})
target_link_libraries(sound ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY})
target_link_libraries(sound ${OPENAL_LIBRARY})
endif (NOT NO_SOUND)
|