media-sound/banshee: fix dependency on dbus-sharp{,-glib}
[gentoo.git] / media-sound / csound / csound-6.03.2.ebuild
1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI="5"
6 PYTHON_COMPAT=( python2_7 )
7
8 inherit eutils multilib java-pkg-opt-2 cmake-utils toolchain-funcs versionator python-single-r1
9
10 MY_PN="${PN/c/C}"
11 MY_P="${MY_PN}${PV}"
12
13 DESCRIPTION="A sound design and signal processing system providing facilities for composition and performance"
14 HOMEPAGE="http://csounds.com/"
15 SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
16
17 LICENSE="LGPL-2.1"
18 SLOT="0"
19 KEYWORDS="~amd64 ~x86"
20 IUSE="+alsa beats chua csoundac curl +cxx debug double-precision dssi examples fltk +fluidsynth
21 +image jack java keyboard linear lua luajit nls osc openmp portaudio portmidi pulseaudio
22 python samples score static-libs stk tcl test +threads +utils vim-syntax"
23
24 LANGS=" de en_US es_CO fr it ro ru"
25 IUSE+="${LANGS// / linguas_}"
26
27 RDEPEND="
28         >=media-libs/libsndfile-1.0.16
29         alsa? ( media-libs/alsa-lib )
30         csoundac? (
31                 x11-libs/fltk:1[threads?]
32                 dev-cpp/eigen:3
33                 dev-libs/boost
34                 ${PYTHON_DEPS}
35         )
36         curl? ( net-misc/curl )
37         dssi? (
38                 media-libs/dssi
39                 media-libs/ladspa-sdk
40         )
41         fluidsynth? ( media-sound/fluidsynth )
42         fltk? ( x11-libs/fltk:1[threads?] )
43         image? ( media-libs/libpng:0= )
44         jack? ( media-sound/jack-audio-connection-kit )
45         java? ( >=virtual/jdk-1.5 )
46         keyboard? ( x11-libs/fltk:1[threads?] )
47         linear? ( sci-mathematics/gmm )
48         lua? (
49                 luajit? ( dev-lang/luajit:2 )
50                 !luajit? ( dev-lang/lua:0 )
51         )
52         osc? ( media-libs/liblo )
53         portaudio? ( media-libs/portaudio )
54         portmidi? ( media-libs/portmidi )
55         pulseaudio? ( media-sound/pulseaudio )
56         python? ( ${PYTHON_DEPS} )
57         stk? ( media-libs/stk )
58         tcl? (
59                 >=dev-lang/tcl-8.5:0=
60                 >=dev-lang/tk-8.5:0=
61         )
62         utils? ( !media-sound/snd )
63 "
64 DEPEND="${RDEPEND}
65         sys-devel/flex
66         virtual/yacc
67         chua? ( dev-libs/boost )
68         csoundac? ( dev-lang/swig )
69         nls? ( sys-devel/gettext )
70         test? (
71                 dev-util/cunit
72                 ${PYTHON_DEPS}
73         )
74 "
75 REQUIRED_USE="
76         java? ( cxx )
77         linear? ( double-precision )
78         lua? ( cxx )
79         python? ( cxx )
80 "
81
82 # requires specific alsa settings
83 RESTRICT="test"
84
85 S=${WORKDIR}/${MY_P}
86
87 pkg_pretend() {
88         if use openmp ; then
89                 tc-has-openmp || die "Please switch to an openmp compatible compiler"
90         fi
91 }
92
93 pkg_setup() {
94         if use python || use test ; then
95                 python-single-r1_pkg_setup
96         fi
97 }
98
99 src_prepare() {
100         epatch "${FILESDIR}"/${PN}-6.02-porttime-in-portmidi.patch
101
102         sed -e '/set(PLUGIN_INSTALL_DIR/s/-${APIVERSION}//' \
103                 -e '/-O3/d' \
104                 -i CMakeLists.txt || die
105
106         if use python ; then
107                 sed -i "/set(PYTHON_MODULE_INSTALL_DIR/s#\${LIBRARY_INSTALL_DIR}#$(python_get_sitedir)#" CMakeLists.txt || die
108         fi
109
110         for lang in ${LANGS} ; do
111                 if ! use linguas_${lang} ; then
112                         sed -i "/compile_po(${lang}/d" po/CMakeLists.txt || die
113                 fi
114         done
115 }
116
117 src_configure() {
118         local myconf
119
120         if use csoundac ; then
121                 myconf+=" -DBUILD_CSOUND_AC_PYTHON_INTERFACE=$(usex python ON OFF)"
122                 myconf+=" -DBUILD_CSOUND_AC_LUA_INTERFACE=$(usex lua ON OFF)"
123         fi
124
125         [[ $(get_libdir) == "lib64" ]] && myconf+=" -DUSE_LIB64=ON"
126
127         local mycmakeargs=(
128                 $(cmake-utils_use_use alsa ALSA)
129                 $(cmake-utils_use_build beats CSBEATS)
130                 $(cmake-utils_use_build chua CHUA_OPCODES)
131                 $(cmake-utils_use_build csoundac CSOUND_AC)
132                 $(cmake-utils_use_build cxx CXX_INTERFACE)
133                 $(cmake-utils_use_use curl CURL)
134                 $(cmake-utils_use debug NEW_PARSER_DEBUG)
135                 $(cmake-utils_use_use double-precision DOUBLE)
136                 $(cmake-utils_use_build dssi DSSI_OPCODES)
137                 $(cmake-utils_use_build fluidsynth FLUID_OPCODES)
138                 $(cmake-utils_use_use fltk FLTK)
139                 $(cmake-utils_use_build image IMAGE_OPCODES)
140                 $(cmake-utils_use_use jack JACK)
141                 $(cmake-utils_use_build jack JACK_OPCODES)
142                 $(cmake-utils_use_build java JAVA_INTERFACE)
143                 $(cmake-utils_use_build keyboard VIRTUAL_KEYBOARD)
144                 $(cmake-utils_use_build linear LINEAR_ALGEBRA_OPCODES)
145                 $(cmake-utils_use_build lua LUA_OPCODES)
146                 $(cmake-utils_use_build lua LUA_INTERFACE)
147                 $(cmake-utils_use_use nls GETTEXT)
148                 $(cmake-utils_use_build osc OSC_OPCODES)
149                 $(cmake-utils_use_use openmp OPEN_MP)
150                 $(cmake-utils_use_use portaudio PORTAUDIO)
151                 $(cmake-utils_use_use portmidi PORTMIDI)
152                 $(cmake-utils_use_use pulseaudio PULSEAUDIO)
153                 $(cmake-utils_use_build python PYTHON_OPCODES)
154                 $(cmake-utils_use_build python PYTHON_INTERFACE)
155                 $(cmake-utils_use score SCORE_PARSER)
156                 $(cmake-utils_use_build static-libs STATIC_LIBRARY)
157                 $(cmake-utils_use_build stk STK_OPCODES)
158                 $(cmake-utils_use_build test TESTS)
159                 $(cmake-utils_use_build test STATIC_LIBRARY)
160                 $(cmake-utils_use_build tcl TCLCSOUND)
161                 $(cmake-utils_use_build threads MULTI_CORE)
162                 $(cmake-utils_use_build utils UTILITIES)
163                 -DBUILD_RELEASE=ON
164                 ${myconf}
165         )
166
167         cmake-utils_src_configure
168 }
169
170 src_test() {
171         cmake-utils_src_test
172 }
173
174 src_install() {
175         cmake-utils_src_install
176         dodoc AUTHORS ChangeLog README.md Release_Notes/*
177
178         # Generate env.d file
179         if use double-precision ; then
180                 echo OPCODEDIR64=/usr/$(get_libdir)/${PN}/plugins64 > "${T}"/62${PN}
181         else
182                 echo OPCODEDIR=/usr/$(get_libdir)/${PN}/plugins > "${T}"/62${PN}
183         fi
184         echo "CSSTRNGS=/usr/share/locale" >> "${T}"/62${PN}
185         use stk && echo "RAWWAVE_PATH=/usr/share/csound/rawwaves" >> "${T}"/62${PN}
186         doenvd "${T}"/62${PN}
187
188         if use examples ; then
189                 dodoc -r examples
190                 docompress -x /usr/share/doc/${PF}/examples
191         fi
192
193         use samples && dodoc -r samples
194
195         if use vim-syntax ; then
196                 insinto /usr/share/vim/vimfiles/syntax
197                 doins installer/misc/vim/csound_{csd,orc,sco}.vim
198                 insinto /usr/share/vim/vimfiles/plugin
199                 doins installer/misc/vim/csound.vim
200         fi
201
202         # rename extract to csound_extract (bug #247394)
203         mv "${ED}"/usr/bin/{extract,csound_extract} || die
204
205         use python && python_optimize
206 }
207
208 pkg_postinst() {
209         if [[ -z ${REPLACING_VERSIONS} ]] ; then
210                 elog
211                 elog "The extract tool is now installed as csound_extract"
212                 elog "due to collisions with many other packages (bug #247394)."
213                 elog
214         fi
215 }