# - Find FLAC # Find the native FLAC includes and libraries # # FLAC_INCLUDE_DIRS - where to find FLAC headers. # FLAC_LIBRARIES - List of libraries when using libFLAC. # FLAC_FOUND - True if libFLAC found. # FLAC_DEFINITIONS - FLAC compile definitons if (FLAC_INCLUDE_DIR) # Already in cache, be silent set (FLAC_FIND_QUIETLY TRUE) endif () find_package (Ogg QUIET) find_package (PkgConfig QUIET) pkg_check_modules(PC_FLAC QUIET flac) set(FLAC_VERSION ${PC_FLAC_VERSION}) find_path (FLAC_INCLUDE_DIR FLAC/stream_decoder.h HINTS ${PC_FLAC_INCLUDEDIR} ${PC_FLAC_INCLUDE_DIRS} ${FLAC_ROOT} ) # MSVC built libraries can name them *_static, which is good as it # distinguishes import libraries from static libraries with the same extension. find_library (FLAC_LIBRARY NAMES FLAC libFLAC libFLAC_dynamic libFLAC_static HINTS ${PC_FLAC_LIBDIR} ${PC_FLAC_LIBRARY_DIRS} ${FLAC_ROOT} ) # Handle the QUIETLY and REQUIRED arguments and set FLAC_FOUND to TRUE if # all listed variables are TRUE. include (FindPackageHandleStandardArgs) find_package_handle_standard_args (FLAC REQUIRED_VARS FLAC_LIBRARY FLAC_INCLUDE_DIR Ogg_FOUND VERSION_VAR FLAC_VERSION ) if (FLAC_FOUND) set (FLAC_INCLUDE_DIRS ${FLAC_INCLUDE_DIR}) set (FLAC_LIBRARIES ${FLAC_LIBRARY} ${OGG_LIBRARIES}) if (NOT TARGET FLAC::FLAC) add_library(FLAC::FLAC UNKNOWN IMPORTED) set_target_properties(FLAC::FLAC PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${FLAC_INCLUDE_DIR}" IMPORTED_LOCATION "${FLAC_LIBRARY}" INTERFACE_LINK_LIBRARIES Ogg::ogg ) endif () endif () mark_as_advanced(FLAC_INCLUDE_DIR FLAC_LIBRARY)