FindALSA.cmake 2.04 KB
Newer Older
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
############################################################################
# FindALSA.txt
# Copyright (C) 2014  Belledonne Communications, Grenoble France
#
############################################################################
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
############################################################################
#
# - Find the ALSA include file and library
#
#  ALSA_FOUND - system has ALSA
#  ALSA_INCLUDE_DIRS - the ALSA include directory
#  ALSA_LIBRARIES - The libraries needed to use ALSA

include(CheckSymbolExists)
Ghislain MARY's avatar
Ghislain MARY committed
30
include(CMakePushCheckState)
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 60 61 62 63 64 65

set(_ALSA_ROOT_PATHS
	${CMAKE_INSTALL_PREFIX}
)

find_path(ALSA_INCLUDE_DIRS
	NAMES alsa/asoundlib.h
	HINTS _ALSA_ROOT_PATHS
	PATH_SUFFIXES include
)
if(ALSA_INCLUDE_DIRS)
	set(HAVE_ALSA_ASOUNDLIB_H 1)
endif()

find_library(ALSA_LIBRARIES
	NAMES asound
	HINTS _ALSA_ROOT_PATHS
	PATH_SUFFIXES bin lib
)

if(ALSA_LIBRARIES)
	cmake_push_check_state(RESET)
	list(APPEND CMAKE_REQUIRED_INCLUDES ${ALSA_INCLUDE_DIRS})
	list(APPEND CMAKE_REQUIRED_LIBRARIES ${ALSA_LIBRARIES})
	check_symbol_exists(snd_pcm_open "alsa/asoundlib.h" HAVE_SND_PCM_OPEN)
	cmake_pop_check_state()
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ALSA
	DEFAULT_MSG
	ALSA_INCLUDE_DIRS ALSA_LIBRARIES HAVE_ALSA_ASOUNDLIB_H HAVE_SND_PCM_OPEN
)

mark_as_advanced(ALSA_INCLUDE_DIRS ALSA_LIBRARIES HAVE_ALSA_ASOUNDLIB_H HAVE_SND_PCM_OPEN)