Refactor FindVorbisFile.cmake
This commit is contained in:
parent
67758cf113
commit
066210254a
2 changed files with 121 additions and 72 deletions
|
@ -1,14 +1,39 @@
|
|||
# Locate VorbisFile
|
||||
# This module defines XXX_FOUND, XXX_INCLUDE_DIRS and XXX_LIBRARIES standard variables
|
||||
#
|
||||
# $VORBISDIR is an environment variable that would
|
||||
# correspond to the ./configure --prefix=$VORBISDIR
|
||||
# used in building Vorbis.
|
||||
#[=======================================================================[.rst:
|
||||
FindVorbisFile
|
||||
--------------
|
||||
|
||||
# Copied from
|
||||
# http://code.google.com/p/osgaudio/source/browse/trunk/CMakeModules/FindVorbisFile.cmake
|
||||
Find the VorbisFile includes and library.
|
||||
|
||||
SET(VORBISFILE_SEARCH_PATHS
|
||||
Environment
|
||||
^^^^^^^^^^^
|
||||
|
||||
$ENV{VORBISDIR} is an environment variable that would correspond to
|
||||
the `./configure --prefix=$VORBISDIR` used in building Vorbis.
|
||||
|
||||
|
||||
IMPORTED Targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the `IMPORTED` target ``VorbisFile::VorbisFile``, if
|
||||
VorbisFile has been found.
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following variables:
|
||||
|
||||
VORBISFILE_FOUND - True if VorbisFile found.
|
||||
VORBISFILE_INCLUDE_DIR - Where to find vorbis/vorbisfile.h.
|
||||
VORBISFILE_LIBRARIES - Libraries when using VorbisFile.
|
||||
|
||||
Inspiration
|
||||
^^^^^^^^^^^
|
||||
|
||||
http://code.google.com/p/osgaudio/source/browse/trunk/CMakeModules/FindVorbisFile.cmake
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
set(VORBISFILE_SEARCH_PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/usr/local
|
||||
|
@ -19,78 +44,103 @@ SET(VORBISFILE_SEARCH_PATHS
|
|||
/opt
|
||||
)
|
||||
|
||||
SET(MSVC_YEAR_NAME)
|
||||
IF (MSVC_VERSION GREATER 1599) # >= 1600
|
||||
SET(MSVC_YEAR_NAME VS2010)
|
||||
ELSEIF(MSVC_VERSION GREATER 1499) # >= 1500
|
||||
SET(MSVC_YEAR_NAME VS2008)
|
||||
ELSEIF(MSVC_VERSION GREATER 1399) # >= 1400
|
||||
SET(MSVC_YEAR_NAME VS2005)
|
||||
ELSEIF(MSVC_VERSION GREATER 1299) # >= 1300
|
||||
SET(MSVC_YEAR_NAME VS2003)
|
||||
ELSEIF(MSVC_VERSION GREATER 1199) # >= 1200
|
||||
SET(MSVC_YEAR_NAME VS6)
|
||||
ENDIF()
|
||||
# Map MSVC version to the installation folder name
|
||||
set(MSVC_YEAR_NAME)
|
||||
if(MSVC_VERSION GREATER 1599) # >= 1600
|
||||
set(MSVC_YEAR_NAME VS2010)
|
||||
elseif(MSVC_VERSION GREATER 1499) # >= 1500
|
||||
set(MSVC_YEAR_NAME VS2008)
|
||||
elseif(MSVC_VERSION GREATER 1399) # >= 1400
|
||||
set(MSVC_YEAR_NAME VS2005)
|
||||
elseif(MSVC_VERSION GREATER 1299) # >= 1300
|
||||
set(MSVC_YEAR_NAME VS2003)
|
||||
elseif(MSVC_VERSION GREATER 1199) # >= 1200
|
||||
set(MSVC_YEAR_NAME VS6)
|
||||
endif()
|
||||
|
||||
FIND_PATH(VORBISFILE_INCLUDE_DIR
|
||||
find_path(VORBISFILE_INCLUDE_DIR
|
||||
NAMES vorbis/vorbisfile.h
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES include
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
FIND_LIBRARY(VORBISFILE_LIBRARY
|
||||
NAMES vorbisfile libvorbisfile
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES lib lib64 win32/VorbisFile_Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
# First search for d-suffixed libs
|
||||
FIND_LIBRARY(VORBISFILE_LIBRARY_DEBUG
|
||||
NAMES vorbisfiled vorbisfile_d libvorbisfiled libvorbisfile_d
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES lib lib64 win32/VorbisFile_Dynamic_Debug "Win32/${MSVC_YEAR_NAME}/x64/Debug" "Win32/${MSVC_YEAR_NAME}/Win32/Debug"
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
IF(NOT VORBISFILE_LIBRARY_DEBUG)
|
||||
# Then search for non suffixed libs if necessary, but only in debug dirs
|
||||
FIND_LIBRARY(VORBISFILE_LIBRARY_DEBUG
|
||||
NAMES vorbisfile libvorbisfile
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES win32/VorbisFile_Dynamic_Debug "Win32/${MSVC_YEAR_NAME}/x64/Debug" "Win32/${MSVC_YEAR_NAME}/Win32/Debug"
|
||||
PATH_SUFFIXES include
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
find_library(VORBISFILE_LIBRARY
|
||||
NAMES vorbisfile libvorbisfile
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
lib64
|
||||
win32/VorbisFile_Dynamic_Release
|
||||
"Win32/${MSVC_YEAR_NAME}/x64/Release"
|
||||
"Win32/${MSVC_YEAR_NAME}/Win32/Release"
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
# First search for d-suffixed libs
|
||||
find_library(VORBISFILE_LIBRARY_DEBUG
|
||||
NAMES vorbisfiled vorbisfile_d libvorbisfiled libvorbisfile_d
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
lib64
|
||||
win32/VorbisFile_Dynamic_Debug
|
||||
"Win32/${MSVC_YEAR_NAME}/x64/Debug"
|
||||
"Win32/${MSVC_YEAR_NAME}/Win32/Debug"
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
|
||||
if(NOT VORBISFILE_LIBRARY_DEBUG)
|
||||
# Then search for non suffixed libs if necessary, but only in debug dirs
|
||||
find_library(VORBISFILE_LIBRARY_DEBUG
|
||||
NAMES vorbisfile libvorbisfile
|
||||
HINTS
|
||||
$ENV{VORBISFILEDIR}
|
||||
$ENV{VORBISFILE_PATH}
|
||||
$ENV{VORBISDIR}
|
||||
$ENV{VORBIS_PATH}
|
||||
PATH_SUFFIXES
|
||||
win32/VorbisFile_Dynamic_Debug
|
||||
"Win32/${MSVC_YEAR_NAME}/x64/Debug"
|
||||
"Win32/${MSVC_YEAR_NAME}/Win32/Debug"
|
||||
PATHS ${VORBISFILE_SEARCH_PATHS}
|
||||
)
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
|
||||
IF(VORBISFILE_LIBRARY)
|
||||
IF(VORBISFILE_LIBRARY_DEBUG)
|
||||
SET(VORBISFILE_LIBRARIES optimized "${VORBISFILE_LIBRARY}" debug "${VORBISFILE_LIBRARY_DEBUG}")
|
||||
ELSE()
|
||||
SET(VORBISFILE_LIBRARIES "${VORBISFILE_LIBRARY}") # Could add "general" keyword, but it is optional
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
if(VORBISFILE_LIBRARY)
|
||||
if(VORBISFILE_LIBRARY_DEBUG)
|
||||
set(VORBISFILE_LIBRARIES optimized "${VORBISFILE_LIBRARY}" debug "${VORBISFILE_LIBRARY_DEBUG}")
|
||||
else()
|
||||
set(VORBISFILE_LIBRARIES "${VORBISFILE_LIBRARY}") # Could add "general" keyword, but it is optional
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set XXX_FOUND to TRUE if all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(VorbisFile DEFAULT_MSG VORBISFILE_LIBRARIES VORBISFILE_INCLUDE_DIR)
|
||||
# handle the QUIETLY and REQUIRED arguments and set VORBISFILE_FOUND to TRUE if all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(VorbisFile DEFAULT_MSG VORBISFILE_LIBRARIES VORBISFILE_INCLUDE_DIR)
|
||||
|
||||
mark_as_advanced(VORBISFILE_INCLUDE_DIR VORBISFILE_LIBRARIES VORBISFILE_LIBRARY VORBISFILE_LIBRARY_DEBUG)
|
||||
|
||||
if(VORBISFILE_FOUND AND (NOT TARGET VorbisFile::VorbisFile))
|
||||
add_library(VorbisFile::VorbisFile UNKNOWN IMPORTED)
|
||||
set_target_properties(VorbisFile::VorbisFile PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${VORBISFILE_INCLUDE_DIR}")
|
||||
if(VORBISFILE_LIBRARY_DEBUG)
|
||||
set_target_properties(VorbisFile::VorbisFile PROPERTIES IMPORTED_LOCATION_DEBUG "${VORBISFILE_LIBRARY_DEBUG}")
|
||||
set_target_properties(VorbisFile::VorbisFile PROPERTIES IMPORTED_LOCATION_RELEASE "${VORBISFILE_LIBRARY}")
|
||||
else()
|
||||
set_target_properties(VorbisFile::VorbisFile PROPERTIES IMPORTED_LOCATION "${VORBISFILE_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -16,7 +16,6 @@ endif()
|
|||
include_directories(SYSTEM ${PANGOCAIRO_INCLUDE_DIRS})
|
||||
include_directories(SYSTEM ${GETTEXT_INCLUDE_DIR})
|
||||
include_directories(SYSTEM ${LIBDBUS_INCLUDE_DIRS})
|
||||
include_directories(SYSTEM ${VORBISFILE_INCLUDE_DIR})
|
||||
if(NOT MSVC)
|
||||
include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
|
||||
include_directories(SYSTEM ${SDL2IMAGE_INCLUDE_DIRS})
|
||||
|
@ -54,7 +53,7 @@ set(game-external-libs
|
|||
${common-external-libs}
|
||||
${PANGOCAIRO_LIBRARIES}
|
||||
${LIBDBUS_LIBRARIES}
|
||||
${VORBISFILE_LIBRARIES}
|
||||
VorbisFile::VorbisFile
|
||||
)
|
||||
|
||||
if(NOT MSVC)
|
||||
|
|
Loading…
Add table
Reference in a new issue