cmake: Project upgrade
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.8.12)
|
||||||
|
project(BlitzNext)
|
||||||
|
|
||||||
|
# Modules
|
||||||
|
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
|
||||||
|
|
||||||
|
# Detect Architecture
|
||||||
|
math(EXPR BITS "8*${CMAKE_SIZEOF_VOID_P}")
|
||||||
|
if("${BITS}" STREQUAL "32")
|
||||||
|
set(ARCH "x86")
|
||||||
|
else()
|
||||||
|
set(ARCH "x64")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Options
|
||||||
|
#add_definitions(-DVERSION 1108)
|
||||||
|
#add_definitions(-DBASE_VER 1108)
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
find_package(SDL2 REQUIRED main)
|
||||||
|
find_package(FreeImage REQUIRED)
|
||||||
|
find_package(fmod REQUIRED)
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
if(WIN32)
|
||||||
|
add_definitions(
|
||||||
|
-DNTDDI_VERSION=NTDDI_VISTA
|
||||||
|
-D_WIN32_WINNT=_WIN32_WINNT_VISTA
|
||||||
|
-DWINVER=_WIN32_WINNT_VISTA
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Projects
|
||||||
|
add_subdirectory(config)
|
||||||
|
add_subdirectory(stdutil)
|
||||||
|
add_subdirectory(gxruntime)
|
||||||
|
add_subdirectory(runtime)
|
||||||
|
add_subdirectory(linker)
|
||||||
|
add_subdirectory(debugger)
|
||||||
|
add_subdirectory(compiler)
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
# Find FreeImage (and components)
|
||||||
|
#
|
||||||
|
#Variable Type Description
|
||||||
|
# FreeImage_FOUND BOOL Did we find FreeImage?
|
||||||
|
# FreeImage_INCLUDE_DIRS LIST/PATH List of paths to all include directories
|
||||||
|
# FreeImage_LIBRARIES LIST/FILE List of files to link against
|
||||||
|
# FreeImage_BINARIES LIST/FILE Binary files for FreeImage
|
||||||
|
# FreeImage_VERSION_STRING STRING FreeImage Version String
|
||||||
|
#
|
||||||
|
|
||||||
|
# Options
|
||||||
|
set(FreeImage_DIR "" CACHE PATH "Path to FreeImage 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(FreeImage_FOUND FALSE)
|
||||||
|
set(FreeImage_INCLUDE_DIRS)
|
||||||
|
set(FreeImage_LIBRARIES)
|
||||||
|
set(FreeImage_BINARIES)
|
||||||
|
set(FreeImage_VERSION_STRING)
|
||||||
|
|
||||||
|
function(find_freeimage)
|
||||||
|
set(FreeImage_FOUND FALSE PARENT_SCOPE)
|
||||||
|
set(FreeImage_INCLUDE_DIRS PARENT_SCOPE)
|
||||||
|
set(FreeImage_LIBRARIES PARENT_SCOPE)
|
||||||
|
set(FreeImage_BINARIES PARENT_SCOPE)
|
||||||
|
set(FreeImage_VERSION_STRING PARENT_SCOPE)
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
FreeImage_FOUND
|
||||||
|
FreeImage_INCLUDE_DIRS
|
||||||
|
FreeImage_LIBRARIES
|
||||||
|
FreeImage_BINARIES
|
||||||
|
FreeImage_VERSION_STRING
|
||||||
|
)
|
||||||
|
|
||||||
|
set(FreeImage_INCLUDE_DIR)
|
||||||
|
set(FreeImage_LIBRARY)
|
||||||
|
set(FreeImage_BINARY)
|
||||||
|
find_path(FreeImage_INCLUDE_DIR
|
||||||
|
NAMES
|
||||||
|
"FreeImage.h"
|
||||||
|
HINTS
|
||||||
|
${FreeImagePath${_lib_suffix}}
|
||||||
|
${FreeImagePath}
|
||||||
|
${FreeImage_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/include /usr/local/include /opt/local/include /sw/include
|
||||||
|
PATH_SUFFIXES
|
||||||
|
Dist/x${_lib_arch}
|
||||||
|
Dist/x${_lib_suffix}
|
||||||
|
Dist
|
||||||
|
include
|
||||||
|
inc
|
||||||
|
)
|
||||||
|
find_file(FreeImage_LIBRARY
|
||||||
|
"FreeImage.lib"
|
||||||
|
HINTS
|
||||||
|
${FreeImagePath${_lib_suffix}}
|
||||||
|
${FreeImagePath}
|
||||||
|
${FreeImage_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
|
||||||
|
PATH_SUFFIXES
|
||||||
|
Dist Dist/x${_lib_suffix}
|
||||||
|
lib/x${_lib_arch} libx${_lib_arch} ../lib/x${_lib_arch} ../libx${_lib_arch}
|
||||||
|
lib/${_lib_suffix} lib${_lib_suffix} ../lib/${_lib_suffix} ../lib${_lib_suffix}
|
||||||
|
lib ../lib
|
||||||
|
libs/x${_lib_arch} libsx${_lib_arch} ../libs/x${_lib_arch} ../libsx${_lib_arch}
|
||||||
|
libs/${_lib_suffix} libs${_lib_suffix} ../libs/${_lib_suffix} ../libs${_lib_suffix}
|
||||||
|
libs ../libs
|
||||||
|
bin/x${_lib_arch} binx${_lib_arch} ../bin/x${_lib_arch} ../binx${_lib_arch}
|
||||||
|
bin/${_lib_suffix} bin${_lib_suffix} ../bin/${_lib_suffix} ../bin${_lib_suffix}
|
||||||
|
bin ../bin
|
||||||
|
)
|
||||||
|
find_file(FreeImage_BINARY
|
||||||
|
"FreeImage${_lib_ext}"
|
||||||
|
HINTS
|
||||||
|
${FreeImagePath${_lib_suffix}}
|
||||||
|
${FreeImagePath}
|
||||||
|
${FreeImage_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
|
||||||
|
PATH_SUFFIXES
|
||||||
|
Dist Dist/x${_lib_suffix}
|
||||||
|
lib/x${_lib_arch} libx${_lib_arch} ../lib/x${_lib_arch} ../libx${_lib_arch}
|
||||||
|
lib/${_lib_suffix} lib${_lib_suffix} ../lib/${_lib_suffix} ../lib${_lib_suffix}
|
||||||
|
lib ../lib
|
||||||
|
libs/x${_lib_arch} libsx${_lib_arch} ../libs/x${_lib_arch} ../libsx${_lib_arch}
|
||||||
|
libs/${_lib_suffix} libs${_lib_suffix} ../libs/${_lib_suffix} ../libs${_lib_suffix}
|
||||||
|
libs ../libs
|
||||||
|
bin/x${_lib_arch} binx${_lib_arch} ../bin/x${_lib_arch} ../binx${_lib_arch}
|
||||||
|
bin/${_lib_suffix} bin${_lib_suffix} ../bin/${_lib_suffix} ../bin${_lib_suffix}
|
||||||
|
bin ../bin
|
||||||
|
)
|
||||||
|
|
||||||
|
if(FreeImage_INCLUDE_DIR AND FreeImage_LIBRARY)
|
||||||
|
set(FreeImage_FOUND TRUE PARENT_SCOPE)
|
||||||
|
set(FreeImage_INCLUDE_DIRS ${FreeImage_INCLUDE_DIR} PARENT_SCOPE)
|
||||||
|
set(FreeImage_LIBRARIES ${FreeImage_LIBRARY} PARENT_SCOPE)
|
||||||
|
set(FreeImage_BINARIES ${FreeImage_BINARY} PARENT_SCOPE)
|
||||||
|
|
||||||
|
set(_vfile "${FreeImage_INCLUDE_DIR}/FreeImage.h")
|
||||||
|
if(EXISTS "${_vfile}")
|
||||||
|
file(STRINGS "${_vfile}" _version_parse REGEX "^.*FREEIMAGE_(MAJOR|MINOR)_VERSION[ \t]+[0-9]+[ \t]*$")
|
||||||
|
string(REGEX REPLACE ".*FREEIMAGE_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" _major "${_version_parse}")
|
||||||
|
string(REGEX REPLACE ".*FREEIMAGE_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" _minor "${_version_parse}")
|
||||||
|
|
||||||
|
set(FreeImage_VERSION_MAJOR "${_major}" PARENT_SCOPE)
|
||||||
|
set(FreeImage_VERSION_MINOR "${_minor}" PARENT_SCOPE)
|
||||||
|
|
||||||
|
set(FreeImage_VERSION_STRING "${_major}.${_minor}" PARENT_SCOPE)
|
||||||
|
else()
|
||||||
|
message(STATUS "Failed parsing FreeImage version")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# Library
|
||||||
|
find_freeimage()
|
||||||
|
|
||||||
|
# Default
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(FreeImage
|
||||||
|
FOUND_VAR FreeImage_FOUND
|
||||||
|
REQUIRED_VARS FreeImage_LIBRARIES FreeImage_INCLUDE_DIRS FreeImage_BINARIES
|
||||||
|
VERSION_VAR FreeImage_VERSION_STRING
|
||||||
|
)
|
||||||
@@ -0,0 +1,222 @@
|
|||||||
|
# Find SDL2 (and components)
|
||||||
|
#
|
||||||
|
#Variable Type Description
|
||||||
|
# SDL2_FOUND BOOL Did we find SDL2?
|
||||||
|
# SDL2_INCLUDE_DIRS LIST/PATH List of paths to all include directories
|
||||||
|
# SDL2_LIBRARIES LIST/FILE List of files to link against
|
||||||
|
# SDL2_BINARIES LIST/FILE Binary files for SDL2
|
||||||
|
# SDL2_VERSION_STRING STRING SDL2 Version String
|
||||||
|
#
|
||||||
|
#Components:
|
||||||
|
#Variable Type Description
|
||||||
|
# SDL2_comp_FOUND BOOL Found <comp>onent?
|
||||||
|
# SDL2_comp_LIBRARIES LIST/FILE Path to <comp>onent library files
|
||||||
|
|
||||||
|
# Options
|
||||||
|
set(SDL2_DIR "" CACHE PATH "Path to SDL2 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(SDL2_FOUND FALSE)
|
||||||
|
set(SDL2_INCLUDE_DIRS)
|
||||||
|
set(SDL2_LIBRARIES)
|
||||||
|
set(SDL2_BINARIES)
|
||||||
|
set(SDL2_VERSION_STRING)
|
||||||
|
|
||||||
|
function(find_sdl2)
|
||||||
|
set(SDL2_FOUND FALSE PARENT_SCOPE)
|
||||||
|
set(SDL2_INCLUDE_DIRS PARENT_SCOPE)
|
||||||
|
set(SDL2_LIBRARIES PARENT_SCOPE)
|
||||||
|
set(SDL2_BINARIES PARENT_SCOPE)
|
||||||
|
set(SDL2_VERSION_STRING PARENT_SCOPE)
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
SDL2_FOUND
|
||||||
|
SDL2_INCLUDE_DIRS
|
||||||
|
SDL2_LIBRARIES
|
||||||
|
SDL2_BINARIES
|
||||||
|
SDL2_VERSION_STRING
|
||||||
|
)
|
||||||
|
|
||||||
|
set(SDL2_INCLUDE_DIR)
|
||||||
|
set(SDL2_LIBRARY)
|
||||||
|
set(SDL2_BINARY)
|
||||||
|
find_path(SDL2_INCLUDE_DIR
|
||||||
|
NAMES
|
||||||
|
"SDL.h" "SDL_version.h"
|
||||||
|
HINTS
|
||||||
|
${SDL2Path${_lib_suffix}}
|
||||||
|
${SDL2Path}
|
||||||
|
${SDLPath${_lib_suffix}}
|
||||||
|
${SDLPath}
|
||||||
|
${SDL2_DIR}
|
||||||
|
${SDL_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/include /usr/local/include /opt/local/include /sw/include
|
||||||
|
PATH_SUFFIXES
|
||||||
|
sdl2/include include sdl/include
|
||||||
|
)
|
||||||
|
find_file(SDL2_LIBRARY
|
||||||
|
"SDL2.lib"
|
||||||
|
HINTS
|
||||||
|
${SDL2Path${_lib_suffix}}
|
||||||
|
${SDL2Path}
|
||||||
|
${SDLPath${_lib_suffix}}
|
||||||
|
${SDLPath}
|
||||||
|
${SDL2_DIR}
|
||||||
|
${SDL_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
|
||||||
|
PATH_SUFFIXES
|
||||||
|
lib/x${_lib_arch} libx${_lib_arch} ../lib/x${_lib_arch} ../libx${_lib_arch}
|
||||||
|
lib/${_lib_suffix} lib${_lib_suffix} ../lib/${_lib_suffix} ../lib${_lib_suffix}
|
||||||
|
lib ../lib
|
||||||
|
libs/x${_lib_arch} libsx${_lib_arch} ../libs/x${_lib_arch} ../libsx${_lib_arch}
|
||||||
|
libs/${_lib_suffix} libs${_lib_suffix} ../libs/${_lib_suffix} ../libs${_lib_suffix}
|
||||||
|
libs ../libs
|
||||||
|
bin/x${_lib_arch} binx${_lib_arch} ../bin/x${_lib_arch} ../binx${_lib_arch}
|
||||||
|
bin/${_lib_suffix} bin${_lib_suffix} ../bin/${_lib_suffix} ../bin${_lib_suffix}
|
||||||
|
bin ../bin
|
||||||
|
)
|
||||||
|
find_file(SDL2_BINARY
|
||||||
|
"SDL2${_lib_ext}"
|
||||||
|
HINTS
|
||||||
|
${SDL2Path${_lib_suffix}}
|
||||||
|
${SDL2Path}
|
||||||
|
${SDLPath${_lib_suffix}}
|
||||||
|
${SDLPath}
|
||||||
|
${SDL2_DIR}
|
||||||
|
${SDL_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
|
||||||
|
PATH_SUFFIXES
|
||||||
|
lib/x${_lib_arch} libx${_lib_arch} ../lib/x${_lib_arch} ../libx${_lib_arch}
|
||||||
|
lib/${_lib_suffix} lib${_lib_suffix} ../lib/${_lib_suffix} ../lib${_lib_suffix}
|
||||||
|
lib ../lib
|
||||||
|
libs/x${_lib_arch} libsx${_lib_arch} ../libs/x${_lib_arch} ../libsx${_lib_arch}
|
||||||
|
libs/${_lib_suffix} libs${_lib_suffix} ../libs/${_lib_suffix} ../libs${_lib_suffix}
|
||||||
|
libs ../libs
|
||||||
|
bin/x${_lib_arch} binx${_lib_arch} ../bin/x${_lib_arch} ../binx${_lib_arch}
|
||||||
|
bin/${_lib_suffix} bin${_lib_suffix} ../bin/${_lib_suffix} ../bin${_lib_suffix}
|
||||||
|
bin ../bin
|
||||||
|
)
|
||||||
|
|
||||||
|
if(SDL2_INCLUDE_DIR AND SDL2_LIBRARY)
|
||||||
|
set(SDL2_FOUND TRUE PARENT_SCOPE)
|
||||||
|
set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR} PARENT_SCOPE)
|
||||||
|
set(SDL2_LIBRARIES ${SDL2_LIBRARY} PARENT_SCOPE)
|
||||||
|
set(SDL2_BINARIES ${SDL2_BINARY} PARENT_SCOPE)
|
||||||
|
|
||||||
|
set(_vfile "${SDL2_INCLUDE_DIR}/SDL_version.h")
|
||||||
|
if(EXISTS "${_vfile}")
|
||||||
|
file(STRINGS "${_vfile}" _version_parse REGEX "^.*SDL_(MAJOR|MINOR)_VERSION[ \t]+[0-9]+[ \t]*$")
|
||||||
|
string(REGEX REPLACE ".*SDL_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" _major "${_version_parse}")
|
||||||
|
string(REGEX REPLACE ".*SDL_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" _minor "${_version_parse}")
|
||||||
|
|
||||||
|
set(SDL2_VERSION_MAJOR "${_major}" PARENT_SCOPE)
|
||||||
|
set(SDL2_VERSION_MINOR "${_minor}" PARENT_SCOPE)
|
||||||
|
|
||||||
|
set(SDL2_VERSION_STRING "${_major}.${_minor}" PARENT_SCOPE)
|
||||||
|
else()
|
||||||
|
message(STATUS "Failed parsing SDL2 version")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(find_sdl2_component component)
|
||||||
|
string(TOUPPER "${component}" component_u)
|
||||||
|
set(SDL2_${component_u}_FOUND FALSE PARENT_SCOPE)
|
||||||
|
set(SDL2_${component}_FOUND FALSE PARENT_SCOPE)
|
||||||
|
set(SDL2_${component_u}_LIBRARIES PARENT_SCOPE)
|
||||||
|
set(SDL2_${component}_LIBRARIES PARENT_SCOPE)
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
SDL2_${component_u}_FOUND
|
||||||
|
SDL2_${component}_FOUND
|
||||||
|
SDL2_${component_u}_LIBRARIES
|
||||||
|
SDL2_${component}_LIBRARIES
|
||||||
|
SDL2_${component_u}_BINARIES
|
||||||
|
SDL2_${component}_BINARIES
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT SDL2_FOUND)
|
||||||
|
message(STATUS "SDL2 not found, not looking for components.")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Find component
|
||||||
|
set(SDL2_${component_u}_LIBRARY)
|
||||||
|
find_file(SDL2_${component_u}_LIBRARY
|
||||||
|
"SDL2${component}.lib"
|
||||||
|
HINTS
|
||||||
|
${SDL2Path${_lib_suffix}}
|
||||||
|
${SDL2Path}
|
||||||
|
${SDLPath${_lib_suffix}}
|
||||||
|
${SDLPath}
|
||||||
|
${SDL2_DIR}
|
||||||
|
${SDL_DIR}
|
||||||
|
PATHS
|
||||||
|
/usr/lib /usr/local/lib /opt/local/lib /sw/lib
|
||||||
|
PATH_SUFFIXES
|
||||||
|
lib/x${_lib_arch} libx${_lib_arch} ../lib/x${_lib_arch} ../libx${_lib_arch}
|
||||||
|
lib/${_lib_suffix} lib${_lib_suffix} ../lib/${_lib_suffix} ../lib${_lib_suffix}
|
||||||
|
lib ../lib
|
||||||
|
libs/x${_lib_arch} libsx${_lib_arch} ../libs/x${_lib_arch} ../libsx${_lib_arch}
|
||||||
|
libs/${_lib_suffix} libs${_lib_suffix} ../libs/${_lib_suffix} ../libs${_lib_suffix}
|
||||||
|
libs ../libs
|
||||||
|
bin/x${_lib_arch} binx${_lib_arch} ../bin/x${_lib_arch} ../binx${_lib_arch}
|
||||||
|
bin/${_lib_suffix} bin${_lib_suffix} ../bin/${_lib_suffix} ../bin${_lib_suffix}
|
||||||
|
bin ../bin
|
||||||
|
)
|
||||||
|
|
||||||
|
if(SDL2_${component_u}_LIBRARY)
|
||||||
|
set(SDL2_${component_u}_FOUND TRUE PARENT_SCOPE)
|
||||||
|
set(SDL2_${component}_FOUND TRUE PARENT_SCOPE)
|
||||||
|
set(SDL2_${component_u}_LIBRARIES ${SDL2_${component_u}_LIBRARY} PARENT_SCOPE)
|
||||||
|
set(SDL2_${component}_LIBRARIES ${SDL2_${component_u}_LIBRARY} PARENT_SCOPE)
|
||||||
|
|
||||||
|
list(APPEND SDL2_LIBRARIES ${SDL2_${component_u}_LIBRARIES})
|
||||||
|
list(REMOVE_DUPLICATES SDL2_LIBRARIES)
|
||||||
|
set(SDL2_LIBRARIES "${SDL2_LIBRARIES}" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# Library
|
||||||
|
find_sdl2()
|
||||||
|
|
||||||
|
# Components
|
||||||
|
list(GET SDL2_FIND_COMPONENTS 0 _first_comp)
|
||||||
|
string(TOUPPER "${_first_comp}" _first_comp)
|
||||||
|
|
||||||
|
foreach(component ${SDL2_FIND_COMPONENTS})
|
||||||
|
if(component STREQUAL "main")
|
||||||
|
find_sdl2_component("${component}")
|
||||||
|
elseif(component STREQUAL "test")
|
||||||
|
find_sdl2_component("${component}")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unknown FFmpeg component requested: ${component}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Default
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(SDL2
|
||||||
|
FOUND_VAR SDL2_FOUND
|
||||||
|
REQUIRED_VARS SDL2_LIBRARIES SDL2_INCLUDE_DIRS SDL2_BINARIES
|
||||||
|
VERSION_VAR SDL2_VERSION_STRING
|
||||||
|
)
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
# 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
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user