diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2019-06-28 02:32:33 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2019-06-28 03:07:29 +0200 |
commit | 44335924b908ee0308ee5c727bd9b8f0e1d7fb46 (patch) | |
tree | a85be163331ae8b29b11bbe48f1b86c6c023a17d /media-sound/supercollider | |
parent | x11-misc/screengrab: drop previous stable (1.99) (diff) | |
download | gentoo-44335924b908ee0308ee5c727bd9b8f0e1d7fb46.tar.gz gentoo-44335924b908ee0308ee5c727bd9b8f0e1d7fb46.tar.bz2 gentoo-44335924b908ee0308ee5c727bd9b8f0e1d7fb46.zip |
media-sound/supercollider: 3.10.2 version bump
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-sound/supercollider')
4 files changed, 511 insertions, 0 deletions
diff --git a/media-sound/supercollider/Manifest b/media-sound/supercollider/Manifest index 07d2fabe1f82..230929c5b12d 100644 --- a/media-sound/supercollider/Manifest +++ b/media-sound/supercollider/Manifest @@ -1 +1,2 @@ +DIST SuperCollider-3.10.2-Source-linux.tar.bz2 11366481 BLAKE2B d01324ed65f7e8977c138709471e7b9000b1d05ce4c1c0ff83c9ca0ae6e3948b4933320c382b64ecd2aebc65597c963c9348dda09a8c2ec7bc2ea5a14473fe44 SHA512 f7d136cb03e32dfd0b72e36047deaa24d5edfac0f7e9eeaac35f8e991cd52b00db0701478e0daefb24bfbbc55b5cf240e3f3429fd46caa8d76daa21c7aebaf46 DIST SuperCollider-3.9.3-Source-linux.tar.bz2 11060240 BLAKE2B 5da51bece13d2a3e4ca1ff6b79637122a46c1f590aa7e4ebf52d7a663506c6f4bae4f3d618bb7f947c73828402f329be68e435a4de2ecc092c312cb2c993742c SHA512 5b0c29941907d5ca45c1676e34184664c03891051bba0ee50d9e8311400824054de7b6daba6d29fd875ff38f42ee9654504ea2f0b5bf0a36ae9605e6a79a0841 diff --git a/media-sound/supercollider/files/supercollider-3.10.2-boost-1.67.patch b/media-sound/supercollider/files/supercollider-3.10.2-boost-1.67.patch new file mode 100644 index 000000000000..dd51d0b85d8d --- /dev/null +++ b/media-sound/supercollider/files/supercollider-3.10.2-boost-1.67.patch @@ -0,0 +1,27 @@ +From de567f9104af2b7b86d0de2f25eeb091a95e8579 Mon Sep 17 00:00:00 2001 +From: Tristan de Cacqueray <tristanC@wombatt.eu> +Date: Sun, 9 Jun 2019 02:16:49 +0000 +Subject: [PATCH] Fix compilation with boost-1.67 + +When using a system boost version >1.67, the compilation fails because of: +server/supernova/./utilities/time_tag.hpp: In member function 'boost::posix_time::ptime nova::time_tag::to_ptime() const': +supernova/./utilities/time_tag.hpp:232:102: error: no matching function for call to 'boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>::subsecond_duration(double)' + 232 | time_duration offset = seconds(get_secs() - ntp_offset) + microseconds(get_nanoseconds()/1000); +--- + server/supernova/utilities/time_tag.hpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/server/supernova/utilities/time_tag.hpp b/server/supernova/utilities/time_tag.hpp +index 0f49955fd3..c1bb0e73cb 100644 +--- a/server/supernova/utilities/time_tag.hpp ++++ b/server/supernova/utilities/time_tag.hpp +@@ -179,7 +179,8 @@ class time_tag { + #ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG + time_duration offset = seconds(get_secs() - ntp_offset) + nanoseconds(get_nanoseconds()); + #else +- time_duration offset = seconds(get_secs() - ntp_offset) + microseconds(get_nanoseconds()/1000); ++ time_duration offset = ++ seconds(get_secs() - ntp_offset) + microseconds(static_cast<long>(get_nanoseconds() / 1000)); + #endif + return ptime(base, offset); + } diff --git a/media-sound/supercollider/files/supercollider-3.10.2-system-boost.patch b/media-sound/supercollider/files/supercollider-3.10.2-system-boost.patch new file mode 100644 index 000000000000..93c8c4fc2ab5 --- /dev/null +++ b/media-sound/supercollider/files/supercollider-3.10.2-system-boost.patch @@ -0,0 +1,359 @@ +diff --git c/CMakeLists.txt w/CMakeLists.txt +index 063028774..a6b76f49b 100644 +--- c/CMakeLists.txt ++++ w/CMakeLists.txt +@@ -253,20 +253,43 @@ if (NOT WIN32) + endif() + + if(SYSTEM_BOOST) +- set(Boost_USE_MULTITHREADED ON) +- find_package( Boost 1.50.0 COMPONENTS thread system filesystem program_options regex test_exec_monitor ) +-endif() +- +-if (Boost_FOUND) +- link_directories(${Boost_LIBRARY_DIRS}) ++ set(Boost_USE_MULTITHREADED ON) ++ find_package( Boost 1.50.0 COMPONENTS thread system filesystem program_options regex test_exec_monitor ) ++ if (Boost_FOUND) ++ # we're specifically setting up the boost libraries here, so we can ++ # name them ++ add_library(boost_thread_lib SHARED IMPORTED) ++ set_property(TARGET boost_thread_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_THREAD_LIBRARY}) ++ add_library(boost_system_lib SHARED IMPORTED) ++ set_property(TARGET boost_system_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_SYSTEM_LIBRARY}) ++ add_library(boost_filesystem_lib SHARED IMPORTED) ++ set_property(TARGET boost_filesystem_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_FILESYSTEM_LIBRARY}) ++ add_library(boost_program_options_lib SHARED IMPORTED) ++ set_property(TARGET boost_program_options_lib PROPERTY ++ IMPORTED_LOCATION ${Boost_PROGRAM_OPTIONS_LIBRARY}) ++ add_library(boost_regex_lib SHARED IMPORTED) ++ set_property(TARGET boost_regex_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_REGEX_LIBRARY}) ++ add_library(boost_test_exec_monitor_lib SHARED IMPORTED) ++ set_property(TARGET boost_test_exec_monitor_lib PROPERTY ++ IMPORTED_LOCATION ${Boost_TEST_EXEC_MONITOR_LIBRARY}) ++ set(boost_include_dirs ${Boost_INCLUDE_DIRS}) ++ else() ++ set(SYSTEM_BOOST OFF) ++ set(boost_include_dirs ${CMAKE_SOURCE_DIR}/external_libraries/boost) ++ message(WARNING "Not using system boost because none was found.") ++ endif() + else() +- message(STATUS "building boost libraries manually") ++ set(boost_include_dirs ${CMAKE_SOURCE_DIR}/external_libraries/boost) + endif() + + if(SYSTEM_YAMLCPP) + find_package(YamlCpp) + else() +- set(YAMLCPP_FOUND OFF) ++ set(SYSTEM_YAMLCPP OFF) + endif() + + ############################################# +diff --git c/editors/sc-ide/CMakeLists.txt w/editors/sc-ide/CMakeLists.txt +index 50059bc2f..8e48194fc 100644 +--- c/editors/sc-ide/CMakeLists.txt ++++ w/editors/sc-ide/CMakeLists.txt +@@ -219,7 +219,6 @@ endif() + include_directories(${CMAKE_SOURCE_DIR}/include/common) + include_directories(${CMAKE_SOURCE_DIR}/common) + include_directories(${CMAKE_SOURCE_DIR}/include/plugin_interface) +-include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost) + include_directories(${YAMLCPP_INCLUDE_DIR}) + # For QtCollider headers: + include_directories(${CMAKE_SOURCE_DIR}) +@@ -299,12 +298,8 @@ target_link_libraries( SuperCollider + oscpack + ) + +-if(Boost_FOUND) +- target_link_libraries( SuperCollider ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ) +-else() +- # in-house-built boost system +- target_link_libraries( SuperCollider boost_system boost_filesystem ) +-endif() ++target_link_libraries( SuperCollider boost_system_lib boost_filesystem_lib) ++include_directories(${boost_include_dirs}) + + if(APPLE) + target_link_libraries( ${ide_name} "-framework CoreServices -framework Foundation") +diff --git c/external_libraries/CMakeLists.txt w/external_libraries/CMakeLists.txt +index df33dc6f1..896ce6206 100644 +--- c/external_libraries/CMakeLists.txt ++++ w/external_libraries/CMakeLists.txt +@@ -2,7 +2,8 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/nova-simd/vec.hpp) + message(FATAL_ERROR "nova-simd submodule is missing: please run `git submodule init && git submodule update' from the toplevel of your git working tree") + endif() + +-if(NOT Boost_FOUND) # we compile boost ourselves ++if(NOT SYSTEM_BOOST) # we compile boost ourselves ++ message(STATUS "Using bundled boost") + # boost thread + aux_source_directory(boost/libs/thread/src/ boost_thread_src ) + +@@ -14,66 +15,65 @@ if(NOT Boost_FOUND) # we compile boost ourselves + message(SEND_ERROR "we need to implement boost_thread") + endif() + +- aux_source_directory(boost/libs/system/src/ boost_system ) +- add_library(boost_system STATIC EXCLUDE_FROM_ALL ${boost_system}) +- target_include_directories(boost_system PUBLIC boost) ++ aux_source_directory(boost/libs/system/src/ boost_system_src ) ++ add_library(boost_system_lib STATIC EXCLUDE_FROM_ALL ${boost_system_src}) ++ target_include_directories(boost_system_lib PUBLIC boost) + +- aux_source_directory(boost/libs/program_options/src/ boost_program_options ) +- add_library(boost_program_options STATIC EXCLUDE_FROM_ALL ${boost_program_options}) +- target_include_directories(boost_program_options PUBLIC boost) ++ aux_source_directory(boost/libs/program_options/src/ boost_program_options_src ) ++ add_library(boost_program_options_lib STATIC EXCLUDE_FROM_ALL ${boost_program_options_src}) ++ target_include_directories(boost_program_options_lib PUBLIC boost) + + aux_source_directory(boost/libs/filesystem/src boost_filesystem_src) +- add_library(boost_filesystem STATIC EXCLUDE_FROM_ALL ${boost_filesystem_src}) +- target_include_directories(boost_filesystem PUBLIC boost) ++ add_library(boost_filesystem_lib STATIC EXCLUDE_FROM_ALL ${boost_filesystem_src}) ++ target_include_directories(boost_filesystem_lib PUBLIC boost) + + aux_source_directory(boost/libs/regex/src boost_regex_src) +- add_library(boost_regex STATIC EXCLUDE_FROM_ALL ${boost_regex_src}) +- target_include_directories(boost_regex PUBLIC boost) ++ add_library(boost_regex_lib STATIC EXCLUDE_FROM_ALL ${boost_regex_src}) ++ target_include_directories(boost_regex_lib PUBLIC boost) + + if(LTO) +- set_property(TARGET boost_program_options boost_system boost_filesystem ++ set_property(TARGET boost_program_options_lib boost_system_lib boost_filesystem_lib + APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report") + +- set_property(TARGET boost_program_options boost_system boost_filesystem ++ set_property(TARGET boost_program_options_lib boost_system_lib boost_filesystem_lib + APPEND PROPERTY LINK_FLAGS "-flto -flto-report") + endif() + +- add_library(boost_thread STATIC EXCLUDE_FROM_ALL ${boost_thread_src} ${boost_thread_platform}) +- target_link_libraries(boost_thread boost_system) ++ add_library(boost_thread_lib STATIC EXCLUDE_FROM_ALL ${boost_thread_src} ${boost_thread_platform}) ++ target_link_libraries(boost_thread_lib boost_system_lib) + # target_compile_definitions(boost_thread PUBLIC BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS) +- target_include_directories(boost_thread PUBLIC boost) +- target_compile_definitions(boost_thread PUBLIC BOOST_THREAD_USE_LIB) # for win32 ++ target_include_directories(boost_thread_lib PUBLIC boost) ++ target_compile_definitions(boost_thread_lib PUBLIC BOOST_THREAD_USE_LIB) # for win32 + + if(PTHREADS_FOUND) +- target_include_directories(boost_thread PUBLIC ${PTHREADS_INCLUDE_DIR}) ++ target_include_directories(boost_thread_lib PUBLIC ${PTHREADS_INCLUDE_DIR}) + endif() + if(WIN32) +- target_compile_definitions( boost_thread PRIVATE BOOST_THREAD_BUILD_LIB) ++ target_compile_definitions( boost_thread_lib PRIVATE BOOST_THREAD_BUILD_LIB) + endif() + + + if(CMAKE_SYSTEM_NAME MATCHES "Linux") +- target_compile_options(boost_thread PRIVATE -fPIC) +- target_link_libraries(boost_thread rt) ++ target_compile_options(boost_thread_lib PRIVATE -fPIC) ++ target_link_libraries(boost_thread_lib rt) + endif() + + if(LTO) +- set_property(TARGET boost_thread ++ set_property(TARGET boost_thread_lib + APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report") + +- set_property(TARGET boost_thread ++ set_property(TARGET boost_thread_lib + APPEND PROPERTY LINK_FLAGS "-flto -flto-report") + endif() + + set_property( TARGET +- boost_regex +- boost_thread +- boost_program_options +- boost_system +- boost_filesystem ++ boost_regex_lib ++ boost_thread_lib ++ boost_program_options_lib ++ boost_system_lib ++ boost_filesystem_lib + PROPERTY FOLDER 3rdparty + ) +- + endif() + + # tlsf +@@ -84,10 +84,9 @@ set_property(TARGET tlsf PROPERTY POSITION_INDEPENDENT_CODE TRUE) + + #oscpack + add_library(oscpack STATIC EXCLUDE_FROM_ALL "oscpack_build.cpp") +-target_include_directories(oscpack PRIVATE boost) ++target_include_directories(oscpack PRIVATE ${boost_include_dirs}) + target_include_directories(oscpack INTERFACE oscpack_1_1_0 ) + +- + if(LTO) + set_property(TARGET oscpack tlsf + APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report") +@@ -96,15 +95,15 @@ if(LTO) + APPEND PROPERTY LINK_FLAGS "-flto -flto-report") + endif() + +-if(NOT YAMLCPP_FOUND) +- message(STATUS "using bundled libyaml-cpp") ++if(NOT SYSTEM_YAMLCPP) ++ message(STATUS "Using bundled yaml-cpp") + + # yaml-cpp + aux_source_directory(${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/src yaml_src) + CREATE_FINAL_FILE(${CMAKE_CURRENT_BINARY_DIR}/libyamlcpp.cpp ${yaml_src}) + + add_library(yaml STATIC EXCLUDE_FROM_ALL ${CMAKE_CURRENT_BINARY_DIR}/libyamlcpp.cpp) +- target_include_directories(yaml PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/include boost) ++ target_include_directories(yaml PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/include ${boost_include_dirs}) + set_property( TARGET yaml PROPERTY FOLDER 3rdparty ) + set(YAMLCPP_LIBRARY yaml) + set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/include) +diff --git c/lang/CMakeLists.txt w/lang/CMakeLists.txt +index c68b32fdc..593d91845 100644 +--- c/lang/CMakeLists.txt ++++ w/lang/CMakeLists.txt +@@ -202,14 +202,8 @@ if(SC_HIDAPI) + endif() + endif() + +-if (Boost_FOUND) +- target_include_directories(libsclang PUBLIC ${Boost_INCLUDE_DIRS}) +- target_link_libraries(libsclang ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) +-else() +- target_include_directories(libsclang PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/boost) +- target_link_libraries(libsclang boost_regex boost_thread boost_system boost_filesystem) +-endif() +- ++target_link_libraries(libsclang boost_thread_lib boost_system_lib boost_regex_lib boost_filesystem_lib) ++target_include_directories(libsclang PUBLIC ${boost_include_dirs}) + + if (SCLANG_SERVER) + target_link_libraries(libsclang libscsynth) +diff --git c/server/CMakeLists.txt w/server/CMakeLists.txt +index 2622b4e36..bf8dc863d 100644 +--- c/server/CMakeLists.txt ++++ w/server/CMakeLists.txt +@@ -12,11 +12,7 @@ include_directories(${CMAKE_SOURCE_DIR}/external_libraries + ${CMAKE_SOURCE_DIR}/external_libraries/nova-tt + ) + +-if (Boost_FOUND) +- include_directories(${Boost_INCLUDE_DIRS}) +-else() +- include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost) +-endif() ++include_directories(${boost_include_dirs}) + + # here we choose who provides us with the FFT lib + if (APPLE) +diff --git c/server/plugins/CMakeLists.txt w/server/plugins/CMakeLists.txt +index 8287f7be9..9a4db7be5 100644 +--- c/server/plugins/CMakeLists.txt ++++ w/server/plugins/CMakeLists.txt +@@ -199,7 +199,7 @@ if (SUPERNOVA) + + if(SNDFILE_FOUND) + target_include_directories(DiskIO_UGens_supernova PUBLIC ${SNDFILE_INCLUDE_DIR}) +- target_link_libraries(DiskIO_UGens_supernova ${SNDFILE_LIBRARIES} ${PTHREADS_LIBRARY} ${MATH_LIBRARY} ${Boost_THREAD_LIBRARY}) ++ target_link_libraries(DiskIO_UGens_supernova ${SNDFILE_LIBRARIES} ${PTHREADS_LIBRARY} ${MATH_LIBRARY} boost_thread_lib) + list(APPEND supernova_plugins DiskIO_UGens_supernova) + else() + message(SEND_ERROR "Cannot find libsndfile") +@@ -217,7 +217,7 @@ endforeach() + + if(NOT NO_X11) + foreach(ugen ${uiugens}) +- target_link_libraries(${ugen} ${Boost_THREAD_LIBRARY}) ++ target_link_libraries(${ugen} boost_thread_lib) + endforeach() + endif() + +diff --git c/server/scsynth/CMakeLists.txt w/server/scsynth/CMakeLists.txt +index 17c09f262..3a7145841 100644 +--- c/server/scsynth/CMakeLists.txt ++++ w/server/scsynth/CMakeLists.txt +@@ -176,11 +176,8 @@ elseif(AUDIOAPI STREQUAL coreaudio) + target_link_libraries(libscsynth "-framework CoreAudio") + endif() + +-if (Boost_FOUND) +- target_link_libraries(libscsynth ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ) +-else() +- target_link_libraries(libscsynth boost_system boost_filesystem) +-endif() ++target_link_libraries(libscsynth boost_system_lib boost_filesystem_lib) ++target_include_directories(libscsynth PUBLIC ${boost_include_dirs}) + + if (WIN32) + target_link_libraries(libscsynth wsock32 ws2_32 winmm) +diff --git c/server/supernova/CMakeLists.txt w/server/supernova/CMakeLists.txt +index cfe128880..2b80cb545 100644 +--- c/server/supernova/CMakeLists.txt ++++ w/server/supernova/CMakeLists.txt +@@ -70,7 +70,7 @@ if(NOT WIN32) + PROPERTY OUTPUT_NAME supernova) + endif() + +-target_link_libraries(libsupernova oscpack tlsf ${PTHREADS_LIBRARIES} boost_thread) ++target_link_libraries(libsupernova oscpack tlsf ${PTHREADS_LIBRARIES} boost_thread_lib) + + target_compile_definitions(libsupernova PUBLIC SUPERNOVA) + target_include_directories(libsupernova PUBLIC +@@ -146,14 +146,8 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux") + target_link_libraries(libsupernova rt) + endif() + +- +-if(Boost_FOUND) +- target_link_libraries(libsupernova ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY}) +- target_include_directories(libsupernova PUBLIC ${Boost_INCLUDE_DIRS}) +-else() +- target_include_directories(libsupernova PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/boost) +- target_link_libraries(libsupernova boost_system boost_filesystem boost_program_options) +-endif() ++target_link_libraries(libsupernova boost_system_lib boost_filesystem_lib boost_program_options_lib) ++target_include_directories(libsupernova PUBLIC ${boost_include_dirs}) + + if(CMAKE_COMPILER_IS_GNUCXX) + if( ${_gcc_version} VERSION_GREATER 5 ) +diff --git c/testsuite/server/CMakeLists.txt w/testsuite/server/CMakeLists.txt +index 38ce4b486..da19c2e5d 100644 +--- c/testsuite/server/CMakeLists.txt ++++ w/testsuite/server/CMakeLists.txt +@@ -1,8 +1,8 @@ ++add_library(boost_test STATIC boost_test.cpp) ++target_include_directories(boost_test PUBLIC ${boost_include_dirs}) ++ + add_subdirectory(scsynth) +- + if (SUPERNOVA) + add_subdirectory(supernova) + endif() + +-add_library(boost_test STATIC boost_test.cpp) +-target_include_directories(boost_test PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/boost) +diff --git c/testsuite/server/supernova/CMakeLists.txt w/testsuite/server/supernova/CMakeLists.txt +index e8a9ccf5f..4022da847 100644 +--- c/testsuite/server/supernova/CMakeLists.txt ++++ w/testsuite/server/supernova/CMakeLists.txt +@@ -34,7 +34,7 @@ foreach(test ${simple_tests}) + string(REPLACE .cpp "" test_name ${test} ) + add_executable(${test_name} ${test}) + +- target_link_libraries(${test_name} libsupernova boost_test boost_thread) ++ target_link_libraries(${test_name} libsupernova boost_test boost_thread_lib) + + add_test(${test_name}_run ${EXECUTABLE_OUTPUT_PATH}/${test_name}) + endforeach(test) diff --git a/media-sound/supercollider/supercollider-3.10.2.ebuild b/media-sound/supercollider/supercollider-3.10.2.ebuild new file mode 100644 index 000000000000..3ebf0f2cc008 --- /dev/null +++ b/media-sound/supercollider/supercollider-3.10.2.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake-utils readme.gentoo-r1 xdg-utils + +DESCRIPTION="An environment and a programming language for real time audio synthesis." +HOMEPAGE="https://supercollider.github.io/" +SRC_URI="https://github.com/supercollider/supercollider/releases/download/Version-${PV}/SuperCollider-${PV}-Source-linux.tar.bz2" + +LICENSE="GPL-2 gpl3? ( GPL-3 )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="cpu_flags_x86_sse cpu_flags_x86_sse2 debug emacs +fftw gedit +gpl3 jack qt5 server +sndfile static-libs vim X zeroconf" + +REQUIRED_USE="qt5? ( X )" + +BDEPEND=" + virtual/pkgconfig + qt5? ( dev-qt/linguist-tools:5 ) +" +RDEPEND=" + dev-cpp/yaml-cpp:= + dev-libs/boost:= + media-libs/alsa-lib + sys-libs/readline:0= + virtual/libudev:= + fftw? ( sci-libs/fftw:3.0= ) + jack? ( virtual/jack ) + !jack? ( media-libs/portaudio ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qtprintsupport:5 + dev-qt/qtsql:5 + dev-qt/qtsvg:5 + dev-qt/qtwebchannel:5 + dev-qt/qtwebengine:5[widgets] + dev-qt/qtwebsockets:5 + dev-qt/qtwidgets:5 + ) + server? ( !app-admin/supernova ) + sndfile? ( media-libs/libsndfile ) + X? ( + x11-libs/libX11 + x11-libs/libXt + ) + zeroconf? ( net-dns/avahi ) +" +DEPEND="${RDEPEND} + dev-libs/icu + emacs? ( virtual/emacs ) + gedit? ( app-editors/gedit ) + qt5? ( + dev-qt/qtconcurrent:5 + dev-qt/qtdeclarative:5 + ) + vim? ( app-editors/vim ) +" + +PATCHES=( + "${FILESDIR}"/${P}-system-boost.patch + "${FILESDIR}"/${P}-boost-1.67.patch +) + +S="${WORKDIR}/SuperCollider-Source" + +src_configure() { + local mycmakeargs=( + -DINSTALL_HELP=ON + -DSYSTEM_BOOST=ON + -DSYSTEM_YAMLCPP=ON + -DSSE=$(usex cpu_flags_x86_sse) + -DSSE2=$(usex cpu_flags_x86_sse2) + -DSC_EL=$(usex emacs) + -DFFT_GREEN=$(usex !fftw) + -DSC_ED=$(usex gedit) + -DNO_GPL3=$(usex !gpl3) + -DAUDIOAPI=$(usex jack jack portaudio) + -DSC_IDE=$(usex qt5) + -DSC_QT=$(usex qt5) + -DSCLANG_SERVER=$(usex server) + -DSUPERNOVA=$(usex server) + -DNO_LIBSNDFILE=$(usex !sndfile) + -DLIBSCSYNTH=$(usex !static-libs) + -DSC_VIM=$(usex vim) + -DNO_X11=$(usex !X) + -DNO_AVAHI=$(usex !zeroconf) + ) + + use debug && mycmakeargs+=( + -DSC_MEMORY_DEBUGGING=ON + -DSN_MEMORY_DEBUGGING=ON + -DGC_SANITYCHECK=ON + ) + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + use emacs && newdoc editors/scel/README.md README.emacs + use gedit && newdoc editors/sced/README.md README.gedit + use vim && newdoc editors/scvim/README.md README.vim +} + +pkg_postinst() { + einfo "Notice: SuperCollider is not very intuitive to get up and running." + einfo "The best course of action to make sure that the installation was" + einfo "successful and get you started with using SuperCollider is to take" + einfo "a look through ${EROOT}/usr/share/doc/${PF}/README.md.bz2" + + xdg_mimeinfo_database_update + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_mimeinfo_database_update + xdg_desktop_database_update +} |