#[=======================================================================[.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)