# Maintainer: David Runge <dave@sleepmap.de>
# Contributor: Ainola
# Contributor: speps
# Contributor: Bernardo Barros

pkgbase=csound
pkgname=('csound' 'csound-doc')
pkgver=6.13.0
pkgrel=3
pkgdesc="A programming language for sound rendering and signal processing."
arch=('x86_64')
url="https://csound.com"
license=('LGPL')
# libpd needs to be packaged: https://github.com/libpd/libpd/releases
# gmm > 5.1 breaks linear-algebra opcode: https://github.com/csound/csound/issues/920
makedepends=('boost' 'cmake' 'cunit' 'doxygen' 'dssi' 'eigen' 'faust' 'fltk'
'fluidsynth' 'hdf5' 'java-environment' 'ladspa' 'libmusicxml' 'libwebsockets'
'link' 'llvm' 'lua' 'portmidi' 'portsmf' 'python2' 'stk' 'swig' 'wiiuse')
source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/${pkgbase}/${pkgbase}/archive/${pkgver}.tar.gz"
        "${pkgbase}.sh"
        "https://github.com/${pkgbase}/${pkgbase}/releases/download/${pkgver}/Csound${pkgver}_manual_html.zip"
        "https://github.com/${pkgbase}/${pkgbase}/releases/download/${pkgver}/Csound${pkgver}_manual_pdf.zip")
sha512sums=('51a30cb426fc77ac648f6a9fb669b9298e6608b39ae3b12181d16ecf1fb6f2ed3db31471615a60d2ce7906b91fdb911b38c8dfa3f93699768f490f87a2bcbbbd'
            '53a8ae1e61db2a3a492930ef0f0881b613ae47108c5e8de0a6e2aa28bcf7a5c93c7fea8b7fc2bbae29ab92e1e68bf94ba406be1255ad8ab5725ea9078c1fd6dc'
            '87de3efc9aba736751d5bd93bb7bb9d47a3fc4c2e9df4552c9c1f3030f84e1aa29fa421f5360a22993cf0f6f7baae1d70bfb54201e5110f44f5a8c81d955deb5'
            '30a55ec2c3ab0e243ac48a081954bea1f8fa653d25c908383c49a879972b94ba2ce7c3b3b0701be18ace28dc7fd199597d889fa1f9e5aca478792b835909c8fa')

prepare() {
  cd "${pkgbase}-${pkgver}"
  mkdir build
}

build() {
  local _java_major=$(java --version 2>/dev/null |grep 'openjdk'| cut -d ' ' -f2| cut -d '.' -f1)
  cd "${pkgbase}-${pkgver}/build"
  # without CMAKE_BUILD_TYPE=Release, csound is build as beta: https://bugs.archlinux.org/task/63348
  # it's not allowed to redistribute the scansyn opcodes: https://github.com/csound/csound/issues/1148
  cmake -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_BUILD_TYPE='Release' \
        -DBUILD_SCANSYN_OPCODES=OFF \
        -DJAVA_AWT_LIBRARY="/usr/lib/jvm/java-${_java_major}-openjdk/jre/lib/libawt.so" \
        -DJAVA_JVM_LIBRARY="/usr/lib/jvm/java-${_java_major}-openjdk/jre/lib" \
        -DLUA_LIBRARY=/usr/lib/liblua.so \
        -DPYTHON_MODULE_INSTALL_DIR=/usr/lib/python2.7/site-packages \
        -DBUILD_STATIC_LIBRARY=ON \
        -DBUILD_ABLETON_LINK_OPCODES=ON \
        -DABLETON_LINK_HOME=/usr/include/ableton \
        ..
  make VERBOSE=1
}

check() {
  cd "${pkgbase}-${pkgver}/build"
  make test
}

package_csound() {
  groups=('pro-audio')
  depends=('curl' 'libsndfile')
  optdepends=('alsa-lib: librtalsa opcode'
              'csound-doc: The canonical Csound Reference Manual'
              'csoundqt: frontend/ editor with integrated help'
              'fltk: libvirtual/libwidgets opcode'
              'faust: libfaustcsound opcode'
              'fluidsynth: libfluidsynth opcode'
              'hdf5: hdf5ops opcode'
              'jack: libjacko, librtjack, libjackTransport opcode'
              'java-runtime: java integration'
              'liblo: OSC opcode'
              'libpulse: librtpulse opcode'
              'libwebsockets: libwebsocketIO opcode'
              'lua: LUA integration'
              'portmidi: libpmidi opcode'
              'python2: libpy opcode/ python2 integration'
              'stk: stk opcode'
              'vim-csound: vim integration'
              'wiiuse: wiimote opcode')
  cd "${pkgname}-${pkgver}/build"
  make DESTDIR="${pkgdir}/" install

  # export vars in profile.d
  install -vDm 755 "${srcdir}/${pkgname}.sh" -t "${pkgdir}/etc/profile.d/"
  # rename extract executable due to name conflict with libextractor
  # https://github.com/csound/csound/issues/985
  mv -v "${pkgdir}/usr/bin/extract" "${pkgdir}/usr/bin/${pkgname}-extract"
  # moving csnd6.jar to /usr/share/java
  install -vdm 755 "${pkgdir}/usr/share/java/"
  mv -v "${pkgdir}/usr/lib/"*.jar "${pkgdir}/usr/share/java/"
}

package_csound-doc() {
  license=('LGPL' 'GPL')
  install -vDm 644 "Csound${pkgver}_manual.pdf" \
    "${pkgdir}/usr/share/doc/${pkgname}/${pkgbase}-manual.pdf"

  install -dv "${pkgdir}/usr/share/doc/${pkgname}/html"
  cp -av "${srcdir}"/html/* "${pkgdir}/usr/share/doc/${pkgname}/html"
  # fix file permissions
  find "${pkgdir}" -type f -exec chmod -c 644 {} \;
}

# vim:set ts=2 sw=2 et:
