mirror of
https://github.com/love2d/love-android.git
synced 2026-08-20 04:31:26 +02:00
Updated openal-soft to version 1.15.1
This commit is contained in:
@@ -1,59 +0,0 @@
|
||||
# - Check if the C source code provided in the SOURCE argument compiles.
|
||||
# CHECK_C_SOURCE_COMPILES(SOURCE VAR)
|
||||
#
|
||||
# FLAG - compiler flag to check
|
||||
# VAR - variable to store whether the source code compiled
|
||||
#
|
||||
# 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
|
||||
|
||||
MACRO(CHECK_C_COMPILER_FLAG FLAG VAR)
|
||||
IF("${VAR}" MATCHES "^${VAR}$")
|
||||
SET(MACRO_CHECK_FUNCTION_DEFINITIONS
|
||||
"${FLAG} ${CMAKE_REQUIRED_FLAGS}")
|
||||
IF(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_C_COMPILER_FLAG_ADD_LIBRARIES
|
||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
|
||||
ELSE(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_C_COMPILER_FLAG_ADD_LIBRARIES)
|
||||
ENDIF(CMAKE_REQUIRED_LIBRARIES)
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_C_COMPILER_FLAG_ADD_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_C_COMPILER_FLAG_ADD_INCLUDES)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
|
||||
"int main() {return 0;}\n")
|
||||
|
||||
MESSAGE(STATUS "Checking if C compiler supports ${FLAG}")
|
||||
TRY_COMPILE(${VAR}
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
|
||||
"${CHECK_C_COMPILER_FLAG_ADD_LIBRARIES}"
|
||||
"${CHECK_C_COMPILER_FLAG_ADD_INCLUDES}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
IF(${VAR})
|
||||
SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
|
||||
MESSAGE(STATUS "Checking if C compiler supports ${FLAG} - Success")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"Source file was:\n${SOURCE}\n")
|
||||
ELSE(${VAR})
|
||||
MESSAGE(STATUS "Checking if C compiler supports ${FLAG} - Failed")
|
||||
SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"Source file was:\n${SOURCE}\n")
|
||||
ENDIF(${VAR})
|
||||
ENDIF("${VAR}" MATCHES "^${VAR}$")
|
||||
ENDMACRO(CHECK_C_COMPILER_FLAG)
|
||||
@@ -0,0 +1,23 @@
|
||||
# - Find fluidsynth
|
||||
# Find the native fluidsynth includes and library
|
||||
#
|
||||
# FLUIDSYNTH_INCLUDE_DIR - where to find fluidsynth.h
|
||||
# FLUIDSYNTH_LIBRARIES - List of libraries when using fluidsynth.
|
||||
# FLUIDSYNTH_FOUND - True if fluidsynth found.
|
||||
|
||||
|
||||
IF (FLUIDSYNTH_INCLUDE_DIR AND FLUIDSYNTH_LIBRARIES)
|
||||
# Already in cache, be silent
|
||||
SET(FluidSynth_FIND_QUIETLY TRUE)
|
||||
ENDIF (FLUIDSYNTH_INCLUDE_DIR AND FLUIDSYNTH_LIBRARIES)
|
||||
|
||||
FIND_PATH(FLUIDSYNTH_INCLUDE_DIR fluidsynth.h)
|
||||
|
||||
FIND_LIBRARY(FLUIDSYNTH_LIBRARIES NAMES fluidsynth )
|
||||
MARK_AS_ADVANCED( FLUIDSYNTH_LIBRARIES FLUIDSYNTH_INCLUDE_DIR )
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set FLUIDSYNTH_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FluidSynth DEFAULT_MSG FLUIDSYNTH_LIBRARIES FLUIDSYNTH_INCLUDE_DIR)
|
||||
|
||||
@@ -0,0 +1,382 @@
|
||||
# - Locates the SDL_sound library
|
||||
#
|
||||
# This module depends on SDL being found and
|
||||
# must be called AFTER FindSDL.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 to override this selectionor 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(SDL_FOUND AND 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 SDL_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 FindSDL.cmake module, but that's kind of painful.
|
||||
# The solution would be to try something like:
|
||||
# set(SDL_TRY_COMPILE_LIBRARY_LIST "${SDL_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=${SDL_INCLUDE_DIR}\;${SDL_SOUND_INCLUDE_DIR}
|
||||
# -DLINK_LIBRARIES:STRING=${SDL_SOUND_LIBRARY}\;${SDL_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} ${SDL_LIBRARY})
|
||||
# causes problems when SDL_LIBRARY looks like
|
||||
# /Library/Frameworks/SDL.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_TRY_LIBS)
|
||||
foreach(lib ${SDL_SOUND_LIBRARY} ${SDL_LIBRARY})
|
||||
set(TMP_TRY_LIBS "${TMP_TRY_LIBS} \"${lib}\"")
|
||||
endforeach()
|
||||
|
||||
# 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 SDL_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(${SDL_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR})
|
||||
add_executable(DetermineSoundLibs DetermineSoundLibs.c)
|
||||
target_link_libraries(DetermineSoundLibs ${TMP_TRY_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.
|
||||
|
||||
set(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY})
|
||||
|
||||
# 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})
|
||||
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})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Find Ogg and Vorbis
|
||||
if("${MY_OUTPUT}" MATCHES "ov_")
|
||||
find_library(VORBIS_LIBRARY
|
||||
NAMES vorbis Vorbis VORBIS
|
||||
PATHS
|
||||
ENV VORBISDIR
|
||||
ENV OGGDIR
|
||||
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})
|
||||
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})
|
||||
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})
|
||||
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})
|
||||
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})
|
||||
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})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARIES_TMP} CACHE INTERNAL "SDL_sound and dependent libraries")
|
||||
else()
|
||||
set(SDL_SOUND_LIBRARIES ${SDL_SOUND_EXTRAS} ${SDL_SOUND_LIBRARY} 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_LIBRARY SDL_SOUND_INCLUDE_DIR
|
||||
VERSION_VAR SDL_SOUND_VERSION_STRING)
|
||||
@@ -0,0 +1,171 @@
|
||||
# Adapted from http://code.google.com/p/android-cmake/
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
if(APPLE)
|
||||
set(HOST_APPLE true)
|
||||
elseif(UNIX)
|
||||
set(HOST_UNIX true)
|
||||
endif()
|
||||
|
||||
set(APPLE false)
|
||||
set(UNIX true)
|
||||
|
||||
set(ANDROID_NDK_DEFAULT_SEARCH_PATH /opt/android-ndk)
|
||||
set(ANDROID_NDK_SUPPORTED_VERSIONS -r8d -r8 -r7 -r6 -r5c -r5b -r5 "")
|
||||
set(ANDROID_NDK_TOOLCHAIN_DEFAULT_SEARCH_PATH /opt/android-toolchain)
|
||||
set(TOOL_OS_SUFFIX "")
|
||||
|
||||
if(NOT DEFINED ANDROID_NDK)
|
||||
set(ANDROID_NDK "$ENV{ANDROID_NDK}")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ANDROID_NDK_TOOLCHAIN_ROOT)
|
||||
set(ANDROID_NDK_TOOLCHAIN_ROOT $ENV{ANDROID_NDK_TOOLCHAIN_ROOT})
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${ANDROID_NDK}")
|
||||
foreach(ndk_version ${ANDROID_NDK_SUPPORTED_VERSIONS})
|
||||
if(EXISTS ${ANDROID_NDK_DEFAULT_SEARCH_PATH}${ndk_version})
|
||||
set(ANDROID_NDK "${ANDROID_NDK_DEFAULT_SEARCH_PATH}${ndk_version}")
|
||||
message(STATUS "Using default path for android NDK ${ANDROID_NDK}")
|
||||
message(STATUS " If you prefer to use a different location, please define the variable: ANDROID_NDK")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(EXISTS "${ANDROID_NDK}")
|
||||
if(APPLE)
|
||||
set(ANDROID_TOOLCHAIN_SYSTEM "darwin-x86")
|
||||
elseif(WIN32)
|
||||
set(ANDROID_TOOLCHAIN_SYSTEM "windows")
|
||||
set(TOOL_OS_SUFFIX ".exe")
|
||||
elseif(UNIX)
|
||||
set(ANDROID_TOOLCHAIN_SYSTEM "linux-x86_64")
|
||||
else()
|
||||
message(FATAL_ERROR "Your platform is not supported")
|
||||
endif()
|
||||
|
||||
if(NOT ANDROID_API_LEVEL GREATER 2)
|
||||
if(NDK_CPU_X86)
|
||||
set(ANDROID_API_LEVEL 9)
|
||||
else()
|
||||
set(ANDROID_API_LEVEL 5)
|
||||
endif()
|
||||
message(STATUS "Using default android API level android-${ANDROID_API_LEVEL}")
|
||||
message(STATUS " If you prefer to use a different API level, please define the variable: ANDROID_API_LEVEL")
|
||||
endif()
|
||||
|
||||
if (NDK_CPU_X86)
|
||||
set(ANDROID_TOOLCHAIN_PREFIX "i686-android-linux")
|
||||
set(ANDROID_TOOLCHAIN_NAME "x86")
|
||||
set(ANDROID_TOOLCHAIN_PLATFORM_NAME "x86")
|
||||
else()
|
||||
set(ANDROID_TOOLCHAIN_PREFIX "arm-linux-androideabi")
|
||||
set(ANDROID_TOOLCHAIN_NAME "${ANDROID_TOOLCHAIN_PREFIX}")
|
||||
set(ANDROID_TOOLCHAIN_PLATFORM_NAME "arm")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED ANDROID_TOOLCHAIN_VERSION)
|
||||
set(SUPPORTED_TOOLCHAIN_VERSIONS 4.4.0 4.4.3 4.6.0 4.6.1 4.6.2 4.6.3 4.7)
|
||||
foreach(gcc_version ${SUPPORTED_TOOLCHAIN_VERSIONS})
|
||||
if (EXISTS "${ANDROID_NDK}/toolchains/${ANDROID_TOOLCHAIN_NAME}-${gcc_version}")
|
||||
set(ANDROID_TOOLCHAIN_VERSION ${gcc_version})
|
||||
endif()
|
||||
endforeach()
|
||||
if(NOT DEFINED ANDROID_TOOLCHAIN_VERSION)
|
||||
message(FATAL_ERROR "Unable to find toolchain")
|
||||
else()
|
||||
message(STATUS "Using auto-detected toolchain ${ANDROID_TOOLCHAIN_NAME}-${ANDROID_TOOLCHAIN_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
if (EXISTS "${ANDROID_NDK}/toolchains/clang-android-${ANDROID_TOOLCHAIN_VERSION}")
|
||||
set (ANDROID_TOOLCHAIN_NAME "clang-android")
|
||||
message(STATUS "Found clang toolchain ${ANDROID_TOOLCHAIN_NAME}-${ANDROID_TOOLCHAIN_VERSION}")
|
||||
endif()
|
||||
|
||||
set(ANDROID_NDK_SYSROOT "${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-${ANDROID_TOOLCHAIN_PLATFORM_NAME}")
|
||||
set(ANDROID_NDK_TOOLCHAIN_ROOT "${ANDROID_NDK}/toolchains/${ANDROID_TOOLCHAIN_NAME}-${ANDROID_TOOLCHAIN_VERSION}/prebuilt/${ANDROID_TOOLCHAIN_SYSTEM}")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILER "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-gcc${TOOL_OS_SUFFIX}" CACHE PATH "gcc" FORCE)
|
||||
set(CMAKE_CXX_COMPILER "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-g++${TOOL_OS_SUFFIX}" CACHE PATH "g++" FORCE)
|
||||
set(CMAKE_AR "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-ar${TOOL_OS_SUFFIX}" CACHE PATH "archive" FORCE)
|
||||
set(CMAKE_LINKER "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-ld${TOOL_OS_SUFFIX}" CACHE PATH "linker" FORCE)
|
||||
set(CMAKE_NM "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-nm${TOOL_OS_SUFFIX}" CACHE PATH "nm" FORCE)
|
||||
set(CMAKE_OBJCOPY "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-objcopy${TOOL_OS_SUFFIX}" CACHE PATH "objcopy" FORCE)
|
||||
set(CMAKE_OBJDUMP "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-objdump${TOOL_OS_SUFFIX}" CACHE PATH "objdump" FORCE)
|
||||
set(CMAKE_STRIP "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-strip${TOOL_OS_SUFFIX}" CACHE PATH "strip" FORCE)
|
||||
set(CMAKE_RANLIB "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_PREFIX}-ranlib${TOOL_OS_SUFFIX}" CACHE PATH "ranlib" FORCE)
|
||||
|
||||
if(NDK_CPU_X86)
|
||||
set(ANDROID_NDK_CPU_NAME "x86")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86")
|
||||
elseif(NDK_CPU_ARM_V7A)
|
||||
set(NDK_CPU_ARM_NEON false)
|
||||
set(NDK_CPU_ARM_VFPV3 false)
|
||||
set(NDK_CPU_ARM true)
|
||||
set(ANDROID_NDK_CPU_NAME "armeabi-v7a")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "armv7-a")
|
||||
else()
|
||||
set(NDK_CPU_ARM true)
|
||||
set(ANDROID_NDK_CPU_NAME "armeabi")
|
||||
set(NDK_CPU_ARM_NEON false)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "armv5te")
|
||||
endif()
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH "${ANDROID_NDK_TOOLCHAIN_ROOT}/bin" "${ANDROID_NDK_TOOLCHAIN_ROOT}/${ANDROID_TOOLCHAIN_PREFIX}" "${ANDROID_NDK_SYSROOT}" "${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_PREFIX}/share")
|
||||
|
||||
set(STL_PATH "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++")
|
||||
set(STL_LIBRARIES_PATH "${STL_PATH}/libs/${ANDROID_NDK_CPU_NAME}")
|
||||
include_directories(SYSTEM "${STL_PATH}/include" "${STL_LIBRARIES_PATH}/include")
|
||||
link_directories("${ANDROID_NDK_SYSROOT}/usr/lib")
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_C_FLAGS "-fPIC -DANDROID -Wno-psabi -fsigned-char")
|
||||
|
||||
set(FORCE_ARM OFF CACHE BOOL "Use 32-bit ARM instructions instead of Thumb-1")
|
||||
if(NDK_CPU_X86)
|
||||
elseif(NOT FORCE_ARM)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb")
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "--sysroot=${ANDROID_NDK_SYSROOT} ${CMAKE_C_FLAGS}")
|
||||
|
||||
include(CMakeForceCompiler)
|
||||
CMAKE_FORCE_C_COMPILER("${CMAKE_C_COMPILER}" GNU)
|
||||
CMAKE_FORCE_CXX_COMPILER("${CMAKE_CXX_COMPILER}" GNU)
|
||||
|
||||
if(NDK_CPU_ARM_V7A)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv7-a -mfloat-abi=softfp")
|
||||
if(NDK_CPU_ARM_NEON)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon")
|
||||
elseif(NDK_CPU_ARM_VFPV3)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfpv3")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c++ flags")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
|
||||
|
||||
set(LINKER_FLAGS "-L\"${STL_LIBRARIES_PATH}\" -L\"${CMAKE_INSTALL_PREFIX}/libs/${ANDROID_NDK_CPU_NAME}\"")
|
||||
if(NDK_CPU_ARM OR NDK_CPU_ARM_V7A)
|
||||
set(LINKER_FLAGS "-Wl,--fix-cortex-a8 ${LINKER_FLAGS}")
|
||||
endif()
|
||||
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE)
|
||||
|
||||
set(ANDROID true)
|
||||
set(BUILD_ANDROID true)
|
||||
|
||||
MARK_AS_ADVANCED(FORCE_ARM NO_UNDEFINED)
|
||||
|
||||
Reference in New Issue
Block a user