summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2019-06-28 02:32:33 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2019-06-28 03:07:29 +0200
commit44335924b908ee0308ee5c727bd9b8f0e1d7fb46 (patch)
treea85be163331ae8b29b11bbe48f1b86c6c023a17d /media-sound/supercollider
parentx11-misc/screengrab: drop previous stable (1.99) (diff)
downloadgentoo-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')
-rw-r--r--media-sound/supercollider/Manifest1
-rw-r--r--media-sound/supercollider/files/supercollider-3.10.2-boost-1.67.patch27
-rw-r--r--media-sound/supercollider/files/supercollider-3.10.2-system-boost.patch359
-rw-r--r--media-sound/supercollider/supercollider-3.10.2.ebuild124
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
+}