Building Audacious with Qt UI on Windows
Added by Róbert Čerňanský about 8 years ago
Hello, while porting Ampache Browser to Windows I needed to build the Qt version of Audacious there. I've prepared instructions in case someone else is interested:
1. Prepare MSYS2 and MinGW-w64¶
1.1 Download MSYS2 and install it to C:\msys2 according to https://msys2.github.io.
1.2 Start MSYS2 shell.
1.3 Install development packages (replace i686 with x86_64 for 64 bit):
$ pacman -S base-devel mingw-w64-i686-toolchain
2. Install dependencies¶
2.1 Install dependencies available as packages (replace i686 with x86_64 for 64 bit):
$ pacman -S mingw-w64-i686-qt5 mingw-w64-i686-flac \ mingw-w64-i686-mpg123 mingw-w64-i686-ffmpeg \ mingw-w64-i686-curl mingw-w64-i686-cmake
2.2 Prepare for building from source:
Start MinGW32 (or MinGW64 for 64 bit) shell and set following environment variables:
$ export PKG_CONFIG_PATH=/c/libs/lib/pkgconfig:/c/aud/lib/pkgconfig $ export CPATH=/c/libs/include $ export LIBRARY_PATH=/c/libs/lib $ export PATH=${PATH}:/c/libs/bin:/c/aud/bin
2.3. Install neon library (from source):
Download from http://www.webdav.org/neon/neon-0.30.1.tar.gz and unpack to C:\neon. In MinGW32/64 shell:
$ cd /c/neon $ CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" ./configure --prefix /c/libs --with-ssl --enable-shared --disable-static $ make $ make install
2.4. Install Ampache Browser library (from source):
Download from https://github.com/ampache-browser/ampache_browser/archive/v0.0.2.tar.gz and unpack to C:\ampache_browser. In MinGW32/64 shell:
$ cd /c/ampache_browser $ mkdir build $ cd build $ cmake -G "MSYS Makefiles" -D CMAKE_INSTALL_PREFIX=C:/libs .. $ make $ make install
3. Install Audacious and plugins¶
Download from http://distfiles.audacious-media-player.org/audacious-3.8-beta2.tar.bz2 and unpack to C:\audacious. In MinGW32/64 shell:
$ cd /c/audacious
In case of 64 bit environment make a following "patch":
$ sed -i "s/ -march=i686//" acinclude.m4 $ autoreconf
then continue with:
$ ./configure --prefix /c/aud --enable-qt --disable-gtk $ make $ make install
Download from http://distfiles.audacious-media-player.org/audacious-plugins-3.8-beta2.tar.bz2 and unpack to C:\audacious-plugins. In MinGW32/64 shell:
$ cd /c/audacious-plugins
In case of 64 bit environment make a following "patch":
$ sed -i "s/ -march=i686//" acinclude.m4 $ autoreconf
then continue with:
$ ./configure --prefix /c/aud --enable-qt --disable-gtk $ make $ make install
4. Run Audacious¶
$ audacious.exe
To run Audacious outside of MSYS environment, copy files from C:\aud, C:\libs, C:\msys2\mingw32\bin and C:\msys2\mingw32\share\qt5 (or C:\msys2\mingw64\bin and C:\msys2\mingw64\share\qt5) to a separate directory so that its content is following:
├── bin │ ├── audacious.exe │ ├── audtool.exe │ ├── avcodec-57.dll │ ├── avformat-57.dll │ ├── avutil-55.dll │ ├── iconengines │ │ └── qsvgicon.dll │ ├── imageformats │ │ ├── qdds.dll │ │ ├── qgif.dll │ │ ├── qicns.dll │ │ ├── qico.dll │ │ ├── qjp2.dll │ │ ├── qjpeg.dll │ │ ├── qsvg.dll │ │ ├── qtga.dll │ │ ├── qtiff.dll │ │ ├── qwbmp.dll │ │ └── qwebp.dll │ ├── libampache_browser_0.dll │ ├── libaudcore.dll │ ├── libaudqt.dll │ ├── libaudtag.dll │ ├── libbluray-1.dll │ ├── libbz2-1.dll │ ├── libcelt0-2.dll │ ├── libcurl-4.dll │ ├── libeay32.dll │ ├── libexpat-1.dll │ ├── libffi-6.dll │ ├── libFLAC-8.dll │ ├── libfreetype-6.dll │ ├── libgcc_s_dw2-1.dll │ ├── libgio-2.0-0.dll │ ├── libglib-2.0-0.dll │ ├── libgmodule-2.0-0.dll │ ├── libgmp-10.dll │ ├── libgnutls-30.dll │ ├── libgobject-2.0-0.dll │ ├── libgraphite2.dll │ ├── libgsm.dll │ ├── libharfbuzz-0.dll │ ├── libhogweed-4-2.dll │ ├── libiconv-2.dll │ ├── libicudt57.dll │ ├── libicuin57.dll │ ├── libicuuc57.dll │ ├── libidn-11.dll │ ├── libintl-8.dll │ ├── libjpeg-8.dll │ ├── liblzma-5.dll │ ├── libmodplug-1.dll │ ├── libmp3lame-0.dll │ ├── libmpg123-0.dll │ ├── libneon-27.dll │ ├── libnettle-6-2.dll │ ├── libnghttp2-14.dll │ ├── libogg-0.dll │ ├── libopencore-amrnb-0.dll │ ├── libopencore-amrwb-0.dll │ ├── libopenjp2-7.dll │ ├── libopus-0.dll │ ├── liborc-0.4-0.dll │ ├── libp11-kit-0.dll │ ├── libpcre-1.dll │ ├── libpcre16-0.dll │ ├── libpng16-16.dll │ ├── librtmp-1.dll │ ├── libschroedinger-1.0-0.dll │ ├── libspeex-1.dll │ ├── libssh2-1.dll │ ├── libstdc++-6.dll │ ├── libtasn1-6.dll │ ├── libtheoradec-1.dll │ ├── libtheoraenc-1.dll │ ├── libvorbis-0.dll │ ├── libvorbisenc-2.dll │ ├── libvorbisfile-3.dll │ ├── libvpx-1.dll │ ├── libwavpack-1.dll │ ├── libwinpthread-1.dll │ ├── libx264-148.dll │ ├── libx265.dll │ ├── libxml2-2.dll │ ├── platforms │ │ └── qwindows.dll │ ├── Qt5Concurrent.dll │ ├── Qt5Core.dll │ ├── Qt5Gui.dll │ ├── Qt5Multimedia.dll │ ├── Qt5Network.dll │ ├── Qt5OpenGL.dll │ ├── Qt5Svg.dll │ ├── Qt5Widgets.dll │ ├── SDL.dll │ ├── ssleay32.dll │ ├── swresample-2.dll │ ├── translations │ │ ├── qt_ar.qm │ │ ├── qt_ca.qm │ │ ├── qt_cs.qm [...] │ │ └── qt_zh_TW.qm │ ├── xvidcore.dll │ └── zlib1.dll ├── lib │ ├── audacious │ │ ├── Container │ │ │ ├── asx.dll │ │ │ ├── asx3.dll │ │ │ ├── audpl.dll │ │ │ ├── m3u.dll │ │ │ ├── pls.dll │ │ │ └── xspf.dll │ │ ├── Effect │ │ │ ├── compressor.dll │ │ │ ├── crossfade.dll │ │ │ ├── crystalizer.dll │ │ │ ├── echo.dll │ │ │ ├── mixer.dll │ │ │ ├── silence-removal.dll │ │ │ ├── stereo.dll │ │ │ └── voice_removal.dll │ │ ├── General │ │ │ ├── albumart-qt.dll │ │ │ ├── ampache.dll │ │ │ ├── delete-files.dll │ │ │ ├── lyricwiki-qt.dll │ │ │ ├── mpris2.dll │ │ │ ├── playlist-manager-qt.dll │ │ │ ├── qtui.dll │ │ │ ├── scrobbler.dll │ │ │ ├── search-tool-qt.dll │ │ │ ├── skins-qt.dll │ │ │ ├── song-info-qt.dll │ │ │ └── statusicon-qt.dll │ │ ├── Input │ │ │ ├── adplug.dll │ │ │ ├── console.dll │ │ │ ├── ffaudio.dll │ │ │ ├── flacng.dll │ │ │ ├── madplug.dll │ │ │ ├── metronom.dll │ │ │ ├── modplug.dll │ │ │ ├── psf2.dll │ │ │ ├── tonegen.dll │ │ │ ├── vorbis.dll │ │ │ ├── vtx.dll │ │ │ ├── wavpack.dll │ │ │ └── xsf.dll │ │ ├── Output │ │ │ ├── filewriter.dll │ │ │ ├── qtaudio.dll │ │ │ ├── sdlout.dll │ │ │ └── waveout.dll │ │ ├── Transport │ │ │ ├── gio.dll │ │ │ └── neon.dll │ │ └── Visualization │ │ └── gl-spectrum-qt.dll │ ├── libaudcore.dll.a │ ├── libaudqt.dll.a │ ├── libaudtag.dll.a │ └── pkgconfig │ └── audacious.pc └── share ├── applications │ └── audacious.desktop ├── audacious │ ├── AUTHORS │ ├── COPYING │ ├── images │ │ ├── about-logo.png │ │ ├── about-logo.svg │ │ ├── album.png │ │ ├── appearance.png │ │ ├── audio.png │ │ ├── connectivity.png │ │ ├── info.png │ │ ├── playlist.png │ │ └── plugins.png │ ├── QtUi │ │ ├── 16 [...] │ │ ├── 22 [...] │ │ ├── 32 [...] │ │ ├── 44 [...] │ │ ├── AUTHORS │ │ └── index.theme │ └── Skins │ ├── Classic [... all skins] ├── icons │ └── hicolor │ ├── 48x48 │ │ └── apps │ │ └── audacious.png │ └── scalable │ └── apps │ └── audacious.svg └── locale ├── ast │ └── LC_MESSAGES │ └── audacious.mo ├── be │ └── LC_MESSAGES │ ├── audacious.mo │ └── audacious-plugins.mo ├── bg │ └── LC_MESSAGES │ ├── audacious.mo │ └── audacious-plugins.mo ├── ca │ └── LC_MESSAGES │ ├── audacious.mo │ └── audacious-plugins.mo ├── cmn │ └── LC_MESSAGES │ ├── audacious.mo │ └── audacious-plugins.mo ├── cs │ └── LC_MESSAGES │ ├── audacious.mo │ ├── audacious-plugins.mo │ └── neon.mo [...] └── zh_TW └── LC_MESSAGES ├── audacious.mo └── audacious-plugins.mo
64 bit version contains libgcc_s_seh-1.dll instead of libgcc_s_dw2-1.dll in bin directory.
Note, neon and Ampache Browser libraries are optional.