diff --git a/CMakeLists.txt b/CMakeLists.txt index f031d813..75883321 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -856,6 +856,29 @@ configure_file ( fluidsynth.pc.in install ( FILES ${CMAKE_BINARY_DIR}/fluidsynth.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ) +# Exported targets for cmake: find_package(FluidSynth) +# when installed, use CMAKE_PREFIX_PATH=fluidsynth-prefix;... +# to use the build directory directly set the FluidSynth_DIR variable instead. + +# targets in the build directory +export(EXPORT FluidSynthTargets + FILE "${CMAKE_CURRENT_BINARY_DIR}/FluidSynthTargets.cmake" + NAMESPACE FluidSynth:: +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + FluidSynthConfigVersion.cmake + VERSION ${LIB_VERSION_INFO} + COMPATIBILITY SameMajorVersion +) + +configure_file(FluidSynthConfig.cmake.in FluidSynthConfig.cmake @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/FluidSynthConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/FluidSynthConfigVersion.cmake" + DESTINATION ${LIB_INSTALL_DIR}/cmake/fluidsynth +) + # Extra targets for Unix build environments if ( UNIX ) if ( DEFINED FLUID_DAEMON_ENV_FILE) diff --git a/FluidSynthConfig.cmake.in b/FluidSynthConfig.cmake.in new file mode 100644 index 00000000..9f85511a --- /dev/null +++ b/FluidSynthConfig.cmake.in @@ -0,0 +1,11 @@ +# for the find_dependency() macro: +# include(CMakeFindDependencyMacro) +# it has the same syntax as find_package: +# find_dependency(MYDEP REQUIRED) + +# define variables for configuration options: +# set(network-enabled @enable-network@) + +# finally, include the targets/version files +include("${CMAKE_CURRENT_LIST_DIR}/FluidSynthTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/FluidSynthConfigVersion.cmake") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e913cb21..5cc98fbf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -399,12 +399,14 @@ target_link_libraries ( fluidsynth if ( MACOSX_FRAMEWORK ) install ( TARGETS fluidsynth libfluidsynth + EXPORT FluidSynthTargets RUNTIME DESTINATION ${BIN_INSTALL_DIR} FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR} ARCHIVE DESTINATION ${FRAMEWORK_INSTALL_DIR} ) else ( MACOSX_FRAMEWORK ) install ( TARGETS fluidsynth libfluidsynth + EXPORT FluidSynthTargets RUNTIME DESTINATION ${BIN_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} @@ -413,6 +415,22 @@ else ( MACOSX_FRAMEWORK ) install ( FILES ${public_main_HEADER} DESTINATION ${INCLUDE_INSTALL_DIR} ) endif ( MACOSX_FRAMEWORK ) +# Exported targets. + +# build_interface: for the libfluidsynth target when imported from the build directory. +# install_interface: for the target when imported from the installed directory. +target_include_directories(libfluidsynth PUBLIC + "$" + "$" +) + +# installation of the exported targets +install(EXPORT FluidSynthTargets + FILE FluidSynthTargets.cmake + NAMESPACE FluidSynth:: + DESTINATION ${LIB_INSTALL_DIR}/cmake/fluidsynth +) + # ******* Auto Generated Lookup Tables ****** include(ExternalProject)