mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 08:34:40 +00:00
update openal-soft
sync point: master-ac5d40e40a0155351fe1be4aab30017b6a13a859
This commit is contained in:
parent
762a84550f
commit
3603188b7f
365 changed files with 76053 additions and 53126 deletions
|
|
@ -1,9 +0,0 @@
|
|||
#include <sys/types.h>
|
||||
|
||||
#define KB ((off_t)(1024))
|
||||
#define MB ((off_t)(KB*1024))
|
||||
#define GB ((off_t)(MB*1024))
|
||||
int tb[((GB+GB+GB) > GB) ? 1 : -1];
|
||||
|
||||
int main()
|
||||
{ return 0; }
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# - Check if the _FILE_OFFSET_BITS macro is needed for large files
|
||||
# CHECK_FILE_OFFSET_BITS()
|
||||
#
|
||||
# The following variables may be set before calling this macro to
|
||||
# modify the way the check is run:
|
||||
#
|
||||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
|
||||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
|
||||
# CMAKE_REQUIRED_INCLUDES = list of include directories
|
||||
# Copyright (c) 2009, Chris Robinson
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the LGPL license.
|
||||
|
||||
|
||||
MACRO(CHECK_FILE_OFFSET_BITS)
|
||||
|
||||
IF(NOT DEFINED _FILE_OFFSET_BITS)
|
||||
MESSAGE(STATUS "Checking _FILE_OFFSET_BITS for large files")
|
||||
TRY_COMPILE(__WITHOUT_FILE_OFFSET_BITS_64
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/CheckFileOffsetBits.c
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS})
|
||||
IF(NOT __WITHOUT_FILE_OFFSET_BITS_64)
|
||||
TRY_COMPILE(__WITH_FILE_OFFSET_BITS_64
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/CheckFileOffsetBits.c
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_FILE_OFFSET_BITS=64)
|
||||
ENDIF(NOT __WITHOUT_FILE_OFFSET_BITS_64)
|
||||
|
||||
IF(NOT __WITHOUT_FILE_OFFSET_BITS_64 AND __WITH_FILE_OFFSET_BITS_64)
|
||||
SET(_FILE_OFFSET_BITS 64 CACHE INTERNAL "_FILE_OFFSET_BITS macro needed for large files")
|
||||
MESSAGE(STATUS "Checking _FILE_OFFSET_BITS for large files - 64")
|
||||
ELSE(NOT __WITHOUT_FILE_OFFSET_BITS_64 AND __WITH_FILE_OFFSET_BITS_64)
|
||||
SET(_FILE_OFFSET_BITS "" CACHE INTERNAL "_FILE_OFFSET_BITS macro needed for large files")
|
||||
MESSAGE(STATUS "Checking _FILE_OFFSET_BITS for large files - not needed")
|
||||
ENDIF(NOT __WITHOUT_FILE_OFFSET_BITS_64 AND __WITH_FILE_OFFSET_BITS_64)
|
||||
ENDIF(NOT DEFINED _FILE_OFFSET_BITS)
|
||||
|
||||
ENDMACRO(CHECK_FILE_OFFSET_BITS)
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
# - Check if a symbol exists as a function, variable, or macro
|
||||
# CHECK_SYMBOL_EXISTS(<symbol> <files> <variable>)
|
||||
#
|
||||
# Check that the <symbol> is available after including given header
|
||||
# <files> and store the result in a <variable>. Specify the list
|
||||
# of files in one argument as a semicolon-separated list.
|
||||
#
|
||||
# If the header files define the symbol as a macro it is considered
|
||||
# available and assumed to work. If the header files declare the
|
||||
# symbol as a function or variable then the symbol must also be
|
||||
# available for linking. If the symbol is a type or enum value
|
||||
# it will not be recognized (consider using CheckTypeSize or
|
||||
# CheckCSourceCompiles).
|
||||
#
|
||||
# The following variables may be set before calling this macro to
|
||||
# modify the way the check is run:
|
||||
#
|
||||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
|
||||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
|
||||
# CMAKE_REQUIRED_INCLUDES = list of include directories
|
||||
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2003-2011 Kitware, Inc.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_SHARED_FUNCTION_EXISTS SYMBOL FILES LIBRARY LOCATION VARIABLE)
|
||||
IF(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
|
||||
SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
IF(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_SYMBOL_EXISTS_LIBS
|
||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES};${LIBRARY}")
|
||||
ELSE(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_SYMBOL_EXISTS_LIBS
|
||||
"-DLINK_LIBRARIES:STRING=${LIBRARY}")
|
||||
ENDIF(CMAKE_REQUIRED_LIBRARIES)
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CMAKE_SYMBOL_EXISTS_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CMAKE_SYMBOL_EXISTS_INCLUDES)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
FOREACH(FILE ${FILES})
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n")
|
||||
ENDFOREACH(FILE)
|
||||
SET(CMAKE_CONFIGURABLE_FILE_CONTENT
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}\nvoid cmakeRequireSymbol(int dummy,...){(void)dummy;}\nint main()\n{\n cmakeRequireSymbol(0,&${SYMBOL});\n return 0;\n}\n")
|
||||
|
||||
CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c" @ONLY)
|
||||
|
||||
MESSAGE(STATUS "Looking for ${SYMBOL} in ${LIBRARY}")
|
||||
TRY_COMPILE(${VARIABLE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS}
|
||||
-DLINK_DIRECTORIES:STRING=${LOCATION}
|
||||
"${CHECK_SYMBOL_EXISTS_LIBS}"
|
||||
"${CMAKE_SYMBOL_EXISTS_INCLUDES}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
IF(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for ${SYMBOL} in ${LIBRARY} - found")
|
||||
SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL} in ${LIBRARY}")
|
||||
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if the ${SYMBOL} "
|
||||
"exist in ${LIBRARY} passed with the following output:\n"
|
||||
"${OUTPUT}\nFile ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c:\n"
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
|
||||
ELSE(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for ${SYMBOL} in ${LIBRARY} - not found.")
|
||||
SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL} in ${LIBRARY}")
|
||||
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if the ${SYMBOL} "
|
||||
"exist in ${LIBRARY} failed with the following output:\n"
|
||||
"${OUTPUT}\nFile ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c:\n"
|
||||
"${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
|
||||
ENDIF(${VARIABLE})
|
||||
ENDIF(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
|
||||
ENDMACRO(CHECK_SHARED_FUNCTION_EXISTS)
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# - Find DirectSound includes and libraries
|
||||
#
|
||||
# DSOUND_FOUND - True if DSOUND_INCLUDE_DIR & DSOUND_LIBRARY are found
|
||||
# DSOUND_LIBRARIES - Set when DSOUND_LIBRARY is found
|
||||
# DSOUND_INCLUDE_DIRS - Set when DSOUND_INCLUDE_DIR is found
|
||||
#
|
||||
# DSOUND_INCLUDE_DIR - where to find dsound.h, etc.
|
||||
# DSOUND_LIBRARY - the dsound library
|
||||
#
|
||||
|
||||
if (WIN32)
|
||||
include(FindWindowsSDK)
|
||||
if (WINDOWSSDK_FOUND)
|
||||
get_windowssdk_library_dirs(${WINDOWSSDK_PREFERRED_DIR} WINSDK_LIB_DIRS)
|
||||
get_windowssdk_include_dirs(${WINDOWSSDK_PREFERRED_DIR} WINSDK_INCLUDE_DIRS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# DSOUND_INCLUDE_DIR
|
||||
find_path(DSOUND_INCLUDE_DIR
|
||||
NAMES "dsound.h"
|
||||
PATHS "${DXSDK_DIR}" ${WINSDK_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES include
|
||||
DOC "The DirectSound include directory")
|
||||
|
||||
# DSOUND_LIBRARY
|
||||
find_library(DSOUND_LIBRARY
|
||||
NAMES dsound
|
||||
PATHS "${DXSDK_DIR}" ${WINSDK_LIB_DIRS}
|
||||
PATH_SUFFIXES lib lib/x86 lib/x64
|
||||
DOC "The DirectSound library")
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(DSound REQUIRED_VARS DSOUND_LIBRARY DSOUND_INCLUDE_DIR)
|
||||
|
||||
if(DSOUND_FOUND)
|
||||
set(DSOUND_LIBRARIES ${DSOUND_LIBRARY})
|
||||
set(DSOUND_INCLUDE_DIRS ${DSOUND_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(DSOUND_INCLUDE_DIR DSOUND_LIBRARY)
|
||||
|
|
@ -84,17 +84,9 @@ macro(find_component _component _pkgconfig _library _header)
|
|||
if(EXISTS "${${_component}_INCLUDE_DIRS}/${_ver_header}")
|
||||
file(STRINGS "${${_component}_INCLUDE_DIRS}/${_ver_header}" version_str REGEX "^#define[\t ]+LIB${_component}_VERSION_M.*")
|
||||
|
||||
foreach(_str "${version_str}")
|
||||
if(NOT version_maj)
|
||||
string(REGEX REPLACE "^.*LIB${_component}_VERSION_MAJOR[\t ]+([0-9]*).*$" "\\1" version_maj "${_str}")
|
||||
endif()
|
||||
if(NOT version_min)
|
||||
string(REGEX REPLACE "^.*LIB${_component}_VERSION_MINOR[\t ]+([0-9]*).*$" "\\1" version_min "${_str}")
|
||||
endif()
|
||||
if(NOT version_mic)
|
||||
string(REGEX REPLACE "^.*LIB${_component}_VERSION_MICRO[\t ]+([0-9]*).*$" "\\1" version_mic "${_str}")
|
||||
endif()
|
||||
endforeach()
|
||||
string(REGEX REPLACE "^.*LIB${_component}_VERSION_MAJOR[\t ]+([0-9]*).*$" "\\1" version_maj "${version_str}")
|
||||
string(REGEX REPLACE "^.*LIB${_component}_VERSION_MINOR[\t ]+([0-9]*).*$" "\\1" version_min "${version_str}")
|
||||
string(REGEX REPLACE "^.*LIB${_component}_VERSION_MICRO[\t ]+([0-9]*).*$" "\\1" version_mic "${version_str}")
|
||||
unset(version_str)
|
||||
|
||||
set(${_component}_VERSION "${version_maj}.${version_min}.${version_mic}" CACHE STRING "The ${_component} version number.")
|
||||
|
|
|
|||
81
Engine/lib/openal-soft/cmake/FindMySOFA.cmake
Normal file
81
Engine/lib/openal-soft/cmake/FindMySOFA.cmake
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
# - Find MySOFA
|
||||
# Find the MySOFA libraries
|
||||
#
|
||||
# This module defines the following variables:
|
||||
# MYSOFA_FOUND - True if MYSOFA_INCLUDE_DIR & MYSOFA_LIBRARY are found
|
||||
# MYSOFA_INCLUDE_DIRS - where to find mysofa.h, etc.
|
||||
# MYSOFA_LIBRARIES - the MySOFA library
|
||||
#
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2009-2011 Kitware, Inc.
|
||||
# Copyright 2009-2011 Philip Lowman <philip@yhbt.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# * The names of Kitware, Inc., the Insight Consortium, or the names of
|
||||
# any consortium members, or of any contributors, may not be used to
|
||||
# endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
find_package(ZLIB)
|
||||
|
||||
find_path(MYSOFA_INCLUDE_DIR NAMES mysofa.h
|
||||
DOC "The MySOFA include directory"
|
||||
)
|
||||
|
||||
find_library(MYSOFA_LIBRARY NAMES mysofa
|
||||
DOC "The MySOFA library"
|
||||
)
|
||||
|
||||
find_library(MYSOFA_M_LIBRARY NAMES m
|
||||
DOC "The math library for MySOFA"
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set MYSOFA_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(MySOFA REQUIRED_VARS MYSOFA_LIBRARY MYSOFA_INCLUDE_DIR ZLIB_FOUND)
|
||||
|
||||
if(MYSOFA_FOUND)
|
||||
set(MYSOFA_INCLUDE_DIRS ${MYSOFA_INCLUDE_DIR})
|
||||
set(MYSOFA_LIBRARIES ${MYSOFA_LIBRARY})
|
||||
set(MYSOFA_LIBRARIES ${MYSOFA_LIBRARIES} ZLIB::ZLIB)
|
||||
if(MYSOFA_M_LIBRARY)
|
||||
set(MYSOFA_LIBRARIES ${MYSOFA_LIBRARIES} ${MYSOFA_M_LIBRARY})
|
||||
endif()
|
||||
|
||||
add_library(MySOFA::MySOFA UNKNOWN IMPORTED)
|
||||
set_property(TARGET MySOFA::MySOFA PROPERTY
|
||||
IMPORTED_LOCATION ${MYSOFA_LIBRARY})
|
||||
set_target_properties(MySOFA::MySOFA PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${MYSOFA_INCLUDE_DIRS}
|
||||
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
||||
if(MYSOFA_M_LIBRARY)
|
||||
set_property(TARGET MySOFA::MySOFA APPEND PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES ${MYSOFA_M_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(MYSOFA_INCLUDE_DIR MYSOFA_LIBRARY)
|
||||
31
Engine/lib/openal-soft/cmake/FindOboe.cmake
Normal file
31
Engine/lib/openal-soft/cmake/FindOboe.cmake
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# - Find Oboe
|
||||
# Find the Oboe library
|
||||
#
|
||||
# This module defines the following variable:
|
||||
# OBOE_FOUND - True if Oboe was found
|
||||
#
|
||||
# This module defines the following target:
|
||||
# oboe::oboe - Import target for linking Oboe to a project
|
||||
#
|
||||
|
||||
find_path(OBOE_INCLUDE_DIR NAMES oboe/Oboe.h
|
||||
DOC "The Oboe include directory"
|
||||
)
|
||||
|
||||
find_library(OBOE_LIBRARY NAMES oboe
|
||||
DOC "The Oboe library"
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set OBOE_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Oboe REQUIRED_VARS OBOE_LIBRARY OBOE_INCLUDE_DIR)
|
||||
|
||||
if(OBOE_FOUND)
|
||||
add_library(oboe::oboe UNKNOWN IMPORTED)
|
||||
set_target_properties(oboe::oboe PROPERTIES
|
||||
IMPORTED_LOCATION ${OBOE_LIBRARY}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${OBOE_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(OBOE_INCLUDE_DIR OBOE_LIBRARY)
|
||||
63
Engine/lib/openal-soft/cmake/FindOpenSL.cmake
Normal file
63
Engine/lib/openal-soft/cmake/FindOpenSL.cmake
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# - Find OpenSL
|
||||
# Find the OpenSL libraries
|
||||
#
|
||||
# This module defines the following variables and targets:
|
||||
# OPENSL_FOUND - True if OPENSL was found
|
||||
# OpenSL::OpenSLES - The OpenSLES target
|
||||
#
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2009-2011 Kitware, Inc.
|
||||
# Copyright 2009-2011 Philip Lowman <philip@yhbt.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# * The names of Kitware, Inc., the Insight Consortium, or the names of
|
||||
# any consortium members, or of any contributors, may not be used to
|
||||
# endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
find_path(OPENSL_INCLUDE_DIR NAMES SLES/OpenSLES.h
|
||||
DOC "The OpenSL include directory")
|
||||
find_path(OPENSL_ANDROID_INCLUDE_DIR NAMES SLES/OpenSLES_Android.h
|
||||
DOC "The OpenSL Android include directory")
|
||||
|
||||
find_library(OPENSL_LIBRARY NAMES OpenSLES
|
||||
DOC "The OpenSL library")
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set OPENSL_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(OpenSL REQUIRED_VARS OPENSL_LIBRARY OPENSL_INCLUDE_DIR
|
||||
OPENSL_ANDROID_INCLUDE_DIR)
|
||||
|
||||
if(OPENSL_FOUND)
|
||||
add_library(OpenSL::OpenSLES UNKNOWN IMPORTED)
|
||||
set_target_properties(OpenSL::OpenSLES PROPERTIES
|
||||
IMPORTED_LOCATION ${OPENSL_LIBRARY}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${OPENSL_INCLUDE_DIR}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${OPENSL_ANDROID_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(OPENSL_INCLUDE_DIR OPENSL_ANDROID_INCLUDE_DIR OPENSL_LIBRARY)
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
# - Find QSA includes and libraries
|
||||
#
|
||||
# QSA_FOUND - True if QSA_INCLUDE_DIR & QSA_LIBRARY are found
|
||||
# QSA_LIBRARIES - Set when QSA_LIBRARY is found
|
||||
# QSA_INCLUDE_DIRS - Set when QSA_INCLUDE_DIR is found
|
||||
#
|
||||
# QSA_INCLUDE_DIR - where to find sys/asoundlib.h, etc.
|
||||
# QSA_LIBRARY - the asound library
|
||||
#
|
||||
|
||||
# Only check for QSA on QNX, because it conflicts with ALSA.
|
||||
if("${CMAKE_C_PLATFORM_ID}" STREQUAL "QNX")
|
||||
find_path(QSA_INCLUDE_DIR
|
||||
NAMES sys/asoundlib.h
|
||||
DOC "The QSA include directory"
|
||||
)
|
||||
|
||||
find_library(QSA_LIBRARY
|
||||
NAMES asound
|
||||
DOC "The QSA library"
|
||||
)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(QSA
|
||||
REQUIRED_VARS QSA_LIBRARY QSA_INCLUDE_DIR
|
||||
)
|
||||
|
||||
if(QSA_FOUND)
|
||||
set(QSA_LIBRARIES ${QSA_LIBRARY})
|
||||
set(QSA_INCLUDE_DIRS ${QSA_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(QSA_INCLUDE_DIR QSA_LIBRARY)
|
||||
|
|
@ -1,429 +0,0 @@
|
|||
# - Locates the SDL_sound library
|
||||
#
|
||||
# This module depends on SDL being found and
|
||||
# must be called AFTER FindSDL.cmake or FindSDL2.cmake is called.
|
||||
#
|
||||
# This module defines
|
||||
# SDL_SOUND_INCLUDE_DIR, where to find SDL_sound.h
|
||||
# SDL_SOUND_FOUND, if false, do not try to link to SDL_sound
|
||||
# SDL_SOUND_LIBRARIES, this contains the list of libraries that you need
|
||||
# to link against. This is a read-only variable and is marked INTERNAL.
|
||||
# SDL_SOUND_EXTRAS, this is an optional variable for you to add your own
|
||||
# flags to SDL_SOUND_LIBRARIES. This is prepended to SDL_SOUND_LIBRARIES.
|
||||
# This is available mostly for cases this module failed to anticipate for
|
||||
# and you must add additional flags. This is marked as ADVANCED.
|
||||
# SDL_SOUND_VERSION_STRING, human-readable string containing the version of SDL_sound
|
||||
#
|
||||
# This module also defines (but you shouldn't need to use directly)
|
||||
# SDL_SOUND_LIBRARY, the name of just the SDL_sound library you would link
|
||||
# against. Use SDL_SOUND_LIBRARIES for you link instructions and not this one.
|
||||
# And might define the following as needed
|
||||
# MIKMOD_LIBRARY
|
||||
# MODPLUG_LIBRARY
|
||||
# OGG_LIBRARY
|
||||
# VORBIS_LIBRARY
|
||||
# SMPEG_LIBRARY
|
||||
# FLAC_LIBRARY
|
||||
# SPEEX_LIBRARY
|
||||
#
|
||||
# Typically, you should not use these variables directly, and you should use
|
||||
# SDL_SOUND_LIBRARIES which contains SDL_SOUND_LIBRARY and the other audio libraries
|
||||
# (if needed) to successfully compile on your system.
|
||||
#
|
||||
# Created by Eric Wing.
|
||||
# This module is a bit more complicated than the other FindSDL* family modules.
|
||||
# The reason is that SDL_sound can be compiled in a large variety of different ways
|
||||
# which are independent of platform. SDL_sound may dynamically link against other 3rd
|
||||
# party libraries to get additional codec support, such as Ogg Vorbis, SMPEG, ModPlug,
|
||||
# MikMod, FLAC, Speex, and potentially others.
|
||||
# Under some circumstances which I don't fully understand,
|
||||
# there seems to be a requirement
|
||||
# that dependent libraries of libraries you use must also be explicitly
|
||||
# linked against in order to successfully compile. SDL_sound does not currently
|
||||
# have any system in place to know how it was compiled.
|
||||
# So this CMake module does the hard work in trying to discover which 3rd party
|
||||
# libraries are required for building (if any).
|
||||
# This module uses a brute force approach to create a test program that uses SDL_sound,
|
||||
# and then tries to build it. If the build fails, it parses the error output for
|
||||
# known symbol names to figure out which libraries are needed.
|
||||
#
|
||||
# Responds to the $SDLDIR and $SDLSOUNDDIR environmental variable that would
|
||||
# correspond to the ./configure --prefix=$SDLDIR used in building SDL.
|
||||
#
|
||||
# On OSX, this will prefer the Framework version (if found) over others.
|
||||
# People will have to manually change the cache values of
|
||||
# SDL_LIBRARY or SDL2_LIBRARY to override this selection or set the CMake
|
||||
# environment CMAKE_INCLUDE_PATH to modify the search paths.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2005-2009 Kitware, Inc.
|
||||
# Copyright 2012 Benjamin Eikel
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
set(SDL_SOUND_EXTRAS "" CACHE STRING "SDL_sound extra flags")
|
||||
mark_as_advanced(SDL_SOUND_EXTRAS)
|
||||
|
||||
# Find SDL_sound.h
|
||||
find_path(SDL_SOUND_INCLUDE_DIR SDL_sound.h
|
||||
HINTS
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
PATH_SUFFIXES SDL SDL12 SDL11
|
||||
)
|
||||
|
||||
find_library(SDL_SOUND_LIBRARY
|
||||
NAMES SDL_sound
|
||||
HINTS
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
)
|
||||
|
||||
if(SDL2_FOUND OR SDL_FOUND)
|
||||
if(SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY)
|
||||
# CMake is giving me problems using TRY_COMPILE with the CMAKE_FLAGS
|
||||
# for the :STRING syntax if I have multiple values contained in a
|
||||
# single variable. This is a problem for the SDL2_LIBRARY variable
|
||||
# because it does just that. When I feed this variable to the command,
|
||||
# only the first value gets the appropriate modifier (e.g. -I) and
|
||||
# the rest get dropped.
|
||||
# To get multiple single variables to work, I must separate them with a "\;"
|
||||
# I could go back and modify the FindSDL2.cmake module, but that's kind of painful.
|
||||
# The solution would be to try something like:
|
||||
# set(SDL2_TRY_COMPILE_LIBRARY_LIST "${SDL2_TRY_COMPILE_LIBRARY_LIST}\;${CMAKE_THREAD_LIBS_INIT}")
|
||||
# Instead, it was suggested on the mailing list to write a temporary CMakeLists.txt
|
||||
# with a temporary test project and invoke that with TRY_COMPILE.
|
||||
# See message thread "Figuring out dependencies for a library in order to build"
|
||||
# 2005-07-16
|
||||
# try_compile(
|
||||
# MY_RESULT
|
||||
# ${CMAKE_BINARY_DIR}
|
||||
# ${PROJECT_SOURCE_DIR}/DetermineSoundLibs.c
|
||||
# CMAKE_FLAGS
|
||||
# -DINCLUDE_DIRECTORIES:STRING=${SDL2_INCLUDE_DIR}\;${SDL_SOUND_INCLUDE_DIR}
|
||||
# -DLINK_LIBRARIES:STRING=${SDL_SOUND_LIBRARY}\;${SDL2_LIBRARY}
|
||||
# OUTPUT_VARIABLE MY_OUTPUT
|
||||
# )
|
||||
|
||||
# To minimize external dependencies, create a sdlsound test program
|
||||
# which will be used to figure out if additional link dependencies are
|
||||
# required for the link phase.
|
||||
file(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/DetermineSoundLibs.c
|
||||
"#include \"SDL_sound.h\"
|
||||
#include \"SDL.h\"
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
Sound_AudioInfo desired;
|
||||
Sound_Sample* sample;
|
||||
|
||||
SDL_Init(0);
|
||||
Sound_Init();
|
||||
|
||||
/* This doesn't actually have to work, but Init() is a no-op
|
||||
* for some of the decoders, so this should force more symbols
|
||||
* to be pulled in.
|
||||
*/
|
||||
sample = Sound_NewSampleFromFile(argv[1], &desired, 4096);
|
||||
|
||||
Sound_Quit();
|
||||
SDL_Quit();
|
||||
return 0;
|
||||
}"
|
||||
)
|
||||
|
||||
# Calling
|
||||
# target_link_libraries(DetermineSoundLibs "${SDL_SOUND_LIBRARY} ${SDL2_LIBRARY})
|
||||
# causes problems when SDL2_LIBRARY looks like
|
||||
# /Library/Frameworks/SDL2.framework;-framework Cocoa
|
||||
# The ;-framework Cocoa seems to be confusing CMake once the OS X
|
||||
# framework support was added. I was told that breaking up the list
|
||||
# would fix the problem.
|
||||
set(TMP_LIBS "")
|
||||
if(SDL2_FOUND)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY} ${SDL2_LIBRARY})
|
||||
foreach(lib ${SDL_SOUND_LIBRARY} ${SDL2_LIBRARY})
|
||||
set(TMP_LIBS "${TMP_LIBS} \"${lib}\"")
|
||||
endforeach()
|
||||
set(TMP_INCLUDE_DIRS ${SDL2_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR})
|
||||
else()
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY} ${SDL_LIBRARY})
|
||||
foreach(lib ${SDL_SOUND_LIBRARY} ${SDL_LIBRARY})
|
||||
set(TMP_LIBS "${TMP_LIBS} \"${lib}\"")
|
||||
endforeach()
|
||||
set(TMP_INCLUDE_DIRS ${SDL_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
# Keep trying to build a temp project until we find all missing libs.
|
||||
set(TRY_AGAIN TRUE)
|
||||
WHILE(TRY_AGAIN)
|
||||
set(TRY_AGAIN FALSE)
|
||||
# message("TMP_TRY_LIBS ${TMP_TRY_LIBS}")
|
||||
|
||||
# Write the CMakeLists.txt and test project
|
||||
# Weird, this is still sketchy. If I don't quote the variables
|
||||
# in the TARGET_LINK_LIBRARIES, I seem to loose everything
|
||||
# in the SDL2_LIBRARY string after the "-framework".
|
||||
# But if I quote the stuff in INCLUDE_DIRECTORIES, it doesn't work.
|
||||
file(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/CMakeLists.txt
|
||||
"cmake_minimum_required(VERSION 2.8)
|
||||
project(DetermineSoundLibs C)
|
||||
include_directories(${TMP_INCLUDE_DIRS})
|
||||
add_executable(DetermineSoundLibs DetermineSoundLibs.c)
|
||||
target_link_libraries(DetermineSoundLibs ${TMP_LIBS})"
|
||||
)
|
||||
|
||||
try_compile(
|
||||
MY_RESULT
|
||||
${PROJECT_BINARY_DIR}/CMakeTmp
|
||||
${PROJECT_BINARY_DIR}/CMakeTmp
|
||||
DetermineSoundLibs
|
||||
OUTPUT_VARIABLE MY_OUTPUT
|
||||
)
|
||||
# message("${MY_RESULT}")
|
||||
# message(${MY_OUTPUT})
|
||||
|
||||
if(NOT MY_RESULT)
|
||||
# I expect that MPGLIB, VOC, WAV, AIFF, and SHN are compiled in statically.
|
||||
# I think Timidity is also compiled in statically.
|
||||
# I've never had to explcitly link against Quicktime, so I'll skip that for now.
|
||||
|
||||
# Find libmath
|
||||
if("${MY_OUTPUT}" MATCHES "cos@@GLIBC")
|
||||
find_library(MATH_LIBRARY NAMES m)
|
||||
if(MATH_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MATH_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${MATH_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif(MATH_LIBRARY)
|
||||
endif("${MY_OUTPUT}" MATCHES "cos@@GLIBC")
|
||||
|
||||
# Find MikMod
|
||||
if("${MY_OUTPUT}" MATCHES "MikMod_")
|
||||
find_library(MIKMOD_LIBRARY
|
||||
NAMES libmikmod-coreaudio mikmod
|
||||
PATHS
|
||||
ENV MIKMODDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(MIKMOD_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MIKMOD_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${MIKMOD_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif(MIKMOD_LIBRARY)
|
||||
endif("${MY_OUTPUT}" MATCHES "MikMod_")
|
||||
|
||||
# Find ModPlug
|
||||
if("${MY_OUTPUT}" MATCHES "MODPLUG_")
|
||||
find_library(MODPLUG_LIBRARY
|
||||
NAMES modplug
|
||||
PATHS
|
||||
ENV MODPLUGDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(MODPLUG_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MODPLUG_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${MODPLUG_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Find Ogg and Vorbis
|
||||
if("${MY_OUTPUT}" MATCHES "ov_")
|
||||
find_library(VORBISFILE_LIBRARY
|
||||
NAMES vorbisfile VorbisFile VORBISFILE
|
||||
PATHS
|
||||
ENV VORBISDIR
|
||||
ENV OGGDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(VORBISFILE_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${VORBISFILE_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${VORBISFILE_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
|
||||
find_library(VORBIS_LIBRARY
|
||||
NAMES vorbis Vorbis VORBIS
|
||||
PATHS
|
||||
ENV OGGDIR
|
||||
ENV VORBISDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(VORBIS_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${VORBIS_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${VORBIS_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
|
||||
find_library(OGG_LIBRARY
|
||||
NAMES ogg Ogg OGG
|
||||
PATHS
|
||||
ENV OGGDIR
|
||||
ENV VORBISDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(OGG_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${OGG_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Find SMPEG
|
||||
if("${MY_OUTPUT}" MATCHES "SMPEG_")
|
||||
find_library(SMPEG_LIBRARY
|
||||
NAMES smpeg SMPEG Smpeg SMpeg
|
||||
PATHS
|
||||
ENV SMPEGDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(SMPEG_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SMPEG_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${SMPEG_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Find FLAC
|
||||
if("${MY_OUTPUT}" MATCHES "FLAC_")
|
||||
find_library(FLAC_LIBRARY
|
||||
NAMES flac FLAC
|
||||
PATHS
|
||||
ENV FLACDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(FLAC_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${FLAC_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${FLAC_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Hmmm...Speex seems to depend on Ogg. This might be a problem if
|
||||
# the TRY_COMPILE attempt gets blocked at SPEEX before it can pull
|
||||
# in the Ogg symbols. I'm not sure if I should duplicate the ogg stuff
|
||||
# above for here or if two ogg entries will screw up things.
|
||||
if("${MY_OUTPUT}" MATCHES "speex_")
|
||||
find_library(SPEEX_LIBRARY
|
||||
NAMES speex SPEEX
|
||||
PATHS
|
||||
ENV SPEEXDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(SPEEX_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SPEEX_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${SPEEX_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
|
||||
# Find OGG (needed for Speex)
|
||||
# We might have already found Ogg for Vorbis, so skip it if so.
|
||||
if(NOT OGG_LIBRARY)
|
||||
find_library(OGG_LIBRARY
|
||||
NAMES ogg Ogg OGG
|
||||
PATHS
|
||||
ENV OGGDIR
|
||||
ENV VORBISDIR
|
||||
ENV SPEEXDIR
|
||||
ENV SDLSOUNDDIR
|
||||
ENV SDLDIR
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
if(OGG_LIBRARY)
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY})
|
||||
set(TMP_LIBS "${SDL_SOUND_LIBRARIES_TMP} \"${OGG_LIBRARY}\"")
|
||||
set(TRY_AGAIN TRUE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
ENDWHILE()
|
||||
unset(TMP_INCLUDE_DIRS)
|
||||
unset(TMP_LIBS)
|
||||
|
||||
set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARIES_TMP} CACHE INTERNAL "SDL_sound and dependent libraries")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL_SOUND_INCLUDE_DIR AND EXISTS "${SDL_SOUND_INCLUDE_DIR}/SDL_sound.h")
|
||||
file(STRINGS "${SDL_SOUND_INCLUDE_DIR}/SDL_sound.h" SDL_SOUND_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SOUND_VER_MAJOR[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL_SOUND_INCLUDE_DIR}/SDL_sound.h" SDL_SOUND_VERSION_MINOR_LINE REGEX "^#define[ \t]+SOUND_VER_MINOR[ \t]+[0-9]+$")
|
||||
file(STRINGS "${SDL_SOUND_INCLUDE_DIR}/SDL_sound.h" SDL_SOUND_VERSION_PATCH_LINE REGEX "^#define[ \t]+SOUND_VER_PATCH[ \t]+[0-9]+$")
|
||||
string(REGEX REPLACE "^#define[ \t]+SOUND_VER_MAJOR[ \t]+([0-9]+)$" "\\1" SDL_SOUND_VERSION_MAJOR "${SDL_SOUND_VERSION_MAJOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SOUND_VER_MINOR[ \t]+([0-9]+)$" "\\1" SDL_SOUND_VERSION_MINOR "${SDL_SOUND_VERSION_MINOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+SOUND_VER_PATCH[ \t]+([0-9]+)$" "\\1" SDL_SOUND_VERSION_PATCH "${SDL_SOUND_VERSION_PATCH_LINE}")
|
||||
set(SDL_SOUND_VERSION_STRING ${SDL_SOUND_VERSION_MAJOR}.${SDL_SOUND_VERSION_MINOR}.${SDL_SOUND_VERSION_PATCH})
|
||||
unset(SDL_SOUND_VERSION_MAJOR_LINE)
|
||||
unset(SDL_SOUND_VERSION_MINOR_LINE)
|
||||
unset(SDL_SOUND_VERSION_PATCH_LINE)
|
||||
unset(SDL_SOUND_VERSION_MAJOR)
|
||||
unset(SDL_SOUND_VERSION_MINOR)
|
||||
unset(SDL_SOUND_VERSION_PATCH)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL_sound
|
||||
REQUIRED_VARS SDL_SOUND_LIBRARIES SDL_SOUND_INCLUDE_DIR
|
||||
VERSION_VAR SDL_SOUND_VERSION_STRING)
|
||||
25
Engine/lib/openal-soft/cmake/FindSndFile.cmake
Normal file
25
Engine/lib/openal-soft/cmake/FindSndFile.cmake
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# - Try to find SndFile
|
||||
# Once done this will define
|
||||
#
|
||||
# SNDFILE_FOUND - system has SndFile
|
||||
# SndFile::SndFile - the SndFile target
|
||||
#
|
||||
|
||||
find_path(SNDFILE_INCLUDE_DIR NAMES sndfile.h)
|
||||
|
||||
find_library(SNDFILE_LIBRARY NAMES sndfile sndfile-1)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set SNDFILE_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(SndFile DEFAULT_MSG SNDFILE_LIBRARY SNDFILE_INCLUDE_DIR)
|
||||
|
||||
if(SNDFILE_FOUND)
|
||||
add_library(SndFile::SndFile UNKNOWN IMPORTED)
|
||||
set_target_properties(SndFile::SndFile PROPERTIES
|
||||
IMPORTED_LOCATION ${SNDFILE_LIBRARY}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${SNDFILE_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
# show the SNDFILE_INCLUDE_DIR and SNDFILE_LIBRARY variables only in the advanced view
|
||||
mark_as_advanced(SNDFILE_INCLUDE_DIR SNDFILE_LIBRARY)
|
||||
|
|
@ -1,626 +0,0 @@
|
|||
# - Find the Windows SDK aka Platform SDK
|
||||
#
|
||||
# Relevant Wikipedia article: http://en.wikipedia.org/wiki/Microsoft_Windows_SDK
|
||||
#
|
||||
# Pass "COMPONENTS tools" to ignore Visual Studio version checks: in case
|
||||
# you just want the tool binaries to run, rather than the libraries and headers
|
||||
# for compiling.
|
||||
#
|
||||
# Variables:
|
||||
# WINDOWSSDK_FOUND - if any version of the windows or platform SDK was found that is usable with the current version of visual studio
|
||||
# WINDOWSSDK_LATEST_DIR
|
||||
# WINDOWSSDK_LATEST_NAME
|
||||
# WINDOWSSDK_FOUND_PREFERENCE - if we found an entry indicating a "preferred" SDK listed for this visual studio version
|
||||
# WINDOWSSDK_PREFERRED_DIR
|
||||
# WINDOWSSDK_PREFERRED_NAME
|
||||
#
|
||||
# WINDOWSSDK_DIRS - contains no duplicates, ordered most recent first.
|
||||
# WINDOWSSDK_PREFERRED_FIRST_DIRS - contains no duplicates, ordered with preferred first, followed by the rest in descending recency
|
||||
#
|
||||
# Functions:
|
||||
# windowssdk_name_lookup(<directory> <output variable>) - Find the name corresponding with the SDK directory you pass in, or
|
||||
# NOTFOUND if not recognized. Your directory must be one of WINDOWSSDK_DIRS for this to work.
|
||||
#
|
||||
# windowssdk_build_lookup(<directory> <output variable>) - Find the build version number corresponding with the SDK directory you pass in, or
|
||||
# NOTFOUND if not recognized. Your directory must be one of WINDOWSSDK_DIRS for this to work.
|
||||
#
|
||||
# get_windowssdk_from_component(<file or dir> <output variable>) - Given a library or include dir,
|
||||
# find the Windows SDK root dir corresponding to it, or NOTFOUND if unrecognized.
|
||||
#
|
||||
# get_windowssdk_library_dirs(<directory> <output variable>) - Find the architecture-appropriate
|
||||
# library directories corresponding to the SDK directory you pass in (or NOTFOUND if none)
|
||||
#
|
||||
# get_windowssdk_library_dirs_multiple(<output variable> <directory> ...) - Find the architecture-appropriate
|
||||
# library directories corresponding to the SDK directories you pass in, in order, skipping those not found. NOTFOUND if none at all.
|
||||
# Good for passing WINDOWSSDK_DIRS or WINDOWSSDK_DIRS to if you really just want a file and don't care where from.
|
||||
#
|
||||
# get_windowssdk_include_dirs(<directory> <output variable>) - Find the
|
||||
# include directories corresponding to the SDK directory you pass in (or NOTFOUND if none)
|
||||
#
|
||||
# get_windowssdk_include_dirs_multiple(<output variable> <directory> ...) - Find the
|
||||
# include directories corresponding to the SDK directories you pass in, in order, skipping those not found. NOTFOUND if none at all.
|
||||
# Good for passing WINDOWSSDK_DIRS or WINDOWSSDK_DIRS to if you really just want a file and don't care where from.
|
||||
#
|
||||
# Requires these CMake modules:
|
||||
# FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
|
||||
#
|
||||
# Original Author:
|
||||
# 2012 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||
# http://academic.cleardefinition.com
|
||||
# Iowa State University HCI Graduate Program/VRAC
|
||||
#
|
||||
# Copyright Iowa State University 2012.
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
set(_preferred_sdk_dirs) # pre-output
|
||||
set(_win_sdk_dirs) # pre-output
|
||||
set(_win_sdk_versanddirs) # pre-output
|
||||
set(_win_sdk_buildsanddirs) # pre-output
|
||||
set(_winsdk_vistaonly) # search parameters
|
||||
set(_winsdk_kits) # search parameters
|
||||
|
||||
|
||||
set(_WINDOWSSDK_ANNOUNCE OFF)
|
||||
if(NOT WINDOWSSDK_FOUND AND (NOT WindowsSDK_FIND_QUIETLY))
|
||||
set(_WINDOWSSDK_ANNOUNCE ON)
|
||||
endif()
|
||||
macro(_winsdk_announce)
|
||||
if(_WINSDK_ANNOUNCE)
|
||||
message(STATUS ${ARGN})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(_winsdk_win10vers
|
||||
10.0.14393.0 # Redstone aka Win10 1607 "Anniversary Update"
|
||||
10.0.10586.0 # TH2 aka Win10 1511
|
||||
10.0.10240.0 # Win10 RTM
|
||||
10.0.10150.0 # just ucrt
|
||||
10.0.10056.0
|
||||
)
|
||||
|
||||
if(WindowsSDK_FIND_COMPONENTS MATCHES "tools")
|
||||
set(_WINDOWSSDK_IGNOREMSVC ON)
|
||||
_winsdk_announce("Checking for tools from Windows/Platform SDKs...")
|
||||
else()
|
||||
set(_WINDOWSSDK_IGNOREMSVC OFF)
|
||||
_winsdk_announce("Checking for Windows/Platform SDKs...")
|
||||
endif()
|
||||
|
||||
# Appends to the three main pre-output lists used only if the path exists
|
||||
# and is not already in the list.
|
||||
function(_winsdk_conditional_append _vername _build _path)
|
||||
if(("${_path}" MATCHES "registry") OR (NOT EXISTS "${_path}"))
|
||||
# Path invalid - do not add
|
||||
return()
|
||||
endif()
|
||||
list(FIND _win_sdk_dirs "${_path}" _win_sdk_idx)
|
||||
if(_win_sdk_idx GREATER -1)
|
||||
# Path already in list - do not add
|
||||
return()
|
||||
endif()
|
||||
_winsdk_announce( " - ${_vername}, Build ${_build} @ ${_path}")
|
||||
# Not yet in the list, so we'll add it
|
||||
list(APPEND _win_sdk_dirs "${_path}")
|
||||
set(_win_sdk_dirs "${_win_sdk_dirs}" CACHE INTERNAL "" FORCE)
|
||||
list(APPEND
|
||||
_win_sdk_versanddirs
|
||||
"${_vername}"
|
||||
"${_path}")
|
||||
set(_win_sdk_versanddirs "${_win_sdk_versanddirs}" CACHE INTERNAL "" FORCE)
|
||||
list(APPEND
|
||||
_win_sdk_buildsanddirs
|
||||
"${_build}"
|
||||
"${_path}")
|
||||
set(_win_sdk_buildsanddirs "${_win_sdk_buildsanddirs}" CACHE INTERNAL "" FORCE)
|
||||
endfunction()
|
||||
|
||||
# Appends to the "preferred SDK" lists only if the path exists
|
||||
function(_winsdk_conditional_append_preferred _info _path)
|
||||
if(("${_path}" MATCHES "registry") OR (NOT EXISTS "${_path}"))
|
||||
# Path invalid - do not add
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_filename_component(_path "${_path}" ABSOLUTE)
|
||||
|
||||
list(FIND _win_sdk_preferred_sdk_dirs "${_path}" _win_sdk_idx)
|
||||
if(_win_sdk_idx GREATER -1)
|
||||
# Path already in list - do not add
|
||||
return()
|
||||
endif()
|
||||
_winsdk_announce( " - Found \"preferred\" SDK ${_info} @ ${_path}")
|
||||
# Not yet in the list, so we'll add it
|
||||
list(APPEND _win_sdk_preferred_sdk_dirs "${_path}")
|
||||
set(_win_sdk_preferred_sdk_dirs "${_win_sdk_dirs}" CACHE INTERNAL "" FORCE)
|
||||
|
||||
# Just in case we somehow missed it:
|
||||
_winsdk_conditional_append("${_info}" "" "${_path}")
|
||||
endfunction()
|
||||
|
||||
# Given a version like v7.0A, looks for an SDK in the registry under "Microsoft SDKs".
|
||||
# If the given version might be in both HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows
|
||||
# and HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots aka "Windows Kits",
|
||||
# use this macro first, since these registry keys usually have more information.
|
||||
#
|
||||
# Pass a "default" build number as an extra argument in case we can't find it.
|
||||
function(_winsdk_check_microsoft_sdks_registry _winsdkver)
|
||||
set(SDKKEY "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\${_winsdkver}")
|
||||
get_filename_component(_sdkdir
|
||||
"[${SDKKEY};InstallationFolder]"
|
||||
ABSOLUTE)
|
||||
|
||||
set(_sdkname "Windows SDK ${_winsdkver}")
|
||||
|
||||
# Default build number passed as extra argument
|
||||
set(_build ${ARGN})
|
||||
# See if the registry holds a Microsoft-mutilated, err, designated, product name
|
||||
# (just using get_filename_component to execute the registry lookup)
|
||||
get_filename_component(_sdkproductname
|
||||
"[${SDKKEY};ProductName]"
|
||||
NAME)
|
||||
if(NOT "${_sdkproductname}" MATCHES "registry")
|
||||
# Got a product name
|
||||
set(_sdkname "${_sdkname} (${_sdkproductname})")
|
||||
endif()
|
||||
|
||||
# try for a version to augment our name
|
||||
# (just using get_filename_component to execute the registry lookup)
|
||||
get_filename_component(_sdkver
|
||||
"[${SDKKEY};ProductVersion]"
|
||||
NAME)
|
||||
if(NOT "${_sdkver}" MATCHES "registry" AND NOT MATCHES)
|
||||
# Got a version
|
||||
if(NOT "${_sdkver}" MATCHES "\\.\\.")
|
||||
# and it's not an invalid one with two dots in it:
|
||||
# use to override the default build
|
||||
set(_build ${_sdkver})
|
||||
if(NOT "${_sdkname}" MATCHES "${_sdkver}")
|
||||
# Got a version that's not already in the name, let's use it to improve our name.
|
||||
set(_sdkname "${_sdkname} (${_sdkver})")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
_winsdk_conditional_append("${_sdkname}" "${_build}" "${_sdkdir}")
|
||||
endfunction()
|
||||
|
||||
# Given a name for identification purposes, the build number, and a key (technically a "value name")
|
||||
# corresponding to a Windows SDK packaged as a "Windows Kit", look for it
|
||||
# in HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots
|
||||
# Note that the key or "value name" tends to be something weird like KitsRoot81 -
|
||||
# no easy way to predict, just have to observe them in the wild.
|
||||
# Doesn't hurt to also try _winsdk_check_microsoft_sdks_registry for these:
|
||||
# sometimes you get keys in both parts of the registry (in the wow64 portion especially),
|
||||
# and the non-"Windows Kits" location is often more descriptive.
|
||||
function(_winsdk_check_windows_kits_registry _winkit_name _winkit_build _winkit_key)
|
||||
get_filename_component(_sdkdir
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;${_winkit_key}]"
|
||||
ABSOLUTE)
|
||||
_winsdk_conditional_append("${_winkit_name}" "${_winkit_build}" "${_sdkdir}")
|
||||
endfunction()
|
||||
|
||||
# Given a name for identification purposes and the build number
|
||||
# corresponding to a Windows 10 SDK packaged as a "Windows Kit", look for it
|
||||
# in HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots
|
||||
# Doesn't hurt to also try _winsdk_check_microsoft_sdks_registry for these:
|
||||
# sometimes you get keys in both parts of the registry (in the wow64 portion especially),
|
||||
# and the non-"Windows Kits" location is often more descriptive.
|
||||
function(_winsdk_check_win10_kits _winkit_build)
|
||||
get_filename_component(_sdkdir
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]"
|
||||
ABSOLUTE)
|
||||
if(("${_sdkdir}" MATCHES "registry") OR (NOT EXISTS "${_sdkdir}"))
|
||||
return() # not found
|
||||
endif()
|
||||
if(EXISTS "${_sdkdir}/Include/${_winkit_build}/um")
|
||||
_winsdk_conditional_append("Windows Kits 10 (Build ${_winkit_build})" "${_winkit_build}" "${_sdkdir}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Given a name for indentification purposes, the build number, and the associated package GUID,
|
||||
# look in the registry under both HKLM and HKCU in \\SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\
|
||||
# for that guid and the SDK it points to.
|
||||
function(_winsdk_check_platformsdk_registry _platformsdkname _build _platformsdkguid)
|
||||
foreach(_winsdk_hive HKEY_LOCAL_MACHINE HKEY_CURRENT_USER)
|
||||
get_filename_component(_sdkdir
|
||||
"[${_winsdk_hive}\\SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\${_platformsdkguid};Install Dir]"
|
||||
ABSOLUTE)
|
||||
_winsdk_conditional_append("${_platformsdkname} (${_build})" "${_build}" "${_sdkdir}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Detect toolchain information: to know whether it's OK to use Vista+ only SDKs
|
||||
###
|
||||
set(_winsdk_vistaonly_ok OFF)
|
||||
if(MSVC AND NOT _WINDOWSSDK_IGNOREMSVC)
|
||||
# VC 10 and older has broad target support
|
||||
if(MSVC_VERSION LESS 1700)
|
||||
# VC 11 by default targets Vista and later only, so we can add a few more SDKs that (might?) only work on vista+
|
||||
elseif("${CMAKE_VS_PLATFORM_TOOLSET}" MATCHES "_xp")
|
||||
# This is the XP-compatible v110+ toolset
|
||||
elseif("${CMAKE_VS_PLATFORM_TOOLSET}" STREQUAL "v100" OR "${CMAKE_VS_PLATFORM_TOOLSET}" STREQUAL "v90")
|
||||
# This is the VS2010/VS2008 toolset
|
||||
else()
|
||||
# OK, we're VC11 or newer and not using a backlevel or XP-compatible toolset.
|
||||
# These versions have no XP (and possibly Vista pre-SP1) support
|
||||
set(_winsdk_vistaonly_ok ON)
|
||||
if(_WINDOWSSDK_ANNOUNCE AND NOT _WINDOWSSDK_VISTAONLY_PESTERED)
|
||||
set(_WINDOWSSDK_VISTAONLY_PESTERED ON CACHE INTERNAL "" FORCE)
|
||||
message(STATUS "FindWindowsSDK: Detected Visual Studio 2012 or newer, not using the _xp toolset variant: including SDK versions that drop XP support in search!")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(_WINDOWSSDK_IGNOREMSVC)
|
||||
set(_winsdk_vistaonly_ok ON)
|
||||
endif()
|
||||
|
||||
###
|
||||
# MSVC version checks - keeps messy conditionals in one place
|
||||
# (messy because of _WINDOWSSDK_IGNOREMSVC)
|
||||
###
|
||||
set(_winsdk_msvc_greater_1200 OFF)
|
||||
if(_WINDOWSSDK_IGNOREMSVC OR (MSVC AND (MSVC_VERSION GREATER 1200)))
|
||||
set(_winsdk_msvc_greater_1200 ON)
|
||||
endif()
|
||||
# Newer than VS .NET/VS Toolkit 2003
|
||||
set(_winsdk_msvc_greater_1310 OFF)
|
||||
if(_WINDOWSSDK_IGNOREMSVC OR (MSVC AND (MSVC_VERSION GREATER 1310)))
|
||||
set(_winsdk_msvc_greater_1310 ON)
|
||||
endif()
|
||||
|
||||
# VS2005/2008
|
||||
set(_winsdk_msvc_less_1600 OFF)
|
||||
if(_WINDOWSSDK_IGNOREMSVC OR (MSVC AND (MSVC_VERSION LESS 1600)))
|
||||
set(_winsdk_msvc_less_1600 ON)
|
||||
endif()
|
||||
|
||||
# VS2013+
|
||||
set(_winsdk_msvc_not_less_1800 OFF)
|
||||
if(_WINDOWSSDK_IGNOREMSVC OR (MSVC AND (NOT MSVC_VERSION LESS 1800)))
|
||||
set(_winsdk_msvc_not_less_1800 ON)
|
||||
endif()
|
||||
|
||||
###
|
||||
# START body of find module
|
||||
###
|
||||
if(_winsdk_msvc_greater_1310) # Newer than VS .NET/VS Toolkit 2003
|
||||
###
|
||||
# Look for "preferred" SDKs
|
||||
###
|
||||
|
||||
# Environment variable for SDK dir
|
||||
if(EXISTS "$ENV{WindowsSDKDir}" AND (NOT "$ENV{WindowsSDKDir}" STREQUAL ""))
|
||||
_winsdk_conditional_append_preferred("WindowsSDKDir environment variable" "$ENV{WindowsSDKDir}")
|
||||
endif()
|
||||
|
||||
if(_winsdk_msvc_less_1600)
|
||||
# Per-user current Windows SDK for VS2005/2008
|
||||
get_filename_component(_sdkdir
|
||||
"[HKEY_CURRENT_USER\\Software\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]"
|
||||
ABSOLUTE)
|
||||
_winsdk_conditional_append_preferred("Per-user current Windows SDK" "${_sdkdir}")
|
||||
|
||||
# System-wide current Windows SDK for VS2005/2008
|
||||
get_filename_component(_sdkdir
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]"
|
||||
ABSOLUTE)
|
||||
_winsdk_conditional_append_preferred("System-wide current Windows SDK" "${_sdkdir}")
|
||||
endif()
|
||||
|
||||
###
|
||||
# Begin the massive list of SDK searching!
|
||||
###
|
||||
if(_winsdk_vistaonly_ok AND _winsdk_msvc_not_less_1800)
|
||||
# These require at least Visual Studio 2013 (VC12)
|
||||
|
||||
_winsdk_check_microsoft_sdks_registry(v10.0A)
|
||||
|
||||
# Windows Software Development Kit (SDK) for Windows 10
|
||||
# Several different versions living in the same directory - if nothing else we can assume RTM (10240)
|
||||
_winsdk_check_microsoft_sdks_registry(v10.0 10.0.10240.0)
|
||||
foreach(_win10build ${_winsdk_win10vers})
|
||||
_winsdk_check_win10_kits(${_win10build})
|
||||
endforeach()
|
||||
endif() # vista-only and 2013+
|
||||
|
||||
# Included in Visual Studio 2013
|
||||
# Includes the v120_xp toolset
|
||||
_winsdk_check_microsoft_sdks_registry(v8.1A 8.1.51636)
|
||||
|
||||
if(_winsdk_vistaonly_ok AND _winsdk_msvc_not_less_1800)
|
||||
# Windows Software Development Kit (SDK) for Windows 8.1
|
||||
# http://msdn.microsoft.com/en-gb/windows/desktop/bg162891
|
||||
_winsdk_check_microsoft_sdks_registry(v8.1 8.1.25984.0)
|
||||
_winsdk_check_windows_kits_registry("Windows Kits 8.1" 8.1.25984.0 KitsRoot81)
|
||||
endif() # vista-only and 2013+
|
||||
|
||||
if(_winsdk_vistaonly_ok)
|
||||
# Included in Visual Studio 2012
|
||||
_winsdk_check_microsoft_sdks_registry(v8.0A 8.0.50727)
|
||||
|
||||
# Microsoft Windows SDK for Windows 8 and .NET Framework 4.5
|
||||
# This is the first version to also include the DirectX SDK
|
||||
# http://msdn.microsoft.com/en-US/windows/desktop/hh852363.aspx
|
||||
_winsdk_check_microsoft_sdks_registry(v8.0 6.2.9200.16384)
|
||||
_winsdk_check_windows_kits_registry("Windows Kits 8.0" 6.2.9200.16384 KitsRoot)
|
||||
endif() # vista-only
|
||||
|
||||
# Included with VS 2012 Update 1 or later
|
||||
# Introduces v110_xp toolset
|
||||
_winsdk_check_microsoft_sdks_registry(v7.1A 7.1.51106)
|
||||
if(_winsdk_vistaonly_ok)
|
||||
# Microsoft Windows SDK for Windows 7 and .NET Framework 4
|
||||
# http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b
|
||||
_winsdk_check_microsoft_sdks_registry(v7.1 7.1.7600.0.30514)
|
||||
endif() # vista-only
|
||||
|
||||
# Included with VS 2010
|
||||
_winsdk_check_microsoft_sdks_registry(v7.0A 6.1.7600.16385)
|
||||
|
||||
# Windows SDK for Windows 7 and .NET Framework 3.5 SP1
|
||||
# Works with VC9
|
||||
# http://www.microsoft.com/en-us/download/details.aspx?id=18950
|
||||
_winsdk_check_microsoft_sdks_registry(v7.0 6.1.7600.16385)
|
||||
|
||||
# Two versions call themselves "v6.1":
|
||||
# Older:
|
||||
# Windows Vista Update & .NET 3.0 SDK
|
||||
# http://www.microsoft.com/en-us/download/details.aspx?id=14477
|
||||
|
||||
# Newer:
|
||||
# Windows Server 2008 & .NET 3.5 SDK
|
||||
# may have broken VS9SP1? they recommend v7.0 instead, or a KB...
|
||||
# http://www.microsoft.com/en-us/download/details.aspx?id=24826
|
||||
_winsdk_check_microsoft_sdks_registry(v6.1 6.1.6000.16384.10)
|
||||
|
||||
# Included in VS 2008
|
||||
_winsdk_check_microsoft_sdks_registry(v6.0A 6.1.6723.1)
|
||||
|
||||
# Microsoft Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components
|
||||
# http://blogs.msdn.com/b/stanley/archive/2006/11/08/microsoft-windows-software-development-kit-for-windows-vista-and-net-framework-3-0-runtime-components.aspx
|
||||
_winsdk_check_microsoft_sdks_registry(v6.0 6.0.6000.16384)
|
||||
endif()
|
||||
|
||||
# Let's not forget the Platform SDKs, which sometimes are useful!
|
||||
if(_winsdk_msvc_greater_1200)
|
||||
_winsdk_check_platformsdk_registry("Microsoft Platform SDK for Windows Server 2003 R2" "5.2.3790.2075.51" "D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1")
|
||||
_winsdk_check_platformsdk_registry("Microsoft Platform SDK for Windows Server 2003 SP1" "5.2.3790.1830.15" "8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3")
|
||||
endif()
|
||||
###
|
||||
# Finally, look for "preferred" SDKs
|
||||
###
|
||||
if(_winsdk_msvc_greater_1310) # Newer than VS .NET/VS Toolkit 2003
|
||||
|
||||
|
||||
# Environment variable for SDK dir
|
||||
if(EXISTS "$ENV{WindowsSDKDir}" AND (NOT "$ENV{WindowsSDKDir}" STREQUAL ""))
|
||||
_winsdk_conditional_append_preferred("WindowsSDKDir environment variable" "$ENV{WindowsSDKDir}")
|
||||
endif()
|
||||
|
||||
if(_winsdk_msvc_less_1600)
|
||||
# Per-user current Windows SDK for VS2005/2008
|
||||
get_filename_component(_sdkdir
|
||||
"[HKEY_CURRENT_USER\\Software\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]"
|
||||
ABSOLUTE)
|
||||
_winsdk_conditional_append_preferred("Per-user current Windows SDK" "${_sdkdir}")
|
||||
|
||||
# System-wide current Windows SDK for VS2005/2008
|
||||
get_filename_component(_sdkdir
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]"
|
||||
ABSOLUTE)
|
||||
_winsdk_conditional_append_preferred("System-wide current Windows SDK" "${_sdkdir}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
function(windowssdk_name_lookup _dir _outvar)
|
||||
list(FIND _win_sdk_versanddirs "${_dir}" _diridx)
|
||||
math(EXPR _idx "${_diridx} - 1")
|
||||
if(${_idx} GREATER -1)
|
||||
list(GET _win_sdk_versanddirs ${_idx} _ret)
|
||||
else()
|
||||
set(_ret "NOTFOUND")
|
||||
endif()
|
||||
set(${_outvar} "${_ret}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(windowssdk_build_lookup _dir _outvar)
|
||||
list(FIND _win_sdk_buildsanddirs "${_dir}" _diridx)
|
||||
math(EXPR _idx "${_diridx} - 1")
|
||||
if(${_idx} GREATER -1)
|
||||
list(GET _win_sdk_buildsanddirs ${_idx} _ret)
|
||||
else()
|
||||
set(_ret "NOTFOUND")
|
||||
endif()
|
||||
set(${_outvar} "${_ret}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# If we found something...
|
||||
if(_win_sdk_dirs)
|
||||
list(GET _win_sdk_dirs 0 WINDOWSSDK_LATEST_DIR)
|
||||
windowssdk_name_lookup("${WINDOWSSDK_LATEST_DIR}"
|
||||
WINDOWSSDK_LATEST_NAME)
|
||||
set(WINDOWSSDK_DIRS ${_win_sdk_dirs})
|
||||
|
||||
# Fallback, in case no preference found.
|
||||
set(WINDOWSSDK_PREFERRED_DIR "${WINDOWSSDK_LATEST_DIR}")
|
||||
set(WINDOWSSDK_PREFERRED_NAME "${WINDOWSSDK_LATEST_NAME}")
|
||||
set(WINDOWSSDK_PREFERRED_FIRST_DIRS ${WINDOWSSDK_DIRS})
|
||||
set(WINDOWSSDK_FOUND_PREFERENCE OFF)
|
||||
endif()
|
||||
|
||||
# If we found indications of a user preference...
|
||||
if(_win_sdk_preferred_sdk_dirs)
|
||||
list(GET _win_sdk_preferred_sdk_dirs 0 WINDOWSSDK_PREFERRED_DIR)
|
||||
windowssdk_name_lookup("${WINDOWSSDK_PREFERRED_DIR}"
|
||||
WINDOWSSDK_PREFERRED_NAME)
|
||||
set(WINDOWSSDK_PREFERRED_FIRST_DIRS
|
||||
${_win_sdk_preferred_sdk_dirs}
|
||||
${_win_sdk_dirs})
|
||||
list(REMOVE_DUPLICATES WINDOWSSDK_PREFERRED_FIRST_DIRS)
|
||||
set(WINDOWSSDK_FOUND_PREFERENCE ON)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WindowsSDK
|
||||
"No compatible version of the Windows SDK or Platform SDK found."
|
||||
WINDOWSSDK_DIRS)
|
||||
|
||||
if(WINDOWSSDK_FOUND)
|
||||
# Internal: Architecture-appropriate library directory names.
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "ARM")
|
||||
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
||||
# Only supported in Win10 SDK and up.
|
||||
set(_winsdk_arch8 arm64) # what the WDK for Win8+ calls this architecture
|
||||
else()
|
||||
set(_winsdk_archbare /arm) # what the architecture used to be called in oldest SDKs
|
||||
set(_winsdk_arch arm) # what the architecture used to be called
|
||||
set(_winsdk_arch8 arm) # what the WDK for Win8+ calls this architecture
|
||||
endif()
|
||||
else()
|
||||
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
||||
set(_winsdk_archbare /x64) # what the architecture used to be called in oldest SDKs
|
||||
set(_winsdk_arch amd64) # what the architecture used to be called
|
||||
set(_winsdk_arch8 x64) # what the WDK for Win8+ calls this architecture
|
||||
else()
|
||||
set(_winsdk_archbare ) # what the architecture used to be called in oldest SDKs
|
||||
set(_winsdk_arch i386) # what the architecture used to be called
|
||||
set(_winsdk_arch8 x86) # what the WDK for Win8+ calls this architecture
|
||||
endif()
|
||||
endif()
|
||||
|
||||
function(get_windowssdk_from_component _component _var)
|
||||
get_filename_component(_component "${_component}" ABSOLUTE)
|
||||
file(TO_CMAKE_PATH "${_component}" _component)
|
||||
foreach(_sdkdir ${WINDOWSSDK_DIRS})
|
||||
get_filename_component(_sdkdir "${_sdkdir}" ABSOLUTE)
|
||||
string(LENGTH "${_sdkdir}" _sdklen)
|
||||
file(RELATIVE_PATH _rel "${_sdkdir}" "${_component}")
|
||||
# If we don't have any "parent directory" items...
|
||||
if(NOT "${_rel}" MATCHES "[.][.]")
|
||||
set(${_var} "${_sdkdir}" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
# Fail.
|
||||
set(${_var} "NOTFOUND" PARENT_SCOPE)
|
||||
endfunction()
|
||||
function(get_windowssdk_library_dirs _winsdk_dir _var)
|
||||
set(_dirs)
|
||||
set(_suffixes
|
||||
"lib${_winsdk_archbare}" # SDKs like 7.1A
|
||||
"lib/${_winsdk_arch}" # just because some SDKs have x86 dir and root dir
|
||||
"lib/w2k/${_winsdk_arch}" # Win2k min requirement
|
||||
"lib/wxp/${_winsdk_arch}" # WinXP min requirement
|
||||
"lib/wnet/${_winsdk_arch}" # Win Server 2003 min requirement
|
||||
"lib/wlh/${_winsdk_arch}"
|
||||
"lib/wlh/um/${_winsdk_arch8}" # Win Vista ("Long Horn") min requirement
|
||||
"lib/win7/${_winsdk_arch}"
|
||||
"lib/win7/um/${_winsdk_arch8}" # Win 7 min requirement
|
||||
)
|
||||
foreach(_ver
|
||||
wlh # Win Vista ("Long Horn") min requirement
|
||||
win7 # Win 7 min requirement
|
||||
win8 # Win 8 min requirement
|
||||
winv6.3 # Win 8.1 min requirement
|
||||
)
|
||||
|
||||
list(APPEND _suffixes
|
||||
"lib/${_ver}/${_winsdk_arch}"
|
||||
"lib/${_ver}/um/${_winsdk_arch8}"
|
||||
"lib/${_ver}/km/${_winsdk_arch8}"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# Look for WDF libraries in Win10+ SDK
|
||||
foreach(_mode umdf kmdf)
|
||||
file(GLOB _wdfdirs RELATIVE "${_winsdk_dir}" "${_winsdk_dir}/lib/wdf/${_mode}/${_winsdk_arch8}/*")
|
||||
if(_wdfdirs)
|
||||
list(APPEND _suffixes ${_wdfdirs})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Look in each Win10+ SDK version for the components
|
||||
foreach(_win10ver ${_winsdk_win10vers})
|
||||
foreach(_component um km ucrt mmos)
|
||||
list(APPEND _suffixes "lib/${_win10ver}/${_component}/${_winsdk_arch8}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
foreach(_suffix ${_suffixes})
|
||||
# Check to see if a library actually exists here.
|
||||
file(GLOB _libs "${_winsdk_dir}/${_suffix}/*.lib")
|
||||
if(_libs)
|
||||
list(APPEND _dirs "${_winsdk_dir}/${_suffix}")
|
||||
endif()
|
||||
endforeach()
|
||||
if("${_dirs}" STREQUAL "")
|
||||
set(_dirs NOTFOUND)
|
||||
else()
|
||||
list(REMOVE_DUPLICATES _dirs)
|
||||
endif()
|
||||
set(${_var} ${_dirs} PARENT_SCOPE)
|
||||
endfunction()
|
||||
function(get_windowssdk_include_dirs _winsdk_dir _var)
|
||||
set(_dirs)
|
||||
|
||||
set(_subdirs shared um winrt km wdf mmos ucrt)
|
||||
set(_suffixes Include)
|
||||
|
||||
foreach(_dir ${_subdirs})
|
||||
list(APPEND _suffixes "Include/${_dir}")
|
||||
endforeach()
|
||||
|
||||
foreach(_ver ${_winsdk_win10vers})
|
||||
foreach(_dir ${_subdirs})
|
||||
list(APPEND _suffixes "Include/${_ver}/${_dir}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
foreach(_suffix ${_suffixes})
|
||||
# Check to see if a header file actually exists here.
|
||||
file(GLOB _headers "${_winsdk_dir}/${_suffix}/*.h")
|
||||
if(_headers)
|
||||
list(APPEND _dirs "${_winsdk_dir}/${_suffix}")
|
||||
endif()
|
||||
endforeach()
|
||||
if("${_dirs}" STREQUAL "")
|
||||
set(_dirs NOTFOUND)
|
||||
else()
|
||||
list(REMOVE_DUPLICATES _dirs)
|
||||
endif()
|
||||
set(${_var} ${_dirs} PARENT_SCOPE)
|
||||
endfunction()
|
||||
function(get_windowssdk_library_dirs_multiple _var)
|
||||
set(_dirs)
|
||||
foreach(_sdkdir ${ARGN})
|
||||
get_windowssdk_library_dirs("${_sdkdir}" _current_sdk_libdirs)
|
||||
if(_current_sdk_libdirs)
|
||||
list(APPEND _dirs ${_current_sdk_libdirs})
|
||||
endif()
|
||||
endforeach()
|
||||
if("${_dirs}" STREQUAL "")
|
||||
set(_dirs NOTFOUND)
|
||||
else()
|
||||
list(REMOVE_DUPLICATES _dirs)
|
||||
endif()
|
||||
set(${_var} ${_dirs} PARENT_SCOPE)
|
||||
endfunction()
|
||||
function(get_windowssdk_include_dirs_multiple _var)
|
||||
set(_dirs)
|
||||
foreach(_sdkdir ${ARGN})
|
||||
get_windowssdk_include_dirs("${_sdkdir}" _current_sdk_incdirs)
|
||||
if(_current_sdk_libdirs)
|
||||
list(APPEND _dirs ${_current_sdk_incdirs})
|
||||
endif()
|
||||
endforeach()
|
||||
if("${_dirs}" STREQUAL "")
|
||||
set(_dirs NOTFOUND)
|
||||
else()
|
||||
list(REMOVE_DUPLICATES _dirs)
|
||||
endif()
|
||||
set(${_var} ${_dirs} PARENT_SCOPE)
|
||||
endfunction()
|
||||
endif()
|
||||
13
Engine/lib/openal-soft/cmake/bin2h.script.cmake
Normal file
13
Engine/lib/openal-soft/cmake/bin2h.script.cmake
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Read the input file into 'indata', converting each byte to a pair of hex
|
||||
# characters
|
||||
file(READ "${INPUT_FILE}" indata HEX)
|
||||
|
||||
# For each pair of characters, indent them and prepend the 0x prefix, and
|
||||
# append a comma separateor.
|
||||
# TODO: Prettify this. Should group a number of bytes per line instead of one
|
||||
# per line.
|
||||
string(REGEX REPLACE "(..)" " 0x\\1,\n" output "${indata}")
|
||||
|
||||
# Write the list of hex chars to the output file in a const byte array
|
||||
file(WRITE "${OUTPUT_FILE}"
|
||||
"const unsigned char ${VARIABLE_NAME}[] = {\n${output}};\n")
|
||||
Loading…
Add table
Add a link
Reference in a new issue