-
Notifications
You must be signed in to change notification settings - Fork 318
building
this document describes to how compile musikcube on all supported platforms
- grab the Visual Studio 2019 Community Edition and install the c++ compiler; you can select 32-bit, 64-bit, or both.
- clone the musikcube sources:
git clone https://github.com/clangen/musikcube.git --recursive - open
musikcube.slnand build/run.
you'll need homebrew to install the required dependencies.
brew install cmake openssl libogg libvorbis ffmpeg libmicrohttpd lame libev taglibgit clone https://github.com/clangen/musikcube.git --recursivecd musikcubecmake .makecd bin./musikcube
- install the following libraries and their development packages:
cmake libogg vorbis ffmpeg ncurses zlib asound pulse libcurl libmicrohttpd libmp3lame libev4 taglib libopenmpt.
note, debian-based distributions use
libtag1-devinstead oftaglib.
-
ubuntu
-
cosmic, disco and eoan:
sudo apt-get install build-essential clang cmake libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev libopenmpt-dev -
bionic:
sudo apt-get install build-essential clang cmake libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev libopenmpt-dev -
artful:
sudo apt-get install build-essential clang cmake libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libopenmpt-dev -
zesty:
sudo apt-get install build-essential clang cmake libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libopenmpt-dev
-
cosmic, disco and eoan:
-
opensuse:
sudo zypper install libcurl-devel libmicrohttpd-devel cmake ncurses5-devel libogg-devel libvorbis-devel ffmpeg-3-libavcodec-devel ffmpeg-3-libswresample-devel ffmpeg-3-libavformat-devel ffmpeg-3-libavutil-devel libmp3lame-devel pulseaudio libpulse-devel alsa-devel zlib-devel libressl-devel libev-devel libtag-devel libopenmpt-devel -
fedora:
sudo dnf install gcc-c++ make cmake libogg-devel libvorbis-devel ffmpeg-devel ncurses-devel zlib-devel alsa-lib-devel pulseaudio-libs-devel libcurl-devel libmicrohttpd-devel lame-devel libev-devel taglib-devel openssl-devel libopenmpt-devel -
arch:
sudo pacman -S libogg libvorbis libmicrohttpd ffmpeg lame cmake ncurses pulseaudio libpulse alsa-lib curl libev taglib libopenmpt pkg-config -
freebsd
pkg install ncurses curl libvorbis libogg libmicrohttpd ffmpeg alsa-lib cmake sndio libev taglib libopenmpt bash pkgconfportsnap fetch-
portsnap extract(if first time using ports) cd /usr/ports/audio/lamemake reinstall
-
openbsd
pkg_add git cmake ffmpeg sndio libev libmicrohttpd taglib libopenmpt
you can either get the latest version from git, as follows...
git clone https://github.com/clangen/musikcube.git --recursive
...or you can download a pre-packaged source release:
- navigate to the appropriate release page and download the source
tar.gzfile tar xvfz musikcube-0.96.10.tar.gz
cd musikcubecmake -G "Unix Makefiles" .makesudo make installmusikcube
there are two versions of the ncurses headers, one which has "wide character" support, and one that doesn't. musikcube requires the wide version. in many cases (Debian/Ubuntu), Linux distributions have both. The non-wide version is usually in /usr/include, and the wide-version is is /usr/include/ncursesw.
ArchLinux (and variants like Manjaro) seem to only ship the "wide" version. But it exists in in /usr/include, and not /usr/include/ncursesw as it does it other distros. see comments here: https://bugs.archlinux.org/task/17590
the CMake build script explicitly detects a few distributions where this is the case. However, it generally assumes that the curses.h lives in /usr/include/ncursesw. implicitly falling back to /usr/include is dangerous -- it may allow compiles to succeed, but there will almost certainly crash at runtime.
if you are using a distribution that only supplies the "wide-character" variant of ncurses, and you know those headers are in /usr/include and not /usr/include/ncursesw, you should invoke CMake with the -DNO_NCURSESW flag as follows:
cmake -DNO_NCURSESW . instead of the more standard cmake .