Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 90614 | Differences between
and this patch

Collapse All | Expand All

(-)portmidi/CMakeLists.txt.old (-1 / +9 lines)
Lines 65-70 Link Here
65
  endif(CMAKE_LIBRARY_OUTPUT_DIRECTORY MATCHES ${BAD_DIR})
65
  endif(CMAKE_LIBRARY_OUTPUT_DIRECTORY MATCHES ${BAD_DIR})
66
endif(UNIX)
66
endif(UNIX)
67
67
68
option(PORTMIDI_ENABLE_JAVA "Enable Java bindings support" ON)
69
set(LIB_INSTALL_DIR lib
70
    CACHE STRING "Define directory name for library install")
71
68
include_directories(pm_common porttime)
72
include_directories(pm_common porttime)
69
add_subdirectory(pm_common)
73
add_subdirectory(pm_common)
70
74
Lines 73-77 Link Here
73
add_subdirectory(pm_dylib)
77
add_subdirectory(pm_dylib)
74
78
75
# Cannot figure out how to make an xcode Java application with CMake
79
# Cannot figure out how to make an xcode Java application with CMake
76
add_subdirectory(pm_java)
80
if(PORTMIDI_ENABLE_JAVA)
81
  set(JAR_INSTALL_DIR share/java
82
      CACHE STRING "Define directory name for jar installation")
83
  add_subdirectory(pm_java)
84
endif(PORTMIDI_ENABLE_JAVA)
77
85
(-)portmidi/pm_common/CMakeLists.txt.old (-25 / +41 lines)
Lines 62-80 Link Here
62
                             ${COREMIDI_LIB} ${CORESERVICES_LIB}
62
                             ${COREMIDI_LIB} ${CORESERVICES_LIB}
63
        CACHE INTERNAL "")
63
        CACHE INTERNAL "")
64
64
65
    set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
65
    if(PORTMIDI_ENABLE_JAVA)
66
    set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
66
      set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
67
      set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
68
    endif(PORTMIDI_ENABLE_JAVA)
67
    message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
69
    message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
68
  else(APPLE)
70
  else(APPLE)
69
    # LINUX settings...
71
    # LINUX settings...
70
    include(FindJNI)
72
    if(PORTMIDI_ENABLE_JAVA)
71
    message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
73
      include(FindJNI)
72
    message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
74
      message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
73
    message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
75
      message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
74
    message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
76
      message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
75
    set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
77
      message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
76
    # libjvm.so is found relative to JAVA_INCLUDE_PATH:
78
      set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
77
    set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
79
      # libjvm.so is found relative to JAVA_INCLUDE_PATH:
80
      set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
81
    endif(PORTMIDI_ENABLE_JAVA)
78
82
79
    set(LINUXSRC pmlinuxalsa pmlinux finddefault)
83
    set(LINUXSRC pmlinuxalsa pmlinux finddefault)
80
    prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
84
    prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
Lines 88-97 Link Here
88
    # /MD is multithread DLL, /MT is multithread. Change to static:
92
    # /MD is multithread DLL, /MT is multithread. Change to static:
89
    include(../pm_win/static.cmake)
93
    include(../pm_win/static.cmake)
90
    
94
    
91
    include(FindJNI)
95
    if(PORTMIDI_ENABLE_JAVA)
96
      include(FindJNI)
92
97
93
    set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
98
      set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
94
    # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
99
      # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
100
    endif(PORTMIDI_ENABLE_JAVA)
95
101
96
    set(WINSRC pmwin pmwinmm)
102
    set(WINSRC pmwin pmwinmm)
97
    prepend_path(LIBSRC ../pm_win/ ${WINSRC})
103
    prepend_path(LIBSRC ../pm_win/ ${WINSRC})
Lines 99-127 Link Here
99
    set(PM_NEEDED_LIBS winmm.lib)
105
    set(PM_NEEDED_LIBS winmm.lib)
100
  endif(WIN32)
106
  endif(WIN32)
101
endif(UNIX)
107
endif(UNIX)
102
set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
108
109
if(PORTMIDI_ENABLE_JAVA)
110
  set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
111
endif(PORTMIDI_ENABLE_JAVA)
103
112
104
# this completes the list of library sources by adding shared code
113
# this completes the list of library sources by adding shared code
105
list(APPEND LIBSRC pmutil portmidi)
114
list(APPEND LIBSRC pmutil portmidi)
106
115
107
# now add the shared files to make the complete list of library sources
116
# now add the shared files to make the complete list of library sources
108
add_library(portmidi-static ${LIBSRC})
117
add_library(portmidi-static ${LIBSRC})
109
set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
118
set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi")
110
target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
119
target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
111
120
112
# define the jni library
121
if(PORTMIDI_ENABLE_JAVA)
113
include_directories(${JAVA_INCLUDE_PATHS})
122
  # define the jni library
114
123
  include_directories(${JAVA_INCLUDE_PATHS})
115
set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
124
116
add_library(pmjni SHARED ${JNISRC})
125
  set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
117
target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
126
  add_library(pmjni SHARED ${JNISRC})
118
set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
127
  target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
128
  set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
