]> Repos - portaudio/commitdiff
Add support for enabling dynamic alsa loading in CMakeLists.txt
authorJean-Michaël Celerier <jeanmichael.celerier@gmail.com>
Tue, 6 Oct 2020 21:07:15 +0000 (23:07 +0200)
committerRoss Bencina <rossb@audiomulch.com>
Thu, 22 Oct 2020 00:50:48 +0000 (11:50 +1100)
It had been added to the source code a long time ago, but was not integrated to the
build system.

CMakeLists.txt

index 4fbb3a89450945024daea592052e1e62aec04f06..0302ae8c29ee85d1ba8dbcd44cd11a4f63725cab 100644 (file)
@@ -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()