Merge pull request #4833 from Orphis/cmake_audiocommon
More CMake updates for AudioCommon dependencies
This commit is contained in:
commit
649fc390ff
|
@ -421,19 +421,6 @@ if (OPENGL_GL)
|
|||
include_directories(${OPENGL_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
if(ENABLE_AO)
|
||||
check_lib(AO ao ao QUIET)
|
||||
if(AO_FOUND)
|
||||
add_definitions(-DHAVE_AO=1)
|
||||
message(STATUS "ao found, enabling ao sound backend")
|
||||
else()
|
||||
add_definitions(-DHAVE_AO=0)
|
||||
message(STATUS "ao NOT found, disabling ao sound backend")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "ao explicitly disabled, disabling ao sound backend")
|
||||
endif()
|
||||
|
||||
if(ENABLE_BLUEZ)
|
||||
check_lib(BLUEZ bluez bluez QUIET)
|
||||
if(BLUEZ_FOUND)
|
||||
|
@ -460,23 +447,6 @@ else()
|
|||
message(STATUS "PulseAudio explicitly disabled, disabling PulseAudio sound backend")
|
||||
endif()
|
||||
|
||||
if(ENABLE_OPENAL)
|
||||
if(WIN32)
|
||||
set(ENV{OPENALDIR} ${CMAKE_CURRENT_LIST_DIR}/Externals/OpenAL)
|
||||
endif()
|
||||
find_package(OpenAL)
|
||||
if(OPENAL_FOUND)
|
||||
add_definitions(-DHAVE_OPENAL=1)
|
||||
include_directories(${OPENAL_INCLUDE_DIR})
|
||||
message(STATUS "OpenAL found, enabling OpenAL sound backend")
|
||||
else()
|
||||
add_definitions(-DHAVE_OPENAL=0)
|
||||
message(STATUS "OpenAL NOT found, disabling OpenAL sound backend")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "OpenAL explicitly disabled, disabling OpenAL sound backend")
|
||||
endif()
|
||||
|
||||
if(ENABLE_LLVM)
|
||||
find_package(LLVM)
|
||||
if (LLVM_FOUND)
|
||||
|
@ -691,6 +661,7 @@ else()
|
|||
set(PNG png)
|
||||
endif()
|
||||
|
||||
find_package(OpenAL)
|
||||
if(OPENAL_FOUND)
|
||||
if(NOT APPLE)
|
||||
check_lib(SOUNDTOUCH soundtouch SoundTouch soundtouch/SoundTouch.h QUIET)
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
# - Find AO library
|
||||
# This module defines
|
||||
# AO_INCLUDE_DIR
|
||||
# AO_LIBRARIES
|
||||
# AO_FOUND
|
||||
#
|
||||
# vim: expandtab sw=4 ts=4 sts=4:
|
||||
|
||||
include(FindPkgConfig)
|
||||
pkg_check_modules (AO_PKG QUIET ao)
|
||||
|
||||
find_path(AO_INCLUDE_DIR NAMES ao/ao.h
|
||||
PATHS
|
||||
${AO_PKG_INCLUDE_DIRS}
|
||||
/usr/include/ao
|
||||
/usr/include
|
||||
/usr/local/include/ao
|
||||
/usr/local/include
|
||||
)
|
||||
|
||||
find_library(AO_LIBRARIES NAMES ao
|
||||
PATHS
|
||||
${AO_PKG_LIBRARY_DIRS}
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(AO
|
||||
REQUIRED_VARS AO_LIBRARIES AO_INCLUDE_DIR)
|
||||
|
||||
if(AO_FOUND)
|
||||
if(NOT TARGET AO::AO)
|
||||
add_library(AO::AO UNKNOWN IMPORTED)
|
||||
set_target_properties(AO::AO PROPERTIES
|
||||
IMPORTED_LOCATION ${AO_LIBRARIES}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${AO_INCLUDE_DIR}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(AO_INCLUDE_DIR AO_LIBRARIES)
|
|
@ -0,0 +1,118 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#.rst:
|
||||
# FindOpenAL
|
||||
# ----------
|
||||
#
|
||||
#
|
||||
#
|
||||
# Locate OpenAL This module defines OPENAL_LIBRARY OPENAL_FOUND, if
|
||||
# false, do not try to link to OpenAL OPENAL_INCLUDE_DIR, where to find
|
||||
# the headers
|
||||
#
|
||||
# $OPENALDIR is an environment variable that would correspond to the
|
||||
# ./configure --prefix=$OPENALDIR used in building OpenAL.
|
||||
#
|
||||
# Created by Eric Wing. This was influenced by the FindSDL.cmake
|
||||
# module.
|
||||
|
||||
# This makes the presumption that you are include al.h like
|
||||
# #include "al.h"
|
||||
# and not
|
||||
# #include <AL/al.h>
|
||||
# The reason for this is that the latter is not entirely portable.
|
||||
# Windows/Creative Labs does not by default put their headers in AL/ and
|
||||
# OS X uses the convention <OpenAL/al.h>.
|
||||
#
|
||||
# For Windows, Creative Labs seems to have added a registry key for their
|
||||
# OpenAL 1.1 installer. I have added that key to the list of search paths,
|
||||
# however, the key looks like it could be a little fragile depending on
|
||||
# if they decide to change the 1.00.0000 number for bug fix releases.
|
||||
# Also, they seem to have laid down groundwork for multiple library platforms
|
||||
# which puts the library in an extra subdirectory. Currently there is only
|
||||
# Win32 and I have hardcoded that here. This may need to be adjusted as
|
||||
# platforms are introduced.
|
||||
# The OpenAL 1.0 installer doesn't seem to have a useful key I can use.
|
||||
# I do not know if the Nvidia OpenAL SDK has a registry key.
|
||||
#
|
||||
# For OS X, remember that OpenAL was added by Apple in 10.4 (Tiger).
|
||||
# To support the framework, I originally wrote special framework detection
|
||||
# code in this module which I have now removed with CMake's introduction
|
||||
# of native support for frameworks.
|
||||
# In addition, OpenAL is open source, and it is possible to compile on Panther.
|
||||
# Furthermore, due to bugs in the initial OpenAL release, and the
|
||||
# transition to OpenAL 1.1, it is common to need to override the built-in
|
||||
# framework.
|
||||
# Per my request, CMake should search for frameworks first in
|
||||
# the following order:
|
||||
# ~/Library/Frameworks/OpenAL.framework/Headers
|
||||
# /Library/Frameworks/OpenAL.framework/Headers
|
||||
# /System/Library/Frameworks/OpenAL.framework/Headers
|
||||
#
|
||||
# On OS X, this will prefer the Framework version (if found) over others.
|
||||
# People will have to manually change the cache values of
|
||||
# OPENAL_LIBRARY to override this selection or set the CMake environment
|
||||
# CMAKE_INCLUDE_PATH to modify the search paths.
|
||||
|
||||
find_path(OPENAL_INCLUDE_DIR al.h
|
||||
HINTS
|
||||
ENV OPENALDIR
|
||||
PATH_SUFFIXES include/AL include/OpenAL include
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw # Fink
|
||||
/opt/local # DarwinPorts
|
||||
/opt/csw # Blastwave
|
||||
/opt
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
|
||||
)
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(_OpenAL_ARCH_DIR libs/Win64)
|
||||
else()
|
||||
set(_OpenAL_ARCH_DIR libs/Win32)
|
||||
endif()
|
||||
|
||||
find_library(OPENAL_LIBRARY
|
||||
NAMES OpenAL al openal OpenAL32
|
||||
HINTS
|
||||
ENV OPENALDIR
|
||||
PATH_SUFFIXES lib64 lib libs64 libs ${_OpenAL_ARCH_DIR}
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
|
||||
)
|
||||
|
||||
unset(_OpenAL_ARCH_DIR)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenAL DEFAULT_MSG OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
|
||||
|
||||
if(OPENAL_FOUND)
|
||||
if(NOT TARGET OpenAL::OpenAL)
|
||||
add_library(OpenAL::OpenAL UNKNOWN IMPORTED)
|
||||
if(OPENAL_LIBRARY MATCHES "/([^/]+)\\.framework$")
|
||||
set(_al_fw "${OPENAL_LIBRARY}/${CMAKE_MATCH_1}")
|
||||
if(EXISTS "${_al_fw}.tbd")
|
||||
set(_al_fw "${_al_fw}.tbd")
|
||||
endif()
|
||||
set_target_properties(OpenAL::OpenAL PROPERTIES
|
||||
IMPORTED_LOCATION "${_al_fw}")
|
||||
else()
|
||||
set_target_properties(OpenAL::OpenAL PROPERTIES
|
||||
IMPORTED_LOCATION "${OPENAL_LIBRARY}")
|
||||
endif()
|
||||
set_target_properties(OpenAL::OpenAL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${OPENAL_INCLUDE_DIR}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
|
|
@ -29,14 +29,35 @@ else()
|
|||
message(STATUS "ALSA explicitly disabled, disabling ALSA sound backend")
|
||||
endif()
|
||||
|
||||
if(AO_FOUND)
|
||||
target_sources(audiocommon PRIVATE AOSoundStream.cpp)
|
||||
target_link_libraries(audiocommon PRIVATE ${AO_LIBRARIES})
|
||||
if(ENABLE_AO)
|
||||
find_package(AO)
|
||||
if(AO_FOUND)
|
||||
message(STATUS "ao found, enabling ao sound backend")
|
||||
target_sources(audiocommon PRIVATE AOSoundStream.cpp)
|
||||
target_link_libraries(audiocommon PRIVATE AO::AO)
|
||||
target_compile_definitions(audiocommon PRIVATE HAVE_AO=1)
|
||||
else()
|
||||
message(STATUS "ao NOT found, disabling ao sound backend")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "ao explicitly disabled, disabling ao sound backend")
|
||||
endif()
|
||||
|
||||
if(OPENAL_FOUND)
|
||||
target_sources(audiocommon PRIVATE OpenALStream.cpp aldlist.cpp)
|
||||
target_link_libraries(audiocommon PRIVATE ${OPENAL_LIBRARY} SoundTouch)
|
||||
if(ENABLE_OPENAL)
|
||||
if(WIN32)
|
||||
set(ENV{OPENALDIR} ${PROJECT_SOURCE_DIR}/Externals/OpenAL)
|
||||
endif()
|
||||
find_package(OpenAL)
|
||||
if(OPENAL_FOUND)
|
||||
message(STATUS "OpenAL found, enabling OpenAL sound backend")
|
||||
target_sources(audiocommon PRIVATE OpenALStream.cpp aldlist.cpp)
|
||||
target_link_libraries(audiocommon PRIVATE OpenAL::OpenAL SoundTouch)
|
||||
target_compile_definitions(audiocommon PRIVATE HAVE_OPENAL=1)
|
||||
else()
|
||||
message(STATUS "OpenAL NOT found, disabling OpenAL sound backend")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "OpenAL explicitly disabled, disabling OpenAL sound backend")
|
||||
endif()
|
||||
|
||||
if(PULSEAUDIO_FOUND)
|
||||
|
|
Loading…
Reference in New Issue