Newer
Older
minerva / Userland / Libraries / LibAudio / CMakeLists.txt
@minerva minerva on 13 Jul 1 KB Initial commit
set(SOURCES
    GenericTypes.cpp
    SampleFormats.cpp
    Loader.cpp
    WavLoader.cpp
    FlacLoader.cpp
    FlacWriter.cpp
    WavWriter.cpp
    Metadata.cpp
    MP3Loader.cpp
    PlaybackStream.cpp
    QOALoader.cpp
    QOATypes.cpp
    UserSampleQueue.cpp
    VorbisComment.cpp
)

if (MINERVA)
    list(APPEND SOURCES ConnectionToServer.cpp)
    list(APPEND SOURCES ConnectionToManagerServer.cpp)
    list(APPEND SOURCES PlaybackStreamMinerva.cpp)
    set(GENERATED_SOURCES
        ../../Services/AudioServer/AudioClientEndpoint.h
        ../../Services/AudioServer/AudioServerEndpoint.h
        ../../Services/AudioServer/AudioManagerClientEndpoint.h
        ../../Services/AudioServer/AudioManagerServerEndpoint.h
    )
endif()

if (HAVE_PULSEAUDIO)
    list(APPEND SOURCES
        PlaybackStreamPulseAudio.cpp
        PulseAudioWrappers.cpp
    )
endif()

minerva_lib(LibAudio audio)
target_link_libraries(LibAudio PRIVATE LibCore LibRIFF LibIPC LibThreading LibUnicode LibCrypto)

if (HAVE_PULSEAUDIO)
    target_link_libraries(LibAudio PRIVATE pulse)
    target_compile_definitions(LibAudio PRIVATE HAVE_PULSEAUDIO=1)
endif()

if (APPLE AND NOT IOS)
    target_sources(LibAudio PRIVATE PlaybackStreamAudioUnit.cpp)

    find_library(AUDIO_UNIT AudioUnit REQUIRED)
    target_link_libraries(LibAudio PRIVATE ${AUDIO_UNIT})
endif()