diff --git a/CMakeLists.txt b/CMakeLists.txt index 4fbb3a8..0302ae8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -293,6 +293,7 @@ ELSE() FIND_PACKAGE(ALSA) IF(ALSA_FOUND) OPTION(PA_USE_ALSA "Enable support for ALSA" ON) + OPTION(PA_ALSA_DYNAMIC "Enable loading ALSA through dlopen" OFF) ELSE() OPTION(PA_USE_ALSA "Enable support for ALSA" OFF) ENDIF() @@ -303,8 +304,14 @@ ELSE() SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_linux_alsa.h) SET(PA_SOURCES ${PA_SOURCES} ${PA_ALSA_SOURCES}) SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_USE_ALSA) - SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${ALSA_LIBRARIES}) - SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -lasound") + IF(PA_ALSA_DYNAMIC) + SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_ALSA_DYNAMIC) + SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${CMAKE_DL_LIBS}) + SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -l${CMAKE_DL_LIBS}") + ELSE() + SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${ALSA_LIBRARIES}) + SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -lasound") + ENDIF() ENDIF() ENDIF()