diff -rupN portmidi.old/CMakeLists.txt portmidi/CMakeLists.txt
--- portmidi.old/CMakeLists.txt 2009-10-19 15:36:57.000000000 -0400
+++ portmidi/CMakeLists.txt 2009-11-27 20:20:22.000000000 -0500
@@ -8,6 +8,7 @@ if(UNIX)
# allow user to set Release or Debug
set(CMAKE_BUILD_TYPE Release CACHE STRING
"Semicolon-separate list of supported configuration types")
+ set(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
# set default directories but don't override cached values...
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
CACHE STRING "libraries go here")
diff -rupN portmidi.old/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt
--- portmidi.old/pm_common/CMakeLists.txt 2009-10-19 14:41:21.000000000 -0400
+++ portmidi/pm_common/CMakeLists.txt 2009-11-27 20:33:36.000000000 -0500
@@ -65,15 +65,12 @@ if(UNIX)
# JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
# and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
# because JAVA_INCLUDE_PATH2 is pretty obscure)
- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN}
- CACHE STRING "where to find Java SDK include directory")
- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
+ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY})
+
set(LINUXSRC pmlinuxalsa pmlinux finddefault)
prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
- list(APPEND LIBSRC ../porttime/ptlinux)
+ set(LIBPTSRC ../porttime/ptlinux)
set(PM_NEEDED_LIBS pthread asound)
endif(APPLE)
@@ -98,29 +95,29 @@ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${J
# this completes the list of library sources by adding shared code
list(APPEND LIBSRC pmutil portmidi)
-# now add the shared files to make the complete list of library sources
-add_library(portmidi-static ${LIBSRC})
-set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
-target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
+add_library(porttime-dynamic SHARED ${LIBPTSRC})
+set_target_properties(porttime-dynamic PROPERTIES SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "porttime")
+target_link_libraries(porttime-dynamic pthread)
add_library(portmidi-dynamic SHARED ${LIBSRC})
-set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi")
-target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS})
-
+add_dependencies(portmidi-dynamic porttime-dynamic)
+set_target_properties(portmidi-dynamic PROPERTIES LINK_FLAGS "-L../build/Release" SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "portmidi")
+target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS} porttime)
# define the jni library
include_directories(${JAVA_INCLUDE_PATHS})
set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
add_library(pmjni SHARED ${JNISRC})
-target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
+add_dependencies(pmjni porttime-dynamic)
+target_link_libraries(pmjni ${JNI_EXTRA_LIBS} porttime)
+set_target_properties(pmjni PROPERTIES LINK_FLAGS "-L../build/Release" EXECUTABLE_EXTENSION "jnilib")
# install the libraries (Linux only)
if(UNIX AND NOT APPLE)
- INSTALL(TARGETS portmidi-static portmidi-dynamic pmjni
- LIBRARY DESTINATION /usr/local/lib
- ARCHIVE DESTINATION /usr/local/lib)
+ INSTALL(TARGETS porttime-dynamic portmidi-dynamic pmjni
+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
INSTALL(FILES portmidi.h ../porttime/porttime.h
- DESTINATION /usr/local/include)
+ DESTINATION ${INCLUDE_INSTALL_DIR})
endif(UNIX AND NOT APPLE)
diff -rupN portmidi.old/pm_java/CMakeLists.txt portmidi/pm_java/CMakeLists.txt
--- portmidi.old/pm_java/CMakeLists.txt 2009-10-14 14:04:06.000000000 -0400
+++ portmidi/pm_java/CMakeLists.txt 2009-11-27 20:20:22.000000000 -0500
@@ -39,9 +39,9 @@ if(UNIX)
# install the libraries (Linux only)
INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
- DESTINATION /usr/share/java)
+ DESTINATION ${SHARE_INSTALL_PREFIX}/java)
INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults
- DESTINATION /usr/local/bin)
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
endif(APPLE)
endif(UNIX)
# In windows, use pm_java/make.bat
diff -rupN portmidi.old/pm_test/CMakeLists.txt portmidi/pm_test/CMakeLists.txt
--- portmidi.old/pm_test/CMakeLists.txt 2009-10-19 14:41:21.000000000 -0400
+++ portmidi/pm_test/CMakeLists.txt 2009-11-27 20:20:22.000000000 -0500
@@ -8,7 +8,8 @@ endif(APPLE)
macro(make_a_test name)
add_executable(${name} ${name}.c)
- target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS})
+ set_target_properties(${name} PROPERTIES LINK_FLAGS "-L${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
+ target_link_libraries(${name} portmidi-dynamic ${PM_NEEDED_LIBS})
endmacro(make_a_test)
make_a_test(test)