aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/FindAlsa.cmake54
-rw-r--r--modules/config-alsa.h.cmake10
2 files changed, 38 insertions, 26 deletions
diff --git a/modules/FindAlsa.cmake b/modules/FindAlsa.cmake
index 90966007..966841a9 100644
--- a/modules/FindAlsa.cmake
+++ b/modules/FindAlsa.cmake
@@ -4,8 +4,11 @@
# It offers the following macros:
# ALSA_CONFIGURE_FILE(config_header) - generate a config.h, typical usage:
# ALSA_CONFIGURE_FILE(${CMAKE_BINARY_DIR}/config-alsa.h)
+# ALSA_VERSION_STRING(version_string) looks for alsa/version.h and reads the version string into
+# the first argument passed to the macro
# Copyright (c) 2006, David Faure, <faure@kde.org>
+# Copyright (c) 2007, Matthias Kretz <kretz@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
@@ -15,34 +18,43 @@ include(CheckIncludeFileCXX)
include(CheckLibraryExists)
# Already done by toplevel
-#check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
-#check_include_files(machine/soundcard.h HAVE_MACHINE_SOUNDCARD_H)
-
-check_include_files(linux/awe_voice.h HAVE_LINUX_AWE_VOICE_H)
-check_include_files(awe_voice.h HAVE_AWE_VOICE_H)
-check_include_files(/usr/src/sys/i386/isa/sound/awe_voice.h HAVE__USR_SRC_SYS_I386_ISA_SOUND_AWE_VOICE_H)
-check_include_files(/usr/src/sys/gnu/i386/isa/sound/awe_voice.h HAVE__USR_SRC_SYS_GNU_I386_ISA_SOUND_AWE_VOICE_H)
-
-check_include_file_cxx(sys/asoundlib.h HAVE_SYS_ASOUNDLIB_H)
-check_include_file_cxx(alsa/asoundlib.h HAVE_ALSA_ASOUNDLIB_H)
-
-check_library_exists(asound snd_seq_create_simple_port "" HAVE_LIBASOUND2)
+FIND_LIBRARY(ASOUND_LIBRARY asound)
+check_library_exists(asound snd_seq_create_simple_port ${ASOUND_LIBRARY} HAVE_LIBASOUND2)
if(HAVE_LIBASOUND2)
- set(ASOUND_LIBRARY "asound")
- check_library_exists(asound snd_pcm_resume ${ASOUND_LIBRARY} ASOUND_HAS_SND_PCM_RESUME)
message(STATUS "Found ALSA: ${ASOUND_LIBRARY}")
- if(ASOUND_HAS_SND_PCM_RESUME)
- set(HAVE_SND_PCM_RESUME 1)
- endif(ASOUND_HAS_SND_PCM_RESUME)
- SET (LIBASOUND2_FOUND TRUE)
else(HAVE_LIBASOUND2)
message(STATUS "ALSA not found")
endif(HAVE_LIBASOUND2)
-
set(ALSA_FOUND HAVE_LIBASOUND2)
-get_filename_component(_FIND_ALSA_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
+MACRO(ALSA_VERSION_STRING _result)
+ # check for version in alsa/version.h
+ FIND_PATH(_ALSA_INCLUDE_DIR alsa/version.h)
+ IF(_ALSA_INCLUDE_DIR)
+ FILE(READ "${_ALSA_INCLUDE_DIR}/alsa/version.h" _ALSA_VERSION_CONTENT)
+ STRING(REGEX REPLACE ".*SND_LIB_VERSION_STR.*\"(.*)\".*" "\\1" ${_result} ${_ALSA_VERSION_CONTENT})
+ ELSE(_ALSA_INCLUDE_DIR)
+ MESSAGE(STATUS "ALSA version not known. ALSA output will probably not work correctly.")
+ ENDIF(_ALSA_INCLUDE_DIR)
+ENDMACRO(ALSA_VERSION_STRING _result)
+get_filename_component(_FIND_ALSA_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
macro(ALSA_CONFIGURE_FILE _destFile)
- configure_file(${_FIND_ALSA_MODULE_DIR}/config-alsa.h.cmake ${_destFile} )
+ check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
+ check_include_files(machine/soundcard.h HAVE_MACHINE_SOUNDCARD_H)
+
+ check_include_files(linux/awe_voice.h HAVE_LINUX_AWE_VOICE_H)
+ check_include_files(awe_voice.h HAVE_AWE_VOICE_H)
+ check_include_files(/usr/src/sys/i386/isa/sound/awe_voice.h HAVE__USR_SRC_SYS_I386_ISA_SOUND_AWE_VOICE_H)
+ check_include_files(/usr/src/sys/gnu/i386/isa/sound/awe_voice.h HAVE__USR_SRC_SYS_GNU_I386_ISA_SOUND_AWE_VOICE_H)
+
+ check_include_file_cxx(sys/asoundlib.h HAVE_SYS_ASOUNDLIB_H)
+ check_include_file_cxx(alsa/asoundlib.h HAVE_ALSA_ASOUNDLIB_H)
+
+ check_library_exists(asound snd_pcm_resume ${ASOUND_LIBRARY} ASOUND_HAS_SND_PCM_RESUME)
+ if(ASOUND_HAS_SND_PCM_RESUME)
+ set(HAVE_SND_PCM_RESUME 1)
+ endif(ASOUND_HAS_SND_PCM_RESUME)
+
+ configure_file(${_FIND_ALSA_MODULE_DIR}/config-alsa.h.cmake ${_destFile})
endmacro(ALSA_CONFIGURE_FILE _destFile)
diff --git a/modules/config-alsa.h.cmake b/modules/config-alsa.h.cmake
index 9c9e1683..44374cfa 100644
--- a/modules/config-alsa.h.cmake
+++ b/modules/config-alsa.h.cmake
@@ -15,11 +15,6 @@
/* Define to 1 if you have the <awe_voice.h> header file. */
#cmakedefine HAVE_AWE_VOICE_H 1
-
-
-/* Define if you have libasound.so.1 (for ALSA 0.5.x support - disabled now) */
-/* #undef HAVE_LIBASOUND */
-
/* Define if you have libasound.so.2 (required for ALSA 0.9.x support) */
#cmakedefine HAVE_LIBASOUND2 1
@@ -32,3 +27,8 @@
/* Define to 1 if you have the <sys/asoundlib.h> header file. */
#cmakedefine HAVE_SYS_ASOUNDLIB_H 1
+/* Define to 1 if you have the <sys/soundcard.h> header file. */
+#cmakedefine HAVE_SYS_SOUNDCARD_H 1
+
+/* Define to 1 if you have the <machine/soundcard.h> header file. */
+#cmakedefine HAVE_MACHINE_SOUNDCARD_H 1