mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			205 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| #[=======================================================================[.rst:
 | |
| FindVorbis
 | |
| ----------
 | |
| 
 | |
| Finds the native vorbis, vorbisenc amd vorbisfile includes and libraries.
 | |
| 
 | |
| Imported Targets
 | |
| ^^^^^^^^^^^^^^^^
 | |
| 
 | |
| This module provides the following imported targets, if found:
 | |
| 
 | |
| ``Vorbis::vorbis``
 | |
|   The Vorbis library
 | |
| ``Vorbis::vorbisenc``
 | |
|   The VorbisEnc library
 | |
| ``Vorbis::vorbisfile``
 | |
|   The VorbisFile library
 | |
| 
 | |
| Result Variables
 | |
| ^^^^^^^^^^^^^^^^
 | |
| 
 | |
| This will define the following variables:
 | |
| 
 | |
| ``Vorbis_Vorbis_INCLUDE_DIRS``
 | |
|   List of include directories when using vorbis.
 | |
| ``Vorbis_Enc_INCLUDE_DIRS``
 | |
|   List of include directories when using vorbisenc.
 | |
| ``Vorbis_File_INCLUDE_DIRS``
 | |
|   List of include directories when using vorbisfile.
 | |
| ``Vorbis_Vorbis_LIBRARIES``
 | |
|   List of libraries when using vorbis.
 | |
| ``Vorbis_Enc_LIBRARIES``
 | |
|   List of libraries when using vorbisenc.
 | |
| ``Vorbis_File_LIBRARIES``
 | |
|   List of libraries when using vorbisfile.
 | |
| ``Vorbis_FOUND``
 | |
|   True if vorbis and requested components found.
 | |
| ``Vorbis_Vorbis_FOUND``
 | |
|   True if vorbis found.
 | |
| ``Vorbis_Enc_FOUND``
 | |
|   True if vorbisenc found.
 | |
| ``Vorbis_Enc_FOUND``
 | |
|   True if vorbisfile found.
 | |
| 
 | |
| Cache variables
 | |
| ^^^^^^^^^^^^^^^
 | |
| 
 | |
| The following cache variables may also be set:
 | |
| 
 | |
| ``Vorbis_Vorbis_INCLUDE_DIR``
 | |
|   The directory containing ``vorbis/vorbis.h``.
 | |
| ``Vorbis_Enc_INCLUDE_DIR``
 | |
|   The directory containing ``vorbis/vorbisenc.h``.
 | |
| ``Vorbis_File_INCLUDE_DIR``
 | |
|   The directory containing ``vorbis/vorbisenc.h``.
 | |
| ``Vorbis_Vorbis_LIBRARY``
 | |
|   The path to the vorbis library.
 | |
| ``Vorbis_Enc_LIBRARY``
 | |
|   The path to the vorbisenc library.
 | |
| ``Vorbis_File_LIBRARY``
 | |
|   The path to the vorbisfile library.
 | |
| 
 | |
| Hints
 | |
| ^^^^^
 | |
| 
 | |
| A user may set ``Vorbis_ROOT`` to a vorbis installation root to tell this module where to look.
 | |
| 
 | |
| #]=======================================================================]
 | |
| 
 | |
| if(Vorbis_Vorbis_INCLUDE_DIR)
 | |
|   # Already in cache, be silent
 | |
|   set(Vorbis_FIND_QUIETLY TRUE)
 | |
| endif()
 | |
| 
 | |
| set(Vorbis_Vorbis_FIND_QUIETLY TRUE)
 | |
| set(Vorbis_Enc_FIND_QUIETLY TRUE)
 | |
| set(Vorbis_File_FIND_QUIETLY TRUE)
 | |
| 
 | |
| find_package(Ogg QUIET)
 | |
| 
 | |
| find_package(PkgConfig QUIET)
 | |
| pkg_check_modules(PC_Vorbis_Vorbis QUIET vorbis)
 | |
| pkg_check_modules(PC_Vorbis_Enc QUIET vorbisenc)
 | |
| pkg_check_modules(PC_Vorbis_File QUIET vorbisfile)
 | |
| 
 | |
| set(Vorbis_VERSION ${PC_Vorbis_Vorbis_VERSION})
 | |
| 
 | |
| find_path(Vorbis_Vorbis_INCLUDE_DIR vorbis/codec.h
 | |
|   HINTS
 | |
|     ${PC_Vorbis_Vorbis_INCLUDEDIR}
 | |
|     ${PC_Vorbis_Vorbis_INCLUDE_DIRS}
 | |
|     ${Vorbis_ROOT})
 | |
| 
 | |
| find_path(Vorbis_Enc_INCLUDE_DIR vorbis/vorbisenc.h
 | |
|   HINTS
 | |
|     ${PC_Vorbis_Enc_INCLUDEDIR}
 | |
|     ${PC_Vorbis_Enc_INCLUDE_DIRS}
 | |
|     ${Vorbis_ROOT})
 | |
| 
 | |
| find_path(Vorbis_File_INCLUDE_DIR vorbis/vorbisfile.h
 | |
|   HINTS
 | |
|     ${PC_Vorbis_File_INCLUDEDIR}
 | |
|     ${PC_Vorbis_File_INCLUDE_DIRS}
 | |
|     ${Vorbis_ROOT})
 | |
| 
 | |
| find_library(Vorbis_Vorbis_LIBRARY
 | |
|   NAMES
 | |
|     vorbis
 | |
|     vorbis_static
 | |
|     libvorbis
 | |
|     libvorbis_static
 | |
|   HINTS
 | |
|     ${PC_Vorbis_Vorbis_LIBDIR}
 | |
|     ${PC_Vorbis_Vorbis_LIBRARY_DIRS}
 | |
|     ${Vorbis_ROOT})
 | |
