We took this patch from Gentoo to break apart the portmidi build, so that we can disable the Java parts and cleanly disable the tests which fail to link (possibly because they are linked before “-lportmidi” is available). The patch was downloaded from here: https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/portmidi/files/portmidi-217-cmake.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d --- portmidi/CMakeLists.txt +++ portmidi/CMakeLists.txt @@ -9,12 +9,11 @@ set(CMAKE_BUILD_TYPE Release CACHE STRING "Semicolon-separate list of supported configuration types") # set default directories but don't override cached values... - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE} + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "libraries go here") - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE} + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "libraries go here") - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY - ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE} + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "executables go here") else(UNIX) @@ -68,10 +67,20 @@ include_directories(pm_common porttime) add_subdirectory(pm_common) -add_subdirectory(pm_test) +option(PORTMIDI_ENABLE_JAVA "Enable Java bindings support" ON) +option(PORTMIDI_ENABLE_STATIC "Build and install static libraries" OFF) +option(PORTMIDI_ENABLE_TEST "Build test programs" ON) + +if(PORTMIDI_ENABLE_TEST) + add_subdirectory(pm_test) +endif(PORTMIDI_ENABLE_TEST) add_subdirectory(pm_dylib) # Cannot figure out how to make an xcode Java application with CMake -add_subdirectory(pm_java) +if(PORTMIDI_ENABLE_JAVA) + set(JAR_INSTALL_DIR share/java + CACHE STRING "Define directory name for jar installation") + add_subdirectory(pm_jav;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 John Darrington <jmd@gnu.org> ;;; Copyright © 2015, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages mtools) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages)) (define-public mtools (package (name "mtools") (version "4.0.45") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mtools/mtools-" version ".tar.bz2")) (sha256 (base32 "066ncw51da1h6w80p6cl6flw8sznk933sf545xa0xzhfpnb8l00b")) (patches (search-patches "mtools-mformat-uninitialized.patch")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/mtools/") (synopsis "Access MS-DOS disks without mounting") (description "GNU Mtools is a set of utilities for accessing MS-DOS disks from a GNU or Unix system. It supports long file names and multiple disk formats. It also supports some FAT-specific features such as volume labels and FAT-specific file attributes.") (license gpl3+)))