129
endif(PORTMIDI_ENABLE_JAVA)
119
130
120
# install the libraries (Linux and Mac OS X command line)
131
# install the libraries (Linux and Mac OS X command line)
121
if(UNIX)
132
if(UNIX)
122
  INSTALL(TARGETS portmidi-static pmjni
133
  INSTALL(TARGETS portmidi-static
123
    LIBRARY DESTINATION /usr/local/lib
134
    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
124
    ARCHIVE DESTINATION /usr/local/lib)
135
    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
136
  if(PORTMIDI_ENABLE_JAVA)
137
    INSTALL(TARGETS pmjni
138
      LIBRARY DESTINATION ${LIB_INSTALL_DIR}
139
      ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
140
  endif(PORTMIDI_ENABLE_JAVA)
125
# .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
141
# .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
126
#  INSTALL(FILES portmidi.h ../porttime/porttime.h
142
#  INSTALL(FILES portmidi.h ../porttime/porttime.h
127
#    DESTINATION /usr/local/include)
143
#    DESTINATION /usr/local/include)
(-)portmidi.old/pm_dylib/CMakeLists.txt (-15 / +18 lines)
Lines 63-69 Link Here
63
    message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
63
    message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
64
  else(APPLE)
64
  else(APPLE)
65
    # LINUX settings...
65
    # LINUX settings...
66
    include(FindJNI)
66
    if(PORTMIDI_ENABLE_JAVA)
67
      include(FindJNI)
67
    # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
68
    # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
68
    # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
69
    # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
69
    # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
70
    # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
Lines 75-85 Link Here
75
    # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
76
    # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
76
    # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
77
    # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
77
    # because JAVA_INCLUDE_PATH2 is pretty obscure)
78
    # because JAVA_INCLUDE_PATH2 is pretty obscure)
78
    set(JAVA_INCLUDE_PATH  ${JAVA_INCLUDE_PATH-UNKNOWN}
79
      set(JAVAVM_LIB ${JAVA_JVM_LIBRARY})
79
        CACHE STRING "where to find Java SDK include directory")
80
    endif(PORTMIDI_ENABLE_JAVA)
80
    set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
81
    # libjvm.so is found relative to JAVA_INCLUDE_PATH:
82
    set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
83
81
84
    set(LINUXSRC pmlinuxalsa pmlinux finddefault)
82
    set(LINUXSRC pmlinuxalsa pmlinux finddefault)
85
    prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
83
    prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
Lines 91-103 Link Here
91
  if(WIN32)
89
  if(WIN32)
92
    # /MDd is multithread debug DLL, /MTd is multithread debug
90
    # /MDd is multithread debug DLL, /MTd is multithread debug
93
    # /MD is multithread DLL, /MT is multithread 
91
    # /MD is multithread DLL, /MT is multithread 
94
    
95
    include(FindJNI)
96
    # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
97
    set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib)
98
92
99
    set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
93
    if(PORTMIDI_ENABLE_JAVA)
100
    # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
94
      include(FindJNI)
95
      # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
96
      set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib)
97
98
      set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
99
      # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
100
    endif(PORTMIDI_ENABLE_JAVA)
101
101
102
    set(WINSRC pmwin pmwinmm)
102
    set(WINSRC pmwin pmwinmm)
103
    prepend_path(LIBSRC ../pm_win/ ${WINSRC})
103
    prepend_path(LIBSRC ../pm_win/ ${WINSRC})
Lines 106-112 Link Here
106
    # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
106
    # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
107
  endif(WIN32)
107
  endif(WIN32)
108
endif(UNIX)
108
endif(UNIX)
109
110
if(PORTMIDI_ENABLE_JAVA)
109
set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB})
111
set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB})
112
endif(PORTMIDI_ENABLE_JAVA)
110
113
111
# this completes the list of library sources by adding shared code
114
# this completes the list of library sources by adding shared code
112
set(SHARED_FILES pmutil portmidi)
115
set(SHARED_FILES pmutil portmidi)
Lines 120-127 Link Here
120
# install the libraries (Linux and Mac OS X command line)
123
# install the libraries (Linux and Mac OS X command line)
121
if(UNIX)
124
if(UNIX)
122
  INSTALL(TARGETS portmidi-dynamic
125
  INSTALL(TARGETS portmidi-dynamic
123
    LIBRARY DESTINATION /usr/local/lib
126
    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
124
    ARCHIVE DESTINATION /usr/local/lib)
127
    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
125
  INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
128
  INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
126
    DESTINATION /usr/local/include)
129
    DESTINATION include)
127
endif(UNIX)
130
endif(UNIX)
(-)portmidi/pm_java/CMakeLists.txt.old (-2 / +2 lines)
Lines 39-47 Link Here
39
39
40
    # install the libraries (Linux only)
40
    # install the libraries (Linux only)
41
    INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
41
    INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
42
      DESTINATION /usr/share/java)
42
      DESTINATION ${JAR_INSTALL_DIR})
43
    INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults
43
    INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults
44
      DESTINATION /usr/local/bin)
44
      DESTINATION bin)
45
  endif(APPLE)
45
  endif(APPLE)
46
endif(UNIX)
46
endif(UNIX)
47
# In windows, use pm_java/make.bat
47
# In windows, use pm_java/make.bat

Return to bug 90614