| 
 | |
| find_library(Vorbis_Enc_LIBRARY
 | |
|   NAMES
 | |
|     vorbisenc
 | |
|     vorbisenc_static
 | |
|     libvorbisenc
 | |
|     libvorbisenc_static
 | |
|   HINTS
 | |
|     ${PC_Vorbis_Enc_LIBDIR}
 | |
|     ${PC_Vorbis_Enc_LIBRARY_DIRS}
 | |
|     ${Vorbis_ROOT})
 | |
| 
 | |
| find_library(Vorbis_File_LIBRARY
 | |
|   NAMES
 | |
|     vorbisfile
 | |
|     vorbisfile_static
 | |
|     libvorbisfile
 | |
|     libvorbisfile_static
 | |
|   HINTS
 | |
|     ${PC_Vorbis_File_LIBDIR}
 | |
|     ${PC_Vorbis_File_LIBRARY_DIRS}
 | |
|     ${Vorbis_ROOT})
 | |
| 
 | |
| include(FindPackageHandleStandardArgs)
 | |
| 
 | |
| if(Vorbis_Vorbis_LIBRARY AND Vorbis_Vorbis_INCLUDE_DIR AND Ogg_FOUND)
 | |
|   set(Vorbis_Vorbis_FOUND TRUE)
 | |
| endif()
 | |
| 
 | |
| if(Vorbis_Enc_LIBRARY AND Vorbis_Enc_INCLUDE_DIR AND Vorbis_Vorbis_FOUND)
 | |
|   set(Vorbis_Enc_FOUND TRUE)
 | |
| endif()
 | |
| 
 | |
| if(Vorbis_Vorbis_FOUND AND Vorbis_File_LIBRARY AND Vorbis_File_INCLUDE_DIR)
 | |
|   set(Vorbis_File_FOUND TRUE)
 | |
| endif()
 | |
| 
 | |
| find_package_handle_standard_args(Vorbis
 | |
|   REQUIRED_VARS
 | |
|     Vorbis_Vorbis_LIBRARY
 | |
|     Vorbis_Vorbis_INCLUDE_DIR
 | |
|     Ogg_FOUND
 | |
|   HANDLE_COMPONENTS
 | |
|   VERSION_VAR Vorbis_VERSION)
 | |
| 
 | |
| 
 | |
| if(Vorbis_Vorbis_FOUND)
 | |
|   set(Vorbis_Vorbis_INCLUDE_DIRS ${Vorbis_Vorbis_INCLUDE_DIR} ${Ogg_INCLUDE_DIRS})
 | |
|   set(Vorbis_Vorbis_LIBRARIES ${Vorbis_Vorbis_LIBRARY} ${Ogg_LIBRARIES})
 | |
|   if(NOT TARGET Vorbis::vorbis)
 | |
|     add_library(Vorbis::vorbis UNKNOWN IMPORTED)
 | |
|     set_target_properties(Vorbis::vorbis PROPERTIES
 | |
|       INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Vorbis_INCLUDE_DIR}"
 | |
|       IMPORTED_LOCATION "${Vorbis_Vorbis_LIBRARY}"
 | |
|       INTERFACE_LINK_LIBRARIES Ogg::ogg
 | |
|     )
 | |
|   endif()
 | |
| 
 | |
|   if(Vorbis_Enc_FOUND)
 | |
|     set(Vorbis_Enc_INCLUDE_DIRS ${Vorbis_Enc_INCLUDE_DIR} ${Ogg_INCLUDE_DIRS})
 | |
|     set(Vorbis_Enc_LIBRARIES ${Vorbis_Enc_LIBRARY} ${Vorbis_Vorbis_LIBRARIES})
 | |
|     if(NOT TARGET Vorbis::vorbisenc)
 | |
|       add_library(Vorbis::vorbisenc UNKNOWN IMPORTED)
 | |
|       set_target_properties(Vorbis::vorbisenc PROPERTIES
 | |
|         INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Enc_INCLUDE_DIR}"
 | |
|         IMPORTED_LOCATION "${Vorbis_Enc_LIBRARY}"
 | |
|         INTERFACE_LINK_LIBRARIES Vorbis::vorbis
 | |
|       )
 | |
|     endif()
 | |
|   endif()
 | |
| 
 | |
|   if(Vorbis_File_FOUND)
 | |
|     set(Vorbis_File_INCLUDE_DIRS ${Vorbis_File_INCLUDE_DIR} ${Ogg_INCLUDE_DIRS})
 | |
|     set(Vorbis_File_LIBRARIES ${Vorbis_File_LIBRARY} ${Vorbis_Vorbis_LIBRARIES})
 | |
|     if(NOT TARGET Vorbis::vorbisfile)
 | |
|       add_library(Vorbis::vorbisfile UNKNOWN IMPORTED)
 | |
|       set_target_properties(Vorbis::vorbisfile PROPERTIES
 | |
|         INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_File_INCLUDE_DIR}"
 | |
|         IMPORTED_LOCATION "${Vorbis_File_LIBRARY}"
 | |
|         INTERFACE_LINK_LIBRARIES Vorbis::vorbis
 | |
|       )
 | |
|     endif()
 | |
|   endif()
 | |
| 
 | |
| endif()
 | |
| 
 | |
| mark_as_advanced(Vorbis_Vorbis_INCLUDE_DIR Vorbis_Vorbis_LIBRARY)
 | |
| mark_as_advanced(Vorbis_Enc_INCLUDE_DIR Vorbis_Enc_LIBRARY)
 | |
| mark_as_advanced(Vorbis_File_INCLUDE_DIR Vorbis_File_LIBRARY)
 | 
