-
Notifications
You must be signed in to change notification settings - Fork 293
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.sln
and build/run.
you'll need homebrew to install the required dependencies.
brew install cmake openssl libogg libvorbis ffmpeg libmicrohttpd lame libev taglib
git clone https://github.com/clangen/musikcube.git --recursive
cd musikcube
cmake .
make
cd 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-dev
instead 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 pkgconf
portsnap fetch
-
portsnap extract
(if first time using ports) cd /usr/ports/audio/lame
make 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.gz
file tar xvfz musikcube-0.96.10.tar.gz
cd musikcube
cmake -G "Unix Makefiles" .
make
sudo make install
musikcube
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 .