211 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
		
		
			
		
	
	
			211 lines
		
	
	
		
			5.4 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_INCLUDE_DIR})
 | ||
|  | 	set (Vorbis_Vorbis_LIBRARIES ${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})
 | ||
|  | 		set (Vorbis_Enc_LIBRARIES ${Vorbis_Enc_LIBRARY} ${Vorbis_Enc_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})
 | ||
|  | 		set (Vorbis_File_LIBRARIES ${Vorbis_File_LIBRARY} ${Vorbis_File_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)
 |