Gentoo Archives: gentoo-commits

From: "Miroslav Šulc" <fordfrog@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/portmidi/, media-libs/portmidi/files/
Date: Fri, 30 Apr 2021 21:36:07
Message-Id: 1619818559.4e793237726619ac042e3b4fb3b417d0e634114f.fordfrog@gentoo
1 commit: 4e793237726619ac042e3b4fb3b417d0e634114f
2 Author: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
3 AuthorDate: Fri Apr 30 21:35:30 2021 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Fri Apr 30 21:35:59 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4e793237
7
8 media-libs/portmidi: bump to 234
9
10 Closes: https://bugs.gentoo.org/785826
11 Closes: https://bugs.gentoo.org/785823
12 Package-Manager: Portage-3.0.18, Repoman-3.0.3
13 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
14
15 media-libs/portmidi/Manifest | 1 +
16 media-libs/portmidi/files/portmidi-234-cmake.patch | 332 +++++++++++++++++++++
17 media-libs/portmidi/portmidi-234.ebuild | 143 +++++++++
18 3 files changed, 476 insertions(+)
19
20 diff --git a/media-libs/portmidi/Manifest b/media-libs/portmidi/Manifest
21 index 3d588ba18fd..a00ab02c54e 100644
22 --- a/media-libs/portmidi/Manifest
23 +++ b/media-libs/portmidi/Manifest
24 @@ -1 +1,2 @@
25 +DIST portmedia-code-r234.zip 1342298 BLAKE2B 3c3686b79ca0c8cbfaa6c44ae8c4f294630e1c5940576709ff1ca5854bfcfba1af7b067471656f2b39ae28cecea9b6c4403f72d5a2552355760c795eff123243 SHA512 cbc332d89bc465450b38245a83cc300dfd2e1e6de7c62284edf754ff4d8a9aa3dc49a395dcee535ed9688befb019186fa87fd6d8a3698898c2acbf3e6b7a0794
26 DIST portmidi-src-217.zip 1030830 BLAKE2B ab197c7f9a5c2b4d2740d56841459fbac97d510e4d12e5d0cd7cecc0ba6035929b6596140d42c575a9513862a66127d19253dbee1d3a7b7b84b69c88fec7fcae SHA512 d08d4d57429d26d292b5fe6868b7c7a32f2f1d2428f6695cd403a697e2d91629bd4380242ab2720e8f21c895bb75cb56b709fb663a20e8e623120e50bfc5d90b
27
28 diff --git a/media-libs/portmidi/files/portmidi-234-cmake.patch b/media-libs/portmidi/files/portmidi-234-cmake.patch
29 new file mode 100644
30 index 00000000000..f4f1101ccb4
31 --- /dev/null
32 +++ b/media-libs/portmidi/files/portmidi-234-cmake.patch
33 @@ -0,0 +1,332 @@
34 +diff --git a/CMakeLists.txt b/CMakeLists.txt
35 +index 4919b78..9dc6e58 100644
36 +--- a/CMakeLists.txt
37 ++++ b/CMakeLists.txt
38 +@@ -9,12 +9,11 @@ if(UNIX)
39 + set(CMAKE_BUILD_TYPE Release CACHE STRING
40 + "Semicolon-separate list of supported configuration types")
41 + # set default directories but don't override cached values...
42 +- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE}
43 ++ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
44 + CACHE STRING "libraries go here")
45 +- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE}
46 ++ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
47 + CACHE STRING "libraries go here")
48 +- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
49 +- ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE}
50 ++ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
51 + CACHE STRING "executables go here")
52 +
53 + else(UNIX)
54 +@@ -68,10 +67,20 @@ endif(UNIX)
55 + include_directories(pm_common porttime)
56 + add_subdirectory(pm_common)
57 +
58 +-add_subdirectory(pm_test)
59 ++option(PORTMIDI_ENABLE_JAVA "Enable Java bindings support" ON)
60 ++option(PORTMIDI_ENABLE_STATIC "Build and install static libraries" OFF)
61 ++option(PORTMIDI_ENABLE_TEST "Build test programs" ON)
62 ++
63 ++if(PORTMIDI_ENABLE_TEST)
64 ++ add_subdirectory(pm_test)
65 ++endif(PORTMIDI_ENABLE_TEST)
66 +
67 + add_subdirectory(pm_dylib)
68 +
69 + # Cannot figure out how to make an xcode Java application with CMake
70 +-add_subdirectory(pm_java)
71 ++if(PORTMIDI_ENABLE_JAVA)
72 ++ set(JAR_INSTALL_DIR share/java
73 ++ CACHE STRING "Define directory name for jar installation")
74 ++ add_subdirectory(pm_java)
75 ++endif(PORTMIDI_ENABLE_JAVA)
76 +
77 +diff --git a/pm_common/CMakeLists.txt b/pm_common/CMakeLists.txt
78 +index cbeeade..92cbe27 100644
79 +--- a/pm_common/CMakeLists.txt
80 ++++ b/pm_common/CMakeLists.txt
81 +@@ -44,9 +44,6 @@ set(CMAKE_C_FLAGS_RELEASE "${DEFAULT_RELEASE_FLAGS} ${LINUX_FLAGS}"
82 +
83 + # first include the appropriate system-dependent file:
84 + if(UNIX)
85 +- # add the -g switch for Linux and Mac OS X (not used in Win32)
86 +- set (CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}"
87 +- CACHE STRING "enable extra checks for debugging" FORCE)
88 + if(APPLE)
89 + set(MACSRC pmmacosxcm pmmac readbinaryplist finddefault)
90 + prepend_path(LIBSRC ../pm_mac/ ${MACSRC})
91 +@@ -62,19 +59,23 @@ if(UNIX)
92 + ${COREMIDI_LIB} ${CORESERVICES_LIB}
93 + CACHE INTERNAL "")
94 +
95 +- set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
96 +- set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
97 ++ if(PORTMIDI_ENABLE_JAVA)
98 ++ set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
99 ++ set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
100 ++ endif(PORTMIDI_ENABLE_JAVA)
101 + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
102 + else(APPLE)
103 + # LINUX settings...
104 +- include(FindJNI)
105 +- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
106 +- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
107 +- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
108 +- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
109 +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
110 +- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
111 +- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
112 ++ if(PORTMIDI_ENABLE_JAVA)
113 ++ include(FindJNI)
114 ++ message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
115 ++ message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
116 ++ message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
117 ++ message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
118 ++ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
119 ++ # libjvm.so is found relative to JAVA_INCLUDE_PATH:
120 ++ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
121 ++ endif(PORTMIDI_ENABLE_JAVA)
122 +
123 + set(LINUXSRC pmlinuxalsa pmlinux finddefault)
124 + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
125 +@@ -88,10 +89,12 @@ else(UNIX)
126 + # /MD is multithread DLL, /MT is multithread. Change to static:
127 + include(../pm_win/static.cmake)
128 +
129 +- include(FindJNI)
130 ++ if(PORTMIDI_ENABLE_JAVA)
131 ++ include(FindJNI)
132 +
133 +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
134 +- # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
135 ++ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
136 ++ # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
137 ++ endif(PORTMIDI_ENABLE_JAVA)
138 +
139 + set(WINSRC pmwin pmwinmm)
140 + prepend_path(LIBSRC ../pm_win/ ${WINSRC})
141 +@@ -99,29 +102,43 @@ else(UNIX)
142 + set(PM_NEEDED_LIBS winmm.lib)
143 + endif(WIN32)
144 + endif(UNIX)
145 +-set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
146 ++
147 ++if(PORTMIDI_ENABLE_JAVA)
148 ++ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
149 ++endif(PORTMIDI_ENABLE_JAVA)
150 +
151 + # this completes the list of library sources by adding shared code
152 + list(APPEND LIBSRC pmutil portmidi)
153 +
154 + # now add the shared files to make the complete list of library sources
155 +-add_library(portmidi-static ${LIBSRC})
156 +-set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
157 +-target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
158 +-
159 +-# define the jni library
160 +-include_directories(${JAVA_INCLUDE_PATHS})
161 +-
162 +-set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
163 +-add_library(pmjni SHARED ${JNISRC})
164 +-target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
165 +-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
166 ++if(PORTMIDI_ENABLE_STATIC)
167 ++ add_library(portmidi-static ${LIBSRC})
168 ++ set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi")
169 ++ target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
170 ++endif(PORTMIDI_ENABLE_STATIC)
171 ++
172 ++if(PORTMIDI_ENABLE_JAVA)
173 ++ # define the jni library
174 ++ include_directories(${JAVA_INCLUDE_PATHS})
175 ++
176 ++ set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
177 ++ add_library(pmjni SHARED ${JNISRC})
178 ++ target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
179 ++ set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
180 ++endif(PORTMIDI_ENABLE_JAVA)
181 +
182 + # install the libraries (Linux and Mac OS X command line)
183 + if(UNIX)
184 +- INSTALL(TARGETS portmidi-static pmjni
185 +- LIBRARY DESTINATION /usr/local/lib
186 +- ARCHIVE DESTINATION /usr/local/lib)
187 ++ if(PORTMIDI_ENABLE_STATIC)
188 ++ INSTALL(TARGETS portmidi-static
189 ++ LIBRARY DESTINATION lib${LIB_SUFFIX}
190 ++ ARCHIVE DESTINATION lib${LIB_SUFFIX})
191 ++ endif(PORTMIDI_ENABLE_STATIC)
192 ++ if(PORTMIDI_ENABLE_JAVA)
193 ++ INSTALL(TARGETS pmjni
194 ++ LIBRARY DESTINATION lib${LIB_SUFFIX}
195 ++ ARCHIVE DESTINATION lib${LIB_SUFFIX})
196 ++ endif(PORTMIDI_ENABLE_JAVA)
197 + # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
198 + # INSTALL(FILES portmidi.h ../porttime/porttime.h
199 + # DESTINATION /usr/local/include)
200 +diff --git a/pm_dylib/CMakeLists.txt b/pm_dylib/CMakeLists.txt
201 +index f693dd6..c0e1449 100644
202 +--- a/pm_dylib/CMakeLists.txt
203 ++++ b/pm_dylib/CMakeLists.txt
204 +@@ -39,9 +39,6 @@ set(CMAKE_C_FLAGS_RELEASE "${DEFAULT_RELEASE_FLAGS} ${LINUX_FLAGS}"
205 +
206 + # first include the appropriate system-dependent file:
207 + if(UNIX)
208 +- # add the -g switch for Linux and Mac OS X (not used in Win32)
209 +- set (CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}"
210 +- CACHE STRING "enable extra checks for debugging" FORCE)
211 + if(APPLE)
212 + set(MACSRC pmmacosxcm pmmac readbinaryplist finddefault)
213 + prepend_path(LIBSRC ../pm_mac/ ${MACSRC})
214 +@@ -63,7 +60,8 @@ if(UNIX)
215 + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
216 + else(APPLE)
217 + # LINUX settings...
218 +- include(FindJNI)
219 ++ if(PORTMIDI_ENABLE_JAVA)
220 ++ include(FindJNI)
221 + # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
222 + # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
223 + # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
224 +@@ -75,11 +73,8 @@ if(UNIX)
225 + # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
226 + # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
227 + # because JAVA_INCLUDE_PATH2 is pretty obscure)
228 +- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN}
229 +- CACHE STRING "where to find Java SDK include directory")
230 +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
231 +- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
232 +- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
233 ++ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY})
234 ++ endif(PORTMIDI_ENABLE_JAVA)
235 +
236 + set(LINUXSRC pmlinuxalsa pmlinux finddefault)
237 + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
238 +@@ -91,13 +86,15 @@ else(UNIX)
239 + if(WIN32)
240 + # /MDd is multithread debug DLL, /MTd is multithread debug
241 + # /MD is multithread DLL, /MT is multithread
242 +-
243 +- include(FindJNI)
244 +- # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
245 +- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib)
246 +
247 +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
248 +- # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
249 ++ if(PORTMIDI_ENABLE_JAVA)
250 ++ include(FindJNI)
251 ++ # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
252 ++ set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib)
253 ++
254 ++ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
255 ++ # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS})
256 ++ endif(PORTMIDI_ENABLE_JAVA)
257 +
258 + set(WINSRC pmwin pmwinmm)
259 + prepend_path(LIBSRC ../pm_win/ ${WINSRC})
260 +@@ -106,7 +103,10 @@ else(UNIX)
261 + # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
262 + endif(WIN32)
263 + endif(UNIX)
264 ++
265 ++if(PORTMIDI_ENABLE_JAVA)
266 + set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB})
267 ++endif(PORTMIDI_ENABLE_JAVA)
268 +
269 + # this completes the list of library sources by adding shared code
270 + set(SHARED_FILES pmutil portmidi)
271 +@@ -120,8 +120,8 @@ target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS})
272 + # install the libraries (Linux and Mac OS X command line)
273 + if(UNIX)
274 + INSTALL(TARGETS portmidi-dynamic
275 +- LIBRARY DESTINATION /usr/local/lib
276 +- ARCHIVE DESTINATION /usr/local/lib)
277 ++ LIBRARY DESTINATION lib${LIB_SUFFIX}
278 ++ ARCHIVE DESTINATION lib${LIB_SUFFIX})
279 + INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
280 +- DESTINATION /usr/local/include)
281 ++ DESTINATION include)
282 + endif(UNIX)
283 +diff --git a/pm_java/CMakeLists.txt b/pm_java/CMakeLists.txt
284 +index 9d79923..9ed2b09 100644
285 +--- a/pm_java/CMakeLists.txt
286 ++++ b/pm_java/CMakeLists.txt
287 +@@ -5,43 +5,25 @@ if(UNIX)
288 + # java not dealt with in CMake -- see pm_mac/pm_mac.xcodeproj
289 + else(APPLE)
290 + # linux
291 +- set(JPORTMIDICLASS JPortMidi.class JPortMidiException.class
292 +- JPortMidiApi.class)
293 +- set(PMDEFAULTSCLASS PmDefaultsFrame.class PmDefaults.class)
294 +- prepend_path(JPORTMIDICLASS2 jportmidi/ ${JPORTMIDICLASS})
295 +- prepend_path(PMDEFAULTSCLASS2 pmdefaults/ ${PMDEFAULTSCLASS})
296 +- set(PMDEFAULTS_ALL_CLASSES ${JPORTMIDICLASS2} ${PMDEFAULTSCLASS2})
297 +- # message(STATUS "PMDEFAULTS_ALL_CLASSES is " ${PMDEFAULTS_ALL_CLASSES})
298 +- add_custom_command(OUTPUT pmdefaults/PmDefaultsFrame.class
299 +- COMMAND javac -classpath . pmdefaults/PmDefaultsFrame.java
300 +- MAIN_DEPENDENCY pmdefaults/PmDefaultsFrame.java
301 +- DEPENDS pmdefaults/PmDefaults.java
302 +- WORKING_DIRECTORY .)
303 +- add_custom_command(OUTPUT pmdefaults/PmDefaults.class
304 +- COMMAND javac -classpath . pmdefaults/PmDefaults.java
305 +- MAIN_DEPENDENCY pmdefaults/PmDefaults.java
306 +- DEPENDS pmdefaults/PmDefaultsFrame.java
307 +- WORKING_DIRECTORY .)
308 +- add_custom_command(OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
309 +- COMMAND cp pmdefaults/portmusic_logo.png .
310 +- COMMAND jar cmf pmdefaults/manifest.txt pmdefaults.jar
311 +- pmdefaults/*.class portmusic_logo.png jportmidi/*.class
312 +- COMMAND chmod +x pmdefaults/pmdefaults
313 +- COMMAND cp pmdefaults/pmdefaults ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
314 +- COMMAND mv pmdefaults.jar ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
315 +- COMMAND rm portmusic_logo.png
316 +- MAIN_DEPENDENCY pmdefaults/PmDefaults.class
317 +- DEPENDS ${PMDEFAULTS_ALL_CLASSES}
318 +- WORKING_DIRECTORY .)
319 +- add_custom_target(pmdefaults_target ALL
320 +- DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar)
321 ++ set(JAVA_CLASSES jportmidi pmdefaults)
322 ++ add_custom_command(OUTPUT ${JAVA_CLASSES}
323 ++ COMMAND javac -d ${CMAKE_CURRENT_BINARY_DIR} jportmidi/*.java pmdefaults/*.java
324 ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
325 ++ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar
326 ++ DEPENDS ${JAVA_CLASSES}
327 ++ COMMAND jar cmf pmdefaults/manifest.txt ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar
328 ++ -C pmdefaults portmusic_logo.png -C ${CMAKE_CURRENT_BINARY_DIR} jportmidi
329 ++ -C ${CMAKE_CURRENT_BINARY_DIR} pmdefaults
330 ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
331 ++ add_custom_target(pmdefaults.jar ALL
332 ++ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar)
333 + # message(STATUS "add_custom_target: pmdefaults.jar")
334 +
335 + # install the libraries (Linux only)
336 +- INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
337 +- DESTINATION /usr/share/java)
338 +- INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults
339 +- DESTINATION /usr/local/bin)
340 ++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar
341 ++ DESTINATION ${JAR_INSTALL_DIR})
342 ++ INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/pmdefaults/pmdefaults
343 ++ DESTINATION bin)
344 + endif(APPLE)
345 + endif(UNIX)
346 + # In windows, use pm_java/make.bat
347 +diff --git a/pm_test/CMakeLists.txt b/pm_test/CMakeLists.txt
348 +index 4fda450..5d683d8 100644
349 +--- a/pm_test/CMakeLists.txt
350 ++++ b/pm_test/CMakeLists.txt
351 +@@ -10,10 +10,12 @@ if(WIN32)
352 + include(../pm_win/static.cmake)
353 + endif(WIN32)
354 +
355 ++set(CMAKE_SKIP_BUILD_RPATH TRUE)
356 ++
357 + macro(make_a_test name)
358 + add_executable(${name} ${name}.c)
359 +- target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS})
360 +- add_dependencies(${name} portmidi-static)
361 ++ target_link_libraries(${name} portmidi-dynamic ${PM_NEEDED_LIBS})
362 ++ add_dependencies(${name} portmidi-dynamic)
363 + endmacro(make_a_test)
364 +
365 + make_a_test(test)
366
367 diff --git a/media-libs/portmidi/portmidi-234.ebuild b/media-libs/portmidi/portmidi-234.ebuild
368 new file mode 100644
369 index 00000000000..6713a99ef2f
370 --- /dev/null
371 +++ b/media-libs/portmidi/portmidi-234.ebuild
372 @@ -0,0 +1,143 @@
373 +# Copyright 1999-2021 Gentoo Authors
374 +# Distributed under the terms of the GNU General Public License v2
375 +
376 +EAPI=7
377 +
378 +PYTHON_COMPAT=( python3_{7,8,9} )
379 +DISTUTILS_OPTIONAL=1
380 +DISTUTILS_USE_SETUPTOOLS=no
381 +# ninja: error: build.ninja:521: multiple rules generate pm_java/pmdefaults.jar [-w dupbuild=err]
382 +CMAKE_MAKEFILE_GENERATOR="emake"
383 +inherit cmake desktop xdg distutils-r1 java-pkg-opt-2 flag-o-matic
384 +
385 +MY_P="portmedia-code-r${PV}"
386 +
387 +DESCRIPTION="Library for real time MIDI input and output"
388 +HOMEPAGE="http://portmedia.sourceforge.net/"
389 +SRC_URI="mirror://sourceforge/project/portmedia/${MY_P}.zip"
390 +
391 +LICENSE="MIT"
392 +SLOT="0"
393 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
394 +IUSE="debug doc java python static-libs test-programs"
395 +
396 +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
397 +
398 +BDEPEND="
399 + app-arch/unzip
400 + doc? (
401 + app-doc/doxygen
402 + dev-texlive/texlive-fontsrecommended
403 + dev-texlive/texlive-latexextra
404 + virtual/latex-base
405 + )
406 + python? ( >=dev-python/cython-0.12.1[${PYTHON_USEDEP}] )
407 +"
408 +CDEPEND="
409 + media-libs/alsa-lib
410 + python? ( ${PYTHON_DEPS} )
411 +"
412 +RDEPEND="${CDEPEND}
413 + java? ( >=virtual/jre-1.8:* )
414 +"
415 +DEPEND="
416 + ${CDEPEND}
417 + java? ( >=virtual/jdk-1.8:* )
418 +"
419 +
420 +S="${WORKDIR}/${MY_P}/${PN}/trunk"
421 +MAKEOPTS+=" -j1"
422 +
423 +PATCHES=(
424 + # fix parallel make failures, fix java support, and allow optional
425 + # components like test programs and static libs to be skipped
426 + "${FILESDIR}"/${P}-cmake.patch
427 +
428 + # add include directories and remove references to missing files
429 + "${FILESDIR}"/${PN}-217-r4-python.patch
430 +)
431 +
432 +pkg_setup() {
433 + use java && java-pkg-opt-2_pkg_setup
434 +}
435 +
436 +src_prepare() {
437 + cmake_src_prepare
438 +
439 + # install wrapper for pmdefaults
440 + if use java ; then
441 + cat > pm_java/pmdefaults/pmdefaults <<-EOF
442 + #!/bin/sh
443 + java -Djava.library.path="${EPREFIX}/usr/$(get_libdir)/" \\
444 + -jar "${EPREFIX}/usr/share/${PN}/lib/pmdefaults.jar"
445 + EOF
446 + [[ $? -ne 0 ]] && die "cat pmdefaults failed"
447 + fi
448 +}
449 +
450 +src_configure() {
451 + if use debug ; then
452 + CMAKE_BUILD_TYPE=Debug
453 + else
454 + CMAKE_BUILD_TYPE=Release
455 + fi
456 +
457 + local mycmakeargs=(
458 + -DPORTMIDI_ENABLE_JAVA=$(usex java)
459 + -DPORTMIDI_ENABLE_STATIC=$(usex static-libs)
460 + -DPORTMIDI_ENABLE_TEST=$(usex test-programs)
461 + )
462 +
463 + if use java ; then
464 + mycmakeargs+=(-DJAR_INSTALL_DIR="${EPREFIX}/usr/share/${PN}/lib")
465 + fi
466 +
467 + cmake_src_configure
468 +}
469 +
470 +src_compile() {
471 + cmake_src_compile
472 +
473 + if use python ; then
474 + sed -i -e "/library_dirs=.*linux/s#./linux#${CMAKE_BUILD_DIR}#" pm_python/setup.py || die
475 + pushd pm_python > /dev/null
476 + append-ldflags -L"${BUILD_DIR}"
477 + distutils-r1_src_compile
478 + popd > /dev/null
479 + fi
480 +
481 + if use doc ; then
482 + doxygen || die "doxygen failed"
483 + pushd latex > /dev/null
484 + VARTEXFONTS="${T}"/fonts emake
485 + popd > /dev/null
486 + fi
487 +}
488 +
489 +src_install() {
490 + cmake_src_install
491 +
492 + dodoc CHANGELOG.txt README.txt pm_linux/README_LINUX.txt
493 +
494 + use doc && dodoc latex/refman.pdf
495 +
496 + if use python ; then
497 + pushd pm_python > /dev/null
498 + distutils-r1_src_install
499 + popd > /dev/null
500 + fi
501 +
502 + if use java ; then
503 + newdoc pm_java/README.txt README_JAVA.txt
504 + newicon pm_java/pmdefaults/pmdefaults-icon.png pmdefaults.png
505 + make_desktop_entry pmdefaults Pmdefaults pmdefaults "AudioVideo;Audio;Midi;"
506 + fi
507 +
508 + if use test-programs ; then
509 + exeinto /usr/$(get_libdir)/${PN}
510 + local app
511 + for app in latency midiclock midithread midithru mm qtest sysex test ; do
512 + doexe "${BUILD_DIR}"/${app}
513 + done
514 + fi
515 +}