Mikemon/libs/SDL3_mixer/cmake/FindFluidSynth.cmake
2026-04-02 16:52:07 +02:00

56 lines
2.1 KiB
CMake

include(FindPackageHandleStandardArgs)
find_package(PkgConfig QUIET)
pkg_check_modules(PC_FLUIDSYNTH QUIET fluidsynth)
find_library(FluidSynth_LIBRARY
NAMES fluidsynth fluidsynth-3 libfluidsynth
HINTS ${PC_FLUIDSYNTH_LIBDIR}
)
find_path(FluidSynth_INCLUDE_PATH
NAMES fluidsynth.h
HINTS ${PC_FLUIDSYNTH_INCLUDEDIR}
)
if(PC_FLUIDSYNTH_FOUND)
get_flags_from_pkg_config("${FluidSynth_LIBRARY}" "PC_FLUIDSYNTH" "_fluidsynth")
endif()
set(FluidSynth_COMPILE_OPTIONS "${_fluidsynth_compile_options}" CACHE STRING "Extra compile options of FluidSynth")
set(FluidSynth_LINK_LIBRARIES "${_fluidsynth_link_libraries}" CACHE STRING "Extra link libraries of FluidSynth")
set(FluidSynth_LINK_OPTIONS "${_fluidsynth_link_options}" CACHE STRING "Extra link flags of FluidSynth")
set(FluidSynth_LINK_DIRECTORIES "${_fluidsynth_link_directories}" CACHE PATH "Extra link directories of FluidSynth")
set(FLUIDSYNTH_VERSION "FLUIDSYNTH_VERSION-NOTFOUND")
if(EXISTS "${FluidSynth_INCLUDE_PATH}/fluidsynth/version.h")
file(READ "${FluidSynth_INCLUDE_PATH}/fluidsynth/version.h" _fluidsynth_version_h)
set(_fluidsynth_version_regex "#define[ \t]+FLUIDSYNTH_VERSION[ \t]+\"([1-9]+\\.[0-9]+\\.[0-9]+)\"")
string(REGEX MATCH "${_fluidsynth_version_regex}" _re_fluidsynth_version "${_fluidsynth_version_h}")
if(_re_fluidsynth_version)
set(FLUIDSYNTH_VERSION "${CMAKE_MATCH_1}")
endif()
endif()
find_package_handle_standard_args(FluidSynth
REQUIRED_VARS FluidSynth_LIBRARY FluidSynth_INCLUDE_PATH
VERSION_VAR FLUIDSYNTH_VERSION
)
if(FluidSynth_FOUND)
if(NOT TARGET FluidSynth::libfluidsynth)
add_library(FluidSynth::libfluidsynth UNKNOWN IMPORTED)
set_target_properties(FluidSynth::libfluidsynth PROPERTIES
IMPORTED_LOCATION "${FluidSynth_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${FluidSynth_INCLUDE_PATH}"
INTERFACE_COMPILE_OPTIONS "${FluidSynth_COMPILE_OPTIONS}"
INTERFACE_LINK_LIBRARIES "${FluidSynth_LINK_LIBRARIES}"
INTERFACE_LINK_OPTIONS "${FluidSynth_LINK_OPTIONS}"
INTERFACE_LINK_DIRECTORIES "${FluidSynth_LINK_DIRECTORIES}"
)
endif()
endif()