96 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
|   | #[=======================================================================[.rst:
 | ||
|  | Findmpg123
 | ||
|  | -------
 | ||
|  | 
 | ||
|  | Finds the mpg123 library.
 | ||
|  | 
 | ||
|  | Imported Targets
 | ||
|  | ^^^^^^^^^^^^^^^^
 | ||
|  | 
 | ||
|  | This module provides the following imported targets, if found:
 | ||
|  | 
 | ||
|  | ``MPG123::libmpg123``
 | ||
|  |   The mpg123 library
 | ||
|  | 
 | ||
|  | Result Variables
 | ||
|  | ^^^^^^^^^^^^^^^^
 | ||
|  | 
 | ||
|  | This will define the following variables:
 | ||
|  | 
 | ||
|  | ``mpg123_FOUND``
 | ||
|  |   True if the system has the mpg123 package.
 | ||
|  | ``mpg123_VERSION``
 | ||
|  | 	The version of mpg123 that was found on the system.
 | ||
|  | 
 | ||
|  | Cache Variables
 | ||
|  | ^^^^^^^^^^^^^^^
 | ||
|  | 
 | ||
|  | The following cache variables may also be set:
 | ||
|  | 
 | ||
|  | ``mpg123_INCLUDE_DIR``
 | ||
|  |   The directory containing ``mpg123.h``.
 | ||
|  | ``mpg123_LIBRARY``
 | ||
|  |   The path to the mpg123 library.
 | ||
|  | 
 | ||
|  | #]=======================================================================]
 | ||
|  | 
 | ||
|  | if (mpg123_INCLUDE_DIR)
 | ||
|  |     # Already in cache, be silent
 | ||
|  |     set(mpg123_FIND_QUIETLY TRUE)
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | find_package (PkgConfig QUIET)
 | ||
|  | pkg_check_modules(PC_MPG123 QUIET libmpg123>=1.25.10)
 | ||
|  | 
 | ||
|  | find_path (mpg123_INCLUDE_DIR mpg123.h | ||
|  | 	HINTS
 | ||
|  | 		${PC_MPG123_INCLUDEDIR}
 | ||
|  | 		${PC_MPG123_INCLUDE_DIRS}
 | ||
|  | 		${mpg123_ROOT}
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | # MSVC built mpg123 may be named mpg123_static.
 | ||
|  | # The provided project files name the library with the lib prefix.
 | ||
|  | 
 | ||
|  | find_library (mpg123_LIBRARY | ||
|  | 	NAMES
 | ||
|  | 		mpg123
 | ||
|  | 		mpg123_static
 | ||
|  | 		libmpg123
 | ||
|  | 		libmpg123_static
 | ||
|  | 	HINTS
 | ||
|  | 		${PC_MPG123_LIBDIR}
 | ||
|  | 		${PC_MPG123_LIBRARY_DIRS}
 | ||
|  | 		${mpg123_ROOT}
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | if (PC_MPG123_FOUND)
 | ||
|  | 	set (mpg123_VERSION ${PC_MPG123_VERSION})
 | ||
|  | elseif (mpg123_INCLUDE_DIR)
 | ||
|  | 	file (READ "${mpg123_INCLUDE_DIR}/mpg123.h" _mpg123_h)
 | ||
|  | 	string (REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" _mpg123_version_re "${_mpg123_h}")
 | ||
|  | 	set (mpg123_VERSION "${_mpg123_version_re}")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | # Handle the QUIETLY and REQUIRED arguments and set mpg123_FOUND
 | ||
|  | # to TRUE if all listed variables are TRUE.
 | ||
|  | include(FindPackageHandleStandardArgs)
 | ||
|  | find_package_handle_standard_args (mpg123 | ||
|  | 	REQUIRED_VARS
 | ||
|  | 		mpg123_LIBRARY
 | ||
|  | 		mpg123_INCLUDE_DIR
 | ||
|  | 	VERSION_VAR
 | ||
|  | 		mpg123_VERSION
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | if (mpg123_FOUND AND NOT TARGET MPG123::libmpg123)
 | ||
|  | 	add_library (MPG123::libmpg123 UNKNOWN IMPORTED)
 | ||
|  | 	set_target_properties (MPG123::libmpg123 | ||
|  | 		PROPERTIES 
 | ||
|  | 			IMPORTED_LOCATION "${mpg123_LIBRARY}"
 | ||
|  | 			INTERFACE_INCLUDE_DIRECTORIES "${mpg123_INCLUDE_DIR}"
 | ||
|  | 		)
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | mark_as_advanced(mpg123_INCLUDE_DIR mpg123_LIBRARY)
 |