Files
Michael Fabian 'Xaymar' Dirks 28598fae6b cmake: Project upgrade
2019-01-18 15:56:09 +01:00

135 lines
3.0 KiB
CMake

# Find fmod (and components)
#
#Variable Type Description
# fmod_FOUND BOOL Did we find fmod?
# fmod_INCLUDE_DIRS LIST/PATH List of paths to all include directories
# fmod_LIBRARIES LIST/FILE List of files to link against
# fmod_BINARIES LIST/FILE Binary files for fmod
# fmod_VERSION_STRING STRING fmod Version String
# Options
set(fmod_DIR "" CACHE PATH "Path to fmod Library")
# Find code
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_arch 64)
else()
set(_lib_arch 86)
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
if(WIN32)
set(_lib_ext .dll)
else()
set(_lib_ext .so)
endif()
set(fmod_FOUND FALSE)
set(fmod_INCLUDE_DIRS)
set(fmod_LIBRARIES)
set(fmod_BINARIES)
set(fmod_VERSION_STRING)
function(find_fmod)
set(fmod_FOUND FALSE PARENT_SCOPE)
set(fmod_INCLUDE_DIRS PARENT_SCOPE)
set(fmod_LIBRARIES PARENT_SCOPE)
set(fmod_BINARIES PARENT_SCOPE)
set(fmod_VERSION_STRING PARENT_SCOPE)
mark_as_advanced(
fmod_FOUND
fmod_INCLUDE_DIRS
fmod_LIBRARIES
fmod_BINARIES
fmod_VERSION_STRING
)
set(fmod_INCLUDE_DIR)
set(fmod_LIBRARY)
set(fmod_BINARY)
find_path(fmod_INCLUDE_DIR
NAMES
"fmod.h"
HINTS
${fmodPath${_lib_suffix}}
${fmodPath}
${fmod_DIR}
PATHS
/usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES
fmod
fmod/inc
inc
fmod/include
include
fmod/api
api
fmod/api/inc
api/inc
)
find_file(fmod_LIBRARY
"fmod${_lib_suffix}vc.lib" "fmodvc.lib"
HINTS
${fmodPath${_lib_suffix}}
${fmodPath}
${fmod_DIR}
PATHS
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
PATH_SUFFIXES
fmod
fmod/api
api
fmod/api/lib
api/lib
)
find_file(fmod_BINARY
NAMES "fmod${_lib_suffix}${_lib_ext}" "fmod${_lib_ext}"
HINTS
${fmodPath${_lib_suffix}}
${fmodPath}
${fmod_DIR}
PATHS
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
PATH_SUFFIXES
fmod
fmod/api
api
)
if(fmod_INCLUDE_DIR AND fmod_LIBRARY)
set(fmod_FOUND TRUE PARENT_SCOPE)
set(fmod_INCLUDE_DIRS ${fmod_INCLUDE_DIR} PARENT_SCOPE)
set(fmod_LIBRARIES ${fmod_LIBRARY} PARENT_SCOPE)
set(fmod_BINARIES ${fmod_BINARY} PARENT_SCOPE)
set(_vfile "${fmod_INCLUDE_DIR}/fmod.h")
if(EXISTS "${_vfile}")
file(STRINGS "${_vfile}" _version_parse REGEX "^.*FMOD_VERSION[ \t]+[0-9]+.[0-9]+f[ \t]*$")
string(REGEX REPLACE ".*FMOD_VERSION[ \t]+([0-9]+).*" "\\1" _major "${_version_parse}")
string(REGEX REPLACE ".*FMOD_VERSION[ \t]+[0-9]+.([0-9]+).*" "\\1" _minor "${_version_parse}")
set(fmod_VERSION_MAJOR "${_major}" PARENT_SCOPE)
set(fmod_VERSION_MINOR "${_minor}" PARENT_SCOPE)
set(fmod_VERSION_STRING "${_major}.${_minor}" PARENT_SCOPE)
else()
message(STATUS "Failed parsing fmod version")
endif()
endif()
endfunction()
# Library
find_fmod()
# Default
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(fmod
FOUND_VAR fmod_FOUND
REQUIRED_VARS fmod_LIBRARIES fmod_INCLUDE_DIRS fmod_BINARIES
VERSION_VAR fmod_VERSION_STRING
)