Warning, /education/minuet/cmake/FindFluidSynth.cmake is written in an unsupported language. File is not indexed.

0001 #.rst:
0002 # FindFluidSynth
0003 # ---------
0004 #
0005 # Try to find the FluidSynth library.
0006 #
0007 # This will define the following variables:
0008 #
0009 # ``FluidSynth_FOUND``
0010 #     System has FluidSynth.
0011 #
0012 # ``FluidSynth_VERSION``
0013 #     The version of FluidSynth.
0014 #
0015 # ``FluidSynth_INCLUDE_DIRS``
0016 #     This should be passed to target_include_directories() if
0017 #     the target is not used for linking.
0018 #
0019 # ``FluidSynth_LIBRARIES``
0020 #     The FluidSynth library.
0021 #     This can be passed to target_link_libraries() instead of
0022 #     the ``FluidSynth::FluidSynth`` target
0023 #
0024 # If ``FluidSynth_FOUND`` is TRUE, the following imported target
0025 # will be available:
0026 #
0027 # ``FluidSynth::FluidSynth``
0028 #     The FluidSynth library
0029 #
0030 #=============================================================================
0031 # Copyright 2018 Christophe Giboudeaux <christophe@krop.fr>
0032 #
0033 #
0034 # Redistribution and use in source and binary forms, with or without
0035 # modification, are permitted provided that the following conditions
0036 # are met:
0037 #
0038 # 1. Redistributions of source code must retain the copyright
0039 #    notice, this list of conditions and the following disclaimer.
0040 # 2. Redistributions in binary form must reproduce the copyright
0041 #    notice, this list of conditions and the following disclaimer in the
0042 #    documentation and/or other materials provided with the distribution.
0043 # 3. The name of the author may not be used to endorse or promote products
0044 #    derived from this software without specific prior written permission.
0045 #
0046 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
0047 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
0048 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
0049 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
0050 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
0051 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
0052 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
0053 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0054 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
0055 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0056 #=============================================================================
0057 
0058 if(NOT ${FluidSynth_FIND_VERSION})
0059   set(FluidSynth_FIND_VERSION "1.1.6")
0060 endif()
0061 
0062 find_package(PkgConfig QUIET)
0063 pkg_check_modules(PC_FluidSynth QUIET fluidsynth>=${FluidSynth_FIND_VERSION})
0064 
0065 # The Windows library may be called fluidsynth_debug
0066 find_library(FluidSynth_LIBRARIES
0067   NAMES fluidsynth fluidsynth_debug
0068   HINTS ${PC_FluidSynth_LIBDIR}
0069 )
0070 
0071 find_path(FluidSynth_INCLUDE_DIRS
0072   NAMES fluidsynth.h
0073   HINTS ${PC_FluidSynth_INCLUDEDIR}
0074 )
0075 
0076 set(FluidSynth_VERSION "${PC_FluidSynth_VERSION}")
0077 
0078 if(NOT FluidSynth_VERSION)
0079   if(EXISTS "${FluidSynth_INCLUDE_DIRS}/fluidsynth/version.h")
0080     file(STRINGS "${FluidSynth_INCLUDE_DIRS}/fluidsynth/version.h" _FLUIDSYNTH_VERSION_H
0081          REGEX "^#define[ ]+FLUIDSYNTH_VERSION.*$")
0082     string(REGEX REPLACE "^#define[ ]+FLUIDSYNTH_VERSION[ ]+\"([0-9]+.[0-9]+.[0-9]+)\".*" "\\1" FluidSynth_VERSION "${_FLUIDSYNTH_VERSION_H}")
0083     unset(_FLUIDSYNTH_VERSION_H)
0084   endif()
0085 endif()
0086 
0087 include(FindPackageHandleStandardArgs)
0088 find_package_handle_standard_args(FluidSynth
0089   FOUND_VAR FluidSynth_FOUND
0090   REQUIRED_VARS FluidSynth_LIBRARIES FluidSynth_INCLUDE_DIRS
0091   VERSION_VAR FluidSynth_VERSION
0092 )
0093 
0094 if(FluidSynth_FOUND AND NOT TARGET FluidSynth::FluidSynth)
0095   add_library(FluidSynth::FluidSynth UNKNOWN IMPORTED)
0096   set_target_properties(FluidSynth::FluidSynth PROPERTIES
0097     IMPORTED_LOCATION "${FluidSynth_LIBRARIES}"
0098     INTERFACE_INCLUDE_DIRECTORIES "${FluidSynth_INCLUDE_DIRS}"
0099   )
0100 endif()
0101 
0102 include(FeatureSummary)
0103 set_package_properties(FluidSynth PROPERTIES
0104   URL "http://www.fluidsynth.org/"
0105   DESCRIPTION "A SoundFont Synthesizer"
0106 )