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