cmake: use openal/opusfile/mpg123/libsndfile correctly

This commit is contained in:
Anonymous Maarten 2020-12-06 19:12:35 +01:00 committed by shfil
parent 9707eeb8cb
commit 8d0b4ede68
3 changed files with 78 additions and 5 deletions

View File

@ -8,7 +8,7 @@
# SNDFILE_INCLUDE_DIRS - the libsndfile include directory # SNDFILE_INCLUDE_DIRS - the libsndfile include directory
# SNDFILE_LIBRARIES - Link these to use libsndfile # SNDFILE_LIBRARIES - Link these to use libsndfile
# SNDFILE_CFLAGS - Compile options to use libsndfile # SNDFILE_CFLAGS - Compile options to use libsndfile
# SndFile::SNdFile - Imported library of libsndfile # SndFile::SndFile - Imported library of libsndfile
# #
# Copyright (C) 2006 Wengo # Copyright (C) 2006 Wengo
# #
@ -48,15 +48,15 @@ find_library(SNDFILE_LIBRARY
set(SNDFILE_CFLAGS "${PKG_SNDFILE_CFLAGS_OTHER}" CACHE STRING "CFLAGS of libsndfile") set(SNDFILE_CFLAGS "${PKG_SNDFILE_CFLAGS_OTHER}" CACHE STRING "CFLAGS of libsndfile")
set(SNDFILE_INCLUDE_DIRS ${SNDFILE_INCLUDE_DIR}) set(SNDFILE_INCLUDE_DIRS "${SNDFILE_INCLUDE_DIR}")
set(SNDFILE_LIBRARIES ${SNDFILE_LIBRARY}) set(SNDFILE_LIBRARIES "${SNDFILE_LIBRARY}")
if (SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES) if (SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES)
set(SNDFILE_FOUND TRUE) set(SNDFILE_FOUND TRUE)
endif (SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES) endif (SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES)
# handle the QUIETLY and REQUIRED arguments and set SNdFile_FOUND to TRUE if # handle the QUIETLY and REQUIRED arguments and set SndFile_FOUND to TRUE if
# all listed variables are TRUE # all listed variables are TRUE
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SndFile DEFAULT_MSG SNDFILE_INCLUDE_DIRS SNDFILE_LIBRARIES) find_package_handle_standard_args(SndFile DEFAULT_MSG SNDFILE_INCLUDE_DIRS SNDFILE_LIBRARIES)

67
cmake/Findopusfile.cmake Normal file
View File

@ -0,0 +1,67 @@
# - Try to find opusfile
#
# Once done this will define
#
# OPUSFILE_FOUND - system has opusfile
# OPUSFILE_INCLUDE_DIRS - the opusfile include directories
# OPUSFILE_LIBRARIES - Link these to use opusfile
# OPUSFILE_CFLAGS - Compile options to use opusfile
# opusfile::opusfile - Imported library of opusfile
#
# FIXME: opusfile does not ship an official opusfile cmake script,
# rename this file/variables/target when/if it has.
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_search_module(PKG_OPUSFILE "opusfile")
endif()
find_path(OPUSFILE_INCLUDE_DIR
NAMES
opusfile.h
PATH_SUFFIXES
opusfile
HINTS
${PKG_OPUSFILE_INCLUDE_DIRS}
PATHS
/usr/include
/usr/local/include
/opt/local/include
/sw/include
)
find_library(OPUSFILE_LIBRARY
NAMES
opusfile
HINTS
${PKG_OPUSFILE_LIBRARIES}
PATHS
/usr/lib
/usr/local/lib
/opt/local/lib
/sw/lib
)
set(OPUSFILE_CFLAGS "${PKG_OPUSFILE_CFLAGS_OTHER}" CACHE STRING "CFLAGS of opusfile")
set(OPUSFILE_INCLUDE_DIRS "${OPUSFILE_INCLUDE_DIR}")
set(OPUSFILE_LIBRARIES "${OPUSFILE_LIBRARY}")
if (OPUSFILE_INCLUDE_DIRS AND OPUSFILE_LIBRARIES)
set(OPUSFILE_FOUND TRUE)
endif (OPUSFILE_INCLUDE_DIRS AND OPUSFILE_LIBRARIES)
# handle the QUIETLY and REQUIRED arguments and set Opusfile_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(opusfile DEFAULT_MSG OPUSFILE_INCLUDE_DIRS OPUSFILE_LIBRARIES)
if(NOT TARGET opusfile::opusfile)
add_library(__opusfile INTERFACE)
target_compile_options(__opusfile INTERFACE ${OPUSFILE_CFLAGS})
target_include_directories(__opusfile INTERFACE ${OPUSFILE_INCLUDE_DIRS})
target_link_libraries(__opusfile INTERFACE ${OPUSFILE_LIBRARIES})
add_library(opusfile::opusfile ALIAS __opusfile)
endif()

View File

@ -40,19 +40,25 @@ if(RE3_AUDIO STREQUAL "OAL")
find_package(OpenAL REQUIRED) find_package(OpenAL REQUIRED)
target_include_directories(re3 PRIVATE ${OPENAL_INCLUDE_DIR}) target_include_directories(re3 PRIVATE ${OPENAL_INCLUDE_DIR})
target_link_libraries(re3 PRIVATE ${OPENAL_LIBRARY}) target_link_libraries(re3 PRIVATE ${OPENAL_LIBRARY})
target_compile_definitions(re3 PRIVATE ${OPENAL_DEFINITIONS})
target_compile_definitions(re3 PRIVATE AUDIO_OAL) target_compile_definitions(re3 PRIVATE AUDIO_OAL)
elseif(RE3_AUDIO STREQUAL "MSS") elseif(RE3_AUDIO STREQUAL "MSS")
target_compile_definitions(re3 PRIVATE AUDIO_MSS) target_compile_definitions(re3 PRIVATE AUDIO_MSS)
endif() endif()
if(RE3_WITH_OPUS) if(RE3_WITH_OPUS)
find_package(opusfile REQUIRED)
target_link_libraries(re3 PRIVATE
opusfile::opusfile
)
target_compile_definitions(re3 PRIVATE AUDIO_OPUS)
else()
find_package(mpg123 REQUIRED) find_package(mpg123 REQUIRED)
find_package(SndFile REQUIRED) find_package(SndFile REQUIRED)
target_link_libraries(re3 PRIVATE target_link_libraries(re3 PRIVATE
MPG123::libmpg123 MPG123::libmpg123
SndFile::SndFile SndFile::SndFile
) )
target_compile_definitions(re3 PRIVATE AUDIO_OPUS)
endif() endif()
target_compile_definitions(re3 PRIVATE ) target_compile_definitions(re3 PRIVATE )