On UNIX-like systems pkg-config is often used to determine build configuration for library dependencies. PortAudio provides a pkg-config file, for example, so that applications linking against it do not have to know the system-specific header and library search paths for its files.
Add a pkg-config file for PortMidi and install it on UNIX-like systems. Signed-off-by: Stefan Hajnoczi <stefa...@gmail.com> --- pm_dylib/CMakeLists.txt | 17 +++++++++++++++++ portmidi.pc.in | 10 ++++++++++ 2 files changed, 27 insertions(+) create mode 100644 portmidi.pc.in diff --git a/pm_dylib/CMakeLists.txt b/pm_dylib/CMakeLists.txt index da24c16..4b0a028 100644 --- a/pm_dylib/CMakeLists.txt +++ b/pm_dylib/CMakeLists.txt @@ -56,6 +56,7 @@ if(UNIX) set(PM_NEEDED_LIBS ${COREAUDIO_LIB} ${COREFOUNDATION_LIB} ${COREMIDI_LIB} ${CORESERVICES_LIB} CACHE INTERNAL "") + set(PKGCONFIG_LIBS "-framework CoreAudio -framework CoreFoundation -framework CoreMIDI -framework CoreServices") set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework") set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers) @@ -86,6 +87,7 @@ if(UNIX) list(APPEND LIBSRC ../porttime/ptlinux) set(PM_NEEDED_LIBS pthread asound) + set(PKGCONFIG_LIBS "-lpthread -lasound") endif(APPLE) else(UNIX) if(WIN32) @@ -103,6 +105,7 @@ else(UNIX) prepend_path(LIBSRC ../pm_win/ ${WINSRC}) list(APPEND LIBSRC ../porttime/ptwinmm) set(PM_NEEDED_LIBS winmm.lib) + set(PKGCONFIG_LIBS "-lwinmm") # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB}) endif(WIN32) endif(UNIX) @@ -117,6 +120,18 @@ add_library(portmidi-dynamic SHARED ${LIBSRC}) set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi") target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS}) +# Create pkg-config file +if(UNIX) + set(prefix ${CMAKE_INSTALL_PREFIX}) + set(exec_prefix ${CMAKE_INSTALL_PREFIX}) + set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) + set(includedir ${CMAKE_INSTALL_PREFIX}/include) + set(LIBS ${PKGCONFIG_LIBS}) + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../portmidi.pc.in + ${PROJECT_BINARY_DIR}/portmidi.pc @ONLY) +endif(UNIX) + # install the libraries (Linux and Mac OS X command line) if(UNIX) INSTALL(TARGETS portmidi-dynamic @@ -125,4 +140,6 @@ if(UNIX) INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h ../pm_common/pmutil.h DESTINATION /usr/local/include) + INSTALL(FILES ../portmidi.pc + DESTINATION /usr/local/lib/pkgconfig) endif(UNIX) diff --git a/portmidi.pc.in b/portmidi.pc.in new file mode 100644 index 0000000..96eda49 --- /dev/null +++ b/portmidi.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: PortMidi +Description: Portable MIDI I/O +Version: 238 +Libs: -L${libdir} -lportmidi @LIBS@ +Cflags: -I${includedir} -- 1.8.1.4 _______________________________________________ media_api mailing list media_api@create.ucsb.edu http://lists.create.ucsb.edu/mailman/listinfo/media